diff options
| -rw-r--r-- | pkg_resources/__init__.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py index f15becbb..3398a56b 100644 --- a/pkg_resources/__init__.py +++ b/pkg_resources/__init__.py @@ -2183,18 +2183,24 @@ def _handle_ns(packageName, path_item): path = module.__path__ path.append(subpath) loader.load_module(packageName) + _rebuild_mod_path(path, packageName, module) + return subpath - # Rebuild mod.__path__ ensuring that all entries are ordered - # corresponding to their sys.path order - sys_path= [(p and _normalize_cached(p) or p) for p in sys.path] - def sort_key(p): - parts = p.split(os.sep) - parts = parts[:-(packageName.count('.') + 1)] - return sys_path.index(_normalize_cached(os.sep.join(parts))) - path.sort(key=sort_key) - module.__path__[:] = [_normalize_cached(p) for p in path] - return subpath +def _rebuild_mod_path(orig_path, package_name, module): + """ + Rebuild module.__path__ ensuring that all entries are ordered + corresponding to their sys.path order + """ + sys_path= [(p and _normalize_cached(p) or p) for p in sys.path] + def sort_key(p): + parts = p.split(os.sep) + parts = parts[:-(package_name.count('.') + 1)] + return sys_path.index(_normalize_cached(os.sep.join(parts))) + + orig_path.sort(key=sort_key) + module.__path__[:] = [_normalize_cached(p) for p in orig_path] + def declare_namespace(packageName): """Declare that package 'packageName' is a namespace package""" |
