In article <[EMAIL PROTECTED]>, Bernhard Herzog <[EMAIL PROTECTED]> wrote:
Bernhard Herzog <[EMAIL PROTECTED]> writes:
Steve Holden <[EMAIL PROTECTED]> writes:
if package: module.__path__ = sys.path
You usually should initialize a package's __path__ to an empty list.
Actually, normally it's a list that contains the name of the package directory as its only item. I'm not sure what you should do when you do not import from a file system.
If it's a path importer, it could be a cookie, specific to the importer. I think in Steve's case initializing __path__ to ["*db*"] should work.
Just
And that's exactly the conclusion I came to when import of the package's submodules didn't work as anticipated.
Coming to the question of writing a customer importer from the documentation I discovered there is a huge amount of layered cruft in the import scheme going all the way back to the days of the "ni" module. It took me two aborted attempts just to realize I should be using PEP 302 and not ihooks or some wrapper around __import__().
While this may be interesting history it's very confusing, and I'm encouraging Alex Martelli to describe the current PEP-302-based scheme a little more fully in his forthcoming revision to the Nutshell. The PEP is just a little terse in places, I feel.
I'm also wondering if the inspect module shouldn't have a facility to hook into custom importers, since its code is pretty much filestore based at present. This should probably be via an *optional* API to avoid breakage in existing custom importers.
regards Steve -- Meet the Python developers and your c.l.py favorites March 23-25 Come to PyCon DC 2005 http://www.pycon.org/ Steve Holden http://www.holdenweb.com/ -- http://mail.python.org/mailman/listinfo/python-list