[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