I've managed to port zope.schema to Python 3.2 on a branch (jinty-python3). It gives up Python 2.5 compatibility and depends on six (http://packages.python.org/six/). Any objections to me merging this branch? -- Brian Sutherland
On Mon, 2011-10-10 at 13:14 +0200, Brian Sutherland wrote:
I've managed to port zope.schema to Python 3.2 on a branch (jinty-python3).
Woo hoo!
It gives up Python 2.5 compatibility and depends on six (http://packages.python.org/six/). Any objections to me merging this branch?
Not from me. - C
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
On Tue, Oct 11, 2011 at 10:22, Brian Sutherland <brian@vanguardistas.net> wrote:
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?
It seems to me that they should be `str`, all of them, except possibly URI. I'm unsure exactly how that changes the behavior. ASCII/ASCIILine should have validators to restrict them to ASCII only, reasonably, I don't know if they already do. //Lennart
On Tue, Oct 11, 2011 at 10:43:02AM +0200, Lennart Regebro wrote:
On Tue, Oct 11, 2011 at 10:22, Brian Sutherland <brian@vanguardistas.net> wrote:
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?
It seems to me that they should be `str`, all of them, except possibly URI.
Yeah, seems like it. I made this change to all except URI.
I'm unsure exactly how that changes the behavior. ASCII/ASCIILine should have validators to restrict them to ASCII only, reasonably, I don't know if they already do.
It has this: if not max(map(ord, value)) < 128: raise InvalidValue which seems like it's enough. -- Brian Sutherland
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).
It gives up Python 2.5 compatibility and depends on six (http://packages.python.org/six/). Any objections to me merging this branch?
I just merged this to trunk. -- Brian Sutherland
On Fri, Oct 14, 2011 at 12:52:00PM +0200, Brian Sutherland wrote:
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).
It gives up Python 2.5 compatibility and depends on six (http://packages.python.org/six/). Any objections to me merging this branch?
I just merged this to trunk.
Thanks to some great work by Tres, it looks like the buildbots are green and this change is bedded down. Could someone release zope.schema trunk? (or give me rights to do so, jinty on pypi) -- Brian Sutherland
On Mon, Nov 7, 2011 at 1:09 PM, Brian Sutherland <brian@vanguardistas.net> wrote:
On Fri, Oct 14, 2011 at 12:52:00PM +0200, Brian Sutherland wrote:
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).
It gives up Python 2.5 compatibility and depends on six (http://packages.python.org/six/). Any objections to me merging this branch?
I just merged this to trunk.
Thanks to some great work by Tres, it looks like the buildbots are green and this change is bedded down.
Could someone release zope.schema trunk?
(or give me rights to do so, jinty on pypi)
I empowered you! :) Thanks. Jim -- Jim Fulton http://www.linkedin.com/in/jimfulton
On Mon, Nov 07, 2011 at 01:38:21PM -0500, Jim Fulton wrote:
On Mon, Nov 7, 2011 at 1:09 PM, Brian Sutherland <brian@vanguardistas.net> wrote:
On Fri, Oct 14, 2011 at 12:52:00PM +0200, Brian Sutherland wrote:
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).
It gives up Python 2.5 compatibility and depends on six (http://packages.python.org/six/). Any objections to me merging this branch?
I just merged this to trunk.
Thanks to some great work by Tres, it looks like the buildbots are green and this change is bedded down.
Could someone release zope.schema trunk?
(or give me rights to do so, jinty on pypi)
I empowered you!
:)
Drat, I forgot the unreleased Python 3 support in zope.testing. Could you empower me there too? -- Brian Sutherland
participants (4)
-
Brian Sutherland -
Chris McDonough -
Jim Fulton -
Lennart Regebro