Commit 11ef9a98 authored by Jason R. Coombs's avatar Jason R. Coombs

Suppress ValueError in fixup_namespace_packages. Fixes #520. Fixes #513.

parent 2388233e
......@@ -5,6 +5,9 @@ CHANGES
v27.2.0
-------
* #520 and #513: Suppress ValueErrors in fixup_namespace_packages
when lookup fails.
* Nicer, more consistent interfaces for msvc monkeypatching.
v27.1.2
......
......@@ -2066,6 +2066,15 @@ def _rebuild_mod_path(orig_path, package_name, module):
"""
sys_path = [_normalize_cached(p) for p in sys.path]
def safe_sys_path_index(entry):
"""
Workaround for #520 and #513.
"""
try:
return sys_path.index(entry)
except ValueError:
return float('inf')
def position_in_sys_path(path):
"""
Return the ordinal of the path based on its position in sys.path
......@@ -2073,7 +2082,7 @@ def _rebuild_mod_path(orig_path, package_name, module):
path_parts = path.split(os.sep)
module_parts = package_name.count('.') + 1
parts = path_parts[:-module_parts]
return sys_path.index(_normalize_cached(os.sep.join(parts)))
return safe_sys_path_index(_normalize_cached(os.sep.join(parts)))
orig_path.sort(key=position_in_sys_path)
module.__path__[:] = [_normalize_cached(p) for p in orig_path]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment