[Python-3000] basestring removal, file and co_filename (original) (raw)
Guido van Rossum guido at python.org
Thu Oct 11 20:23:22 CEST 2007
- Previous message: [Python-3000] basestring removal, __file__ and co_filename
- Next message: [Python-3000] basestring removal, __file__ and co_filename
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 10/11/07, Christian Heimes <lists at cheimes.de> wrote:
Guido van Rossum wrote: > Um, where does the filename object in that expression come from? It > appears to be a PyString object. Who created it? That could should be > changed to create a PyUnicode instead (using the filesystem encoding).
Python/compile.c:makecode() filename = PyStringFromString(c->cfilename); Modules/pyexpat.c:getcode() filename = PyStringFromString(FILE); Objects/codeobject.c:codenew() PyArgParseTuple(args, "iiiiiSO!O!O!SSiS|O!O!:code" As I tried to explain earlier that may be a problem. PyUnicodeDecode() doesn't work so early. The codecs package isn't initialized yet.
But some codecs are "built-in" and have custom APIs. I wonder if we could do something that figures out the default fs encoding, and see if it is one of the supported ones, and then uses that; otherwise tries UTF-8 with the "replace" error handling option (so it won't fail if the data is non-UTF-8).
-- --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-3000] basestring removal, __file__ and co_filename
- Next message: [Python-3000] basestring removal, __file__ and co_filename
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]