On 1/19/2011 11:20 PM, Toshio Kuratomi wrote:
On Wed, Jan 19, 2011 at 09:02:17PM -0800, Glenn Linderman wrote:
On 1/19/2011 8:39 PM, Toshio Kuratomi wrote:

     use this::

        import cafe as café

     When you do things this way you do not have to translate between unknown
     encodings into unicode.  Everything is within python source where you have
     a defined encoding.


This is a great way of converting non-portable module names, if the module ever
leaves the bounds of its computer, and runs into problems there.

You're missing a piece here.  If you mandate ascii you can convert to
a unicode name using "import as" because python knows that it has ascii text
from the filesystem when it converts it to an abstract unicode string that
you've specified in the program text.  You cannot go the other way because
python lacks the information (the encoding of the filename on the
filesystem) to do the transformation.

Your demonstration of such an easy solution to the concerns you raise convinces
me more than ever that it is acceptable to allow non-ASCII module names.  For
those programmers in a single locale environment, it'll just work.  And for
those not in a single locale environment, there is your above simple solution
to achieve portability without changing large numbers of lines of code.

Does my demonstration that you can't do that mean that it's no longer
acceptable?  :-)

/me guesses that the relative merits of being forced to write portable code
vs convenience of writing a module name in your native script still has
a different balance than in mine, thus the smiley :-)

-Toshio

Sadly, you didn't demonstrate it, you seem to have misunderstood my statement, which was probably not all that clear, somehow. Let me try again.

User codes module   café.py, tests, debugs, completes, is happy.
User moves code to a different computer, different locale, no é character, module can't be found, is sad.
User renames file to cafefromuser.py, changes the import statement from

import café

to

import cafefromuser as café

module now imports successfully, no other code changes needed. User is happy again, thanks Toshio for great solution to file system encoding problem.
_______________________________________________
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

Reply via email to