On Tue, Oct 11, 2011 at 10:22, Brian Sutherland <br...@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.

Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to