Change search strategy for adding parent paths:

1. skip dirs with __init__.py
2. Stop immediately when above self._path
This commit is contained in:
Sam Roeca
2019-11-30 10:14:28 -05:00
parent c2fd7b3104
commit 1ba83414a5

View File

@@ -110,16 +110,15 @@ class Project(object):
suffixed += discover_buildout_paths(inference_state, inference_state.script_path)
if add_parent_paths:
# Collect directories in upward search until we:
# 1. Hit any directory without an __init__.py, AND
# 2. Are above self._path.
# Collect directories in upward search by:
# 1. Skipping directories with __init__.py
# 2. Stopping immediately when above self._path
traversed = []
no_init = False
for parent_path in traverse_parents(inference_state.script_path):
if not os.path.isfile(os.path.join(parent_path, "__init__.py")):
no_init = True
if no_init and not parent_path.startswith(self._path):
if not parent_path.startswith(self._path):
break
if os.path.isfile(os.path.join(parent_path, "__init__.py")):
continue
traversed.append(parent_path)
# AFAIK some libraries have imports like `foo.foo.bar`, which