[Zope-dev] Python 3.3 port of zope.configuration

Brian Sutherland brian at vanguardistas.net
Fri Apr 13 12:52:56 UTC 2012


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


More information about the Zope-Dev mailing list