[Python-Dev] Case sensitive import.

Tim Peters tim.one@home.com
Mon, 5 Feb 2001 16:01:49 -0500


[Jason Tishler]
> Sorry, but I don't agree with your assessment that Cygwin's treatment
> of case is "seemingly random."  IMO, Cygwin behaves appropriately
> regarding case for a case-insensitive, but case-preserving file system.

Sorry, you can't disagree with that <wink>:  i.e., you can disagree that
Cygwin *is* inconsistent, but you can't tell me it didn't *appear*
inconsistent to me the first time I played with it.  The latter is just a
fact.  It doesn't mean it *is* inconsistent.  First impressions are what
they are.

The heart of the question for Python is related, though:  you say Cygwin
behaves appropriately.  Fine.  If I "cat FiLe", it will cat a file named
"file" or "FILE" or "filE" etc.  But at the same time, you want Python to
*ignore* "filE.py" when Python does "import FiLe".  The behavior you want
from Python is then inconsistent with what Cygwin does elsewhere.  So if
Cygwin's behavior is "appropriate" for the filesystem, then what you want
Python to do must be "inappropriate" for the filesystem.

That's what I want too, but it *is* inappropriate for the filesystem, and I
want to be clear about that.  Basic sanity requires that Python do the same
thing on *all* case-insensitive case-preserving filesystems, to the fullest
extent possible.  Python's DOS/Windows behavior has priority by a decade.
I'm deadly opposed to making a special wart for Cygwin (or the Mac), but am
in favor of changing it on Windows too.

>> We can't do the reverse.  That would lead to explainable rules
>> and maximal portability.

> Sorry but I don't grok the above.  Tim, can you try again?

"That" referred to the sentence before the first one you quoted, although it
takes psychic powers to intuit that.  That is, in the interest of maximal
portability, explainability and predictability, import can make
case-insensitive filesystems act as if they were case-sensitive, but it's
much harder ("we can't") to make C-S systems act C-I.