[Zope-dev] zope.schema and Python 3

Brian Sutherland brian at vanguardistas.net
Tue Oct 11 03:22:07 EST 2011


On Mon, Oct 10, 2011 at 01:14:26PM +0200, Brian Sutherland wrote:
> I've managed to port zope.schema to Python 3.2 on a branch
> (jinty-python3).

One doubt which has just crept up on me is if these classes:

    ASCII, ASCIILine, URI, Id, DottedName

should still inherit from Bytes on Python 3. It seems more logical that
they should inherit from Text. I had to do some gymnastics to keep them
bytes on python 3 and feel all dirty about it.

DottedName, in particular, describes itself as "Python-style dotted
names". But in Python 3 this code works:

    >>> from 漢語 import Español
    >>> print(Español)
    <class '漢語.Español'>

so a DottedName could be '漢語.Español' under Python 3. Definitely
unicode and not Bytes.

However, changing the behaviour of these classes between Python 2 and 3
may be even more problematic.

Another option is simply to have these classes raise NotImplementedError
in their validate() methods under Python 3 and wait till the solution
becomes more obvious.

Anyone out there willing to assuage my doubts?

-- 
Brian Sutherland


More information about the Zope-Dev mailing list