On approximately 4/29/2009 10:17 PM, came the following characters from
the keyboard of Martin v. Löwis:
I don't understand the proposal and issues. I see a lot of people
claiming that they do, and then spending all their time either
talking past each other, or disagreeing. If everyone who claims they
understand the issues actually does, why is it so hard to reach a
consensus?
Because the problem is difficult, and any solution has trade-offs.
People disagree on which trade-offs are worse than others.
I'd like to see some real examples of how things can break in the
current system
Suppose I create a new directory, and run the following script
in 3.x:
py> open("x","w").close()
py> open(b"\xff","w").close()
py> os.listdir(".")
['x']
but...
py> os.listdir(b".")
['x', '\xff']
If I quit Python, I can now do
mar...@mira:~/work/3k/t$ ls
? x
mar...@mira:~/work/3k/t$ ls -b
\377 x
As you can see, there are two files in the current directory, but
only one of them is reported by os.listdir. The same happens to
command line arguments and environment variables: Python might swallow
some of them.
There is presently no solution for command line and environment
variables, I guess... which adds some amount of urgency to the
implementation of _something_, even if not this PEP.
and I'd like any potential solution to be made
available as a third-party package before it goes into the standard
library (if possible).
Unfortunately, at least for my solution, this isn't possible. I need
to change the implementation of the existing file IO APIs.
Other than initializing them to use UTF-8b instead of UTF-8, and to use
the new python-escape handler? I'm sure if I read the code for that,
I'd be able to figure out the answer... I don't find any documented way
of adding an encoding/decoding handler to the file IO encoding
technique, though which lends credence to your statement, but then that
could also be an oversight on my part.
One could envision a staged implementation: the addition of the ability
to add encoding/decoding handlers to the file IO encoding/decoding
process, and the external selection of your new python-escape handler
during application startup. That way, the hooks would be in the file
system to allow your solution to be used, but not require that it be
used; competing solutions using similar technology could be implemented
and evaluated.
--
Glenn -- http://nevcal.com/
===========================
A protocol is complete when there is nothing left to remove.
-- Stuart Cheshire, Apple Computer, regarding Zero Configuration Networking
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com