diff --git a/jedi/api/project.py b/jedi/api/project.py index ec958662..e39a1a6a 100644 --- a/jedi/api/project.py +++ b/jedi/api/project.py @@ -8,7 +8,7 @@ from jedi.api.exceptions import WrongVersion from jedi._compatibility import force_unicode from jedi.evaluate.sys_path import discover_buildout_paths from jedi.evaluate.cache import evaluator_as_method_param_cache -from jedi.evaluate.sys_path import traverse_parents +from jedi.common.utils import traverse_parents _CONFIG_FOLDER = '.jedi' _CONTAINS_POTENTIAL_PROJECT = 'setup.py', '.git', '.hg', 'MANIFEST.in' diff --git a/jedi/common/utils.py b/jedi/common/utils.py new file mode 100644 index 00000000..72726a46 --- /dev/null +++ b/jedi/common/utils.py @@ -0,0 +1,12 @@ +import os + + +def traverse_parents(path, include_current=False): + if not include_current: + path = os.path.dirname(path) + + previous = None + while previous != path: + yield path + previous = path + path = os.path.dirname(path) diff --git a/jedi/evaluate/sys_path.py b/jedi/evaluate/sys_path.py index a18d0c50..2339a805 100644 --- a/jedi/evaluate/sys_path.py +++ b/jedi/evaluate/sys_path.py @@ -5,9 +5,9 @@ from jedi._compatibility import unicode, force_unicode from jedi.evaluate.cache import evaluator_method_cache from jedi.evaluate.base_context import ContextualizedNode from jedi.evaluate.helpers import is_string +from jedi.common.utils import traverse_parents from jedi import settings from jedi import debug -from jedi.evaluate.utils import ignored def _abs_path(module_context, path): @@ -160,17 +160,6 @@ def _get_paths_from_buildout_script(evaluator, buildout_script_path): yield path -def traverse_parents(path, include_current=False): - if not include_current: - path = os.path.dirname(path) - - previous = None - while previous != path: - yield path - previous = path - path = os.path.dirname(path) - - def _get_parent_dir_with_file(path, filename): for parent in traverse_parents(path): if os.path.isfile(os.path.join(parent, filename)):