From ea6462daf408285fe615b5a90bcfeb4614d59f48 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Mon, 6 May 2019 19:50:26 +0200 Subject: [PATCH] Forgot to add evaluate/names.py earlier --- jedi/evaluate/names.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 jedi/evaluate/names.py diff --git a/jedi/evaluate/names.py b/jedi/evaluate/names.py new file mode 100644 index 00000000..6c58435c --- /dev/null +++ b/jedi/evaluate/names.py @@ -0,0 +1,39 @@ +from jedi.evaluate.filters import AbstractNameDefinition + + +class ImportName(AbstractNameDefinition): + start_pos = (1, 0) + _level = 0 + + def __init__(self, parent_context, string_name): + self.parent_context = parent_context + self.string_name = string_name + + def infer(self): + from jedi.evaluate.imports import Importer + return Importer( + self.parent_context.evaluator, + [self.string_name], + self.parent_context, + level=self._level, + ).follow() + + def goto(self): + return [m.name for m in self.infer()] + + def get_root_context(self): + # Not sure if this is correct. + return self.parent_context.get_root_context() + + @property + def api_type(self): + return 'module' + + +class SubModuleName(ImportName): + _level = 1 + + +class OsPathName(ImportName): + def infer(self): + return self.parent_context.evaluator.import_module(('os', 'path'))