On Thu, Apr 12, 2012 at 07:37:46PM -0400, Tres Seaver wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 04/11/2012 03:57 AM, Brian Sutherland wrote:
Hi,
I'd like to merge 2 branches which get zope.configuration's tests running on Python 3.3. Here is an overview (with patches attached):
zope.schema:
* svn+ssh://svn.zope.org/repos/main/zope.schema/branches/jinty-native_string
* This branch corrects a mistake I think I made in the zope.schema Python3 port. After my experience with the zope.configuration port I now think that the URI field should be a "native" string rather than bytes.
Unfortunately this change is backwards incompatible for Python 3 users of zope.schema. But I think the number users of zope.schema under Python 3 are rather small at this point.
* I make public NativeString and NativeStringLine classes. These are equivalent to the Bytes type under Python 2 and the Text type under Python 3. Please devote some bikeshedding energy to better names for these classes ;)
zope.configuration:
* svn+ssh://svn.zope.org/repos/main/zope.configuration/branches/jinty-python3
* Adds a dependency on six
* Drops Python 2.4 and 2.5 compatibility
To run the tests of the zope.configuration branch you currently need to use the zope.interface trunk.
If there are no objections, I'll merge in a few weeks or so.
How deep is the six dependency? For every package I've ported to date, it has ended up being more sensible to implement a local '_compat' module which had only the needed straddles (sometimes inspired by six, sometimes very localized).
I'm sure you can get away without it. But having functions from six copied into huge numbers of zope.* packages made my skin crawl. As Jim said "a huge DRY violation".
Also, do your branches still pass tests on 3.2.x?
Yes for zope.schema No for zope.configuration, but that can be fixed by changing u'' to u('') in a lot of places.
I'm sort of keen to see both zope.schema and zope.configuration join the "2to3-free" camp
zope.schema's already there, my branch is only fixing what I consider to be a bug in the Python 3 port.
with zope.event, zope.interface, zope.i18nmessageid, and zope.exceptions (yes, zope.configuration, I'm looking at you next).
-- Brian Sutherland