[Import-SIG] PEP 420 issue: extend_path

"Martin v. Löwis" martin at v.loewis.de
Mon May 7 22:35:28 CEST 2012


> Are there any callers of find_module() outside of the standard library?
> That would be reason to invent a new API, instead of trying to reuse
> find_module().

Yes: the one I mentioned actually is in pkg_resources, which is part of
distribute:

def _handle_ns(packageName, path_item):
     """Ensure that named package includes a subpath of path_item (if 
needed)"""
     importer = get_importer(path_item)
     if importer is None:
         return None
     loader = importer.find_module(packageName)
     if loader is None:
         return None
     module = sys.modules.get(packageName)
     if module is None:
         module = sys.modules[packageName] = types.ModuleType(packageName)
         module.__path__ = []; _set_parent_ns(packageName)
     elif not hasattr(module,'__path__'):
         raise TypeError("Not a package:", packageName)
     handler = _find_adapter(_namespace_handlers, importer)
     subpath = handler(importer,path_item,packageName,module)
     if subpath is not None:
         path = module.__path__; path.append(subpath)
         loader.load_module(packageName); module.__path__ = path
     return subpath

Regards,
Martin


More information about the Import-SIG mailing list