[Python-Dev] PEP 383 update: utf8b is now the error handler

Zooko Wilcox-O'Hearn zooko at zooko.com
Wed May 6 21:18:03 CEST 2009


On May 6, 2009, at 10:54 AM, Antoine Pitrou wrote:

> Zooko Wilcox-O'Hearn <zooko <at> zooko.com> writes:
>>
>> I'm not thinking of API compatibility as much as data  
>> compatibility -- someone used Python 3.1 to write down some  
>> filenames, and now a few years later they are trying to use the  
>> latest and greatest Python release to read those filenames...
>
> Well, if the filenames are generated by Python (as opposed to read  
> from an existing directory on disk), they should be regular unicode  
> objects without any lone surrogates, so I don't see the  
> compatibility problem.

I meant that the application reads filenames from an existing  
directory on disk, saves those filenames, and then later, using a  
future version of Python, wants to read them and use them.

I'm not saying that I know this would be a problem.  I'm saying that  
I personally can't tell whether it would be a problem or not, and the  
extensive discussions so far have not convinced me that there is  
anyone who both understands PEP 383 and considers this use case.

Many people who apparently understand encoding issues well have said  
something to the effect that there is no problem, but those people  
haven't yet managed to get through my thick skull how I would use PEP  
383 safely for this sort of use case -- the one where data generated  
by os.listdir() travels forward in time or the one were that data  
travels sideways to other systems, including Windows or other systems  
that validate incoming unicode.

That's why I am a bit uncomfortable about PEP 383 being quickly  
implemented and deployed in Python 3.1.

By the way, much of the detailed discussion about what Tahoe requires  
and how that may or may not benefit from PEP 383 has now moved to the  
tahoe-dev mailing list: http://allmydata.org/cgi-bin/mailman/listinfo/ 
tahoe-dev .

Regards,

Zooko



More information about the Python-Dev mailing list