A beta 2 release of Python 2.6 was released yesterday or so, and they are on
a schedule to have a final release around the same time Django 1.0 is
scheduled.  Actually, slightly after, but who knows with scheduling code
releases which one will actually reach 'final' first.

Right now, http://www.djangoproject.com/documentation/install/ says Django
"works with any Python version 2.3 and higher".  I expect that to change
when Python 3.0 comes out to say something more like "works with Python 2.x
where x >= 3", since I know Django will not likely work with Python 3.0 as
soon as it comes out.  However, I expect 2.6 will be as supported by Django
1.0 as 2.3, 2.4, and 2.5, right?

And it should Just Work, since 2.6 is supposed to be backwards compatible,
but you know how that goes.  So today I experimented with running the Django
test suite on Python 2.6b2 to see how close it is to just working.  Not
surprisingly, I ran into a few problems.

First, there are some newly-deprecated modules like md5 and sha.  Probably
the test suite should be updated to try hashlib and only fall back to these
others if necessary?

Second theres a reappearance of a Python bug that was was present in 2.3 but
gone in 2.4/2.5.  I put a note in the bug (
http://bugs.python.org/issue1242657) and it's been reopened on the Python
side.

Third the repr of Decimal has changed to use double quotes instead of single
quotes, so every test that checks for a Decimal value fails.  This strikes
me as a very odd (and backwards-incompatible) change to have made and I've
asked about it on the Python list (users, not dev, for starters) but I'd be
interested in what other people think of this change.

Fourth, there are several failures where sqlite (the only backend I have for
2.6) complains about being handed 8-bit bytestrings instead of Unicode:

        return Database.Cursor.execute(self, query, params)
    ProgrammingError: You must not use 8-bit bytestrings unless you use a
text_factory that can interpret 8-bit bytestrings (like text_factory = str).
It is highly recommended that you instead just switch your application to
Unicode strings.

This surprised me since I expected Django to be passing Unicode.  But some
tests, in fact, use simple bytestrings, for example:

http://code.djangoproject.com/browser/django/trunk/tests/modeltests/custom_pk/models.py#L107

has: >>> emp = Employee(employee_code='jaźń')

Shouldn't that be: >>> emp = Employee(employee_code=u'jaźń')

?

Changing it like so makes the test succeed on 2.6b2 and has no apparent
ill-effects on 2.5.  But I'm a little surprised this hasn't caused a problem
before, so I fear I'm missing something here?

Fourth, fifth, six...there are a few more I haven't looked at in any detail
yet.  I thought I'd first check and make sure this is worthwhile (Django
will be expecting to support 2.6 when it comes out, right?) and get some
feedback on the questions I've got above.

Karen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to