[Python-Dev] Zip format (was: Questions about distutils strategy )

Gordon McMillan gmcm@hypernet.com
Fri, 10 Dec 1999 09:28:51 -0500


Jack Jansen asks:

> Is it possible nowadays to have two files with the same name but
> different paths (i.e. foo/bar.py and foo/spam/bar.py) in the same
> archive?

Depends on how you do it.

If the user imports foo.spam.bar, an importer will be asked for:
  foo (return foo.__init__)
  foo.spam (return foo.bar.__init__)
  foo.spam.bar (return foo.spam.bar)

But the API allows lots of variations. This is another possible 
interaction:
  foo (return None)
  foo.__init__ (return foo.__init__)
  foo.spam (return None)
  foo.bar.__init__ (return foo.bar.__init__)
  foo.spam.bar (return foo.spam.bar)

Or, by looking at different args to get_code, you could look at 
the requests as:
  foo in context of None
  spam in context of foo
  bar in context of foo.spam
 
With another variation where the request for __init__ becomes 
explicit.

The first way seems the natural way for archives, and makes it 
easy to keep foo.bar.spam distinct from foo.spam.

> That's the one thing that always struck me as very very silly
> about zipfiles.

Huh?

- Gordon