[Python-Dev] Patch for an initial support of bytes filename in Python3 (original) (raw)
Victor Stinner victor.stinner at haypocalc.com
Tue Sep 30 02:47:20 CEST 2008
- Previous message: [Python-Dev] [Python-3000] New proposition for Python3 bytes filename issue
- Next message: [Python-Dev] Patch for an initial support of bytes filename in Python3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
See attached patch: python3_bytes_filename.patch
Using the patch, you will get:
- open() support bytes
- listdir(unicode) -> only unicode, skip invalid filenames (as asked by Guido)
- remove os.getcwdu()
- create os.getcwdb() -> bytes
- glob.glob() support bytes
- fnmatch.filter() support bytes
- posixpath.join() and posixpath.split() support bytes
Mixing bytes and str is invalid. Examples raising a TypeError:
- posixpath.join(b'x', 'y')
- fnmatch.filter([b'x', 'y'], '*')
- fnmatch.filter([b'x', b'y'], '*')
- glob.glob1('.', b'*')
- glob.glob1(b'.', '*')
$ diffstat ~/python3_bytes_filename.patch Lib/fnmatch.py | 7 +++- Lib/glob.py | 15 ++++++--- Lib/io.py | 2 - Lib/posixpath.py | 20 ++++++++---- Modules/posixmodule.c | 83 ++++++++++++++++++-------------------------------- 5 files changed, 62 insertions(+), 65 deletions(-)
TODO:
- review this patch :-)
- support non-ASCII bytes in fnmatch.filter()
- fix other functions, eg. posixpath.isabs() and fnmatch.fnmatchcase()
- fix functions written in C: grep FileSystemDefaultEncoding
- make sure that mixing bytes and str is rejected
-- Victor Stinner aka haypo http://www.haypocalc.com/blog/ -------------- next part -------------- A non-text attachment was scrubbed... Name: python3_bytes_filename.patch Type: text/x-diff Size: 6732 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-dev/attachments/20080930/e8998338/attachment.patch>
- Previous message: [Python-Dev] [Python-3000] New proposition for Python3 bytes filename issue
- Next message: [Python-Dev] Patch for an initial support of bytes filename in Python3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]