On Thu, Apr 26, 2012 at 12:06:13PM -0400, Tres Seaver wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> On 04/26/2012 04:39 AM, Brian Sutherland wrote:
> > On Thu, Apr 12, 2012 at 07:37:46PM -0400, Tres Seaver wrote:
> >> Also, do your branches still pass tests on 3.2.x? I'm sort of keen
> >> to see both zope.schema and zope.configuration join the "2to3-free"
> >> camp with zope.event, zope.interface, zope.i18nmessageid, and
> >> zope.exceptions (yes, zope.configuration, I'm looking at you next).
> > I see you've started doing this in a better and more rigorous way than
> > I was. So I'm going to abandon my plans to merge in favour of your
> > branches.
> > I'd still urge you to have a look at my zope.schema branch, which I
> > think solves a real problem with URI fields and Python 3. The patch
> > is pretty small.
> My zope.schema branch is largely focused on improving the unittest
> coverage, while also making the package work with Python 3.2 (i.e., not
> relying on 3.3's restoration of unicode literals).
> I would be glad to look at your branch; I had already considered making
> the "native string" fields APIs. I'm not sure that I agree that the
> ASCII / URI / Id / DottedName fields should have native string as its
> type: can you help by elaborating there?
For DottedName we're basically forced to use native strings as you can
import modules with unicode names on python 3:
>>> from 漢語 import Español
Id is either a URI or a DottedName. So it must, like DottedName, also be
a native string.
As for URI, python 3 library functions seem to not care, so we can
>>> from urllib.parse import urlparse
ParseResult(scheme='http', netloc='www.example.com', path='/unicode',
params='', query='', fragment='')
ParseResultBytes(scheme=b'http', netloc=b'www.example.com', path=b'/bytes',
params=b'', query=b'', fragment=b'')
But, for consistency's sake, URI, Id and DottedName should be the same.
That makes the best choice for URI a native string.
Another more practical argument is that having URI be a "native string"
made the porting of zope.configuration to python 3 much easier. There
were a few nasty bugs when trying it with URI as bytes.
I have no strong argument for ASCII.
FWIW, here's the original discussion on porting zope.schema:
> (Also, looks like we should
> promote the 'INativeString' interface to an API).
> - --
> Tres Seaver +1 540-429-0999 tsea...@palladion.com
> Palladion Software "Excellence by Design" http://palladion.com
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> -----END PGP SIGNATURE-----
> Zope-Dev maillist - Zope-Dev@zope.org
> ** No cross posts or HTML encoding! **
> (Related lists -
> https://mail.zope.org/mailman/listinfo/zope )
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -