[Python-Dev] Write All New Import Hooks (PEP 302) in Python, Not C (original) (raw)
Just van Rossum just@letterror.com
Sat, 28 Dec 2002 18:17:21 +0100
- Previous message: [Python-Dev] Write All New Import Hooks (PEP 302) in Python, Not C
- Next message: [Python-Dev] Write All New Import Hooks (PEP 302) in Python, Not C
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Michael Hudson wrote:
I've not really been following this discussion with utmost care, but the name "metapath" doesn't move me. Wouldn't sys.importers be better name? Or maybe I'm misunderstanding it's intent -- which is still an argument for a better name.
I don't like the name much either, but it does fit quite well as the idea is that sys.path importing gets invoked through an item on meta_path. Perhaps this sketch helps a little:
sys.meta_path = [ BuiltinImporter(), # handles builtin modules FrozenImporter(), # handles frozen modules PathImporter(), # handles sys.path ]
def find_module(fullname, path=None): for i in sys.meta_path: l = i.find_module(fullname, path) if l is not None: return l return None
class PathImporter:
def find_module(self, fullname, path=None):
if path is None:
path = sys.path
for p in path:
i = get_path_importer(p) # deals with sys.path_hooks & cache
if i is not None:
l = i.find_module(fullname)
if l is not None:
return l
retun None
This is how you should look at it, even though it doesn't match the implementation (yet). Right now you should imagine those three objects on meta_path as an implicit extension of sys.meta_path, they don't yet physically exist. This should change in the near future, perhaps even with 2.3a2.
Just
- Previous message: [Python-Dev] Write All New Import Hooks (PEP 302) in Python, Not C
- Next message: [Python-Dev] Write All New Import Hooks (PEP 302) in Python, Not C
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]