[Python-Dev] Patch for an initial support of bytes filename in Python3

glyph at divmod.com glyph at divmod.com
Tue Sep 30 19:59:32 CEST 2008


On 02:32 pm, guido at python.org wrote:
>On Tue, Sep 30, 2008 at 6:21 AM,  <glyph at divmod.com> wrote:
>>On 12:47 am, victor.stinner at haypocalc.com wrote:

>>It sounds like maybe there should be some 2to3 fixers in here 
>>somewhere,
>>too?  Not necessarily as part of this patch, but somewhere related?  I 
>>don't
>>know what they would do, but it does seem quite likely that code which 
>>was
>>previously correct under 2.6 (using bytes) would suddenly be mixing 
>>bytes
>>and unicode with these APIs.
>
>Doesn't seem easy for 2to3 to recognize such cases.

Actually I think I'm wrong.  As far as dealing with glob(), listdir() 
and friends, I suppose that other bytes/text fixers will already have 
had their opportunity to deal with getting the type to be the 
appropriate thing, and if you have glob(<something that 2to3 understands 
should be bytes>) it will work as expected in 3.0.  (I am really just 
confirming that I have nothing useful to say here, using too many words 
to do it: at least, I hope that nobody will waste further time thinking 
about it as a result.)
>If 2.6 weren't pretty much released already I'd ask to add
>os.getcwdb() there, as an alias for os.getcwd(), and add a 2to3 fixer
>that converts os.getcwdu() to os.getcwd(), leaves os.getcwd() alone
>(benefit of the doubt) and leaves os.getcwdb() alone as well (a strong
>indication the user meant to get bytes in the 3.x version of their
>code. (Similar to using bytes instead of str in 2.6 even though they
>mean the same thing there -- they will be properly separated in 3.x.)

In the absence of a 2.6 getcwdb, perhaps the fixer could just drop the 
"benefit of the doubt" case?  It could always be added to 2.7, and the 
parity release of 2to3 could have a --2.7 switch that would modify the 
behavior of this and other fixers.


More information about the Python-Dev mailing list