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