1
0
forked from VimPlug/jedi

Don't use the create function anymore in compiled

Now the whole creation of builtin objects is abstract and was moved to subprocesses etc.
This commit is contained in:
Dave Halter
2017-12-06 15:26:29 +01:00
parent 13f8f37547
commit a210be8198
4 changed files with 18 additions and 9 deletions

View File

@@ -5,9 +5,16 @@ TODO Some parts of this module are still not well documented.
from jedi.evaluate.context import ModuleContext from jedi.evaluate.context import ModuleContext
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate.compiled import mixed from jedi.evaluate.compiled import mixed
from jedi.evaluate.compiled.access import create_access_path
from jedi.evaluate.base_context import Context from jedi.evaluate.base_context import Context
def _create(evaluator, obj):
return compiled.create_from_access_path(
evaluator, create_access_path(evaluator, obj)
)
class NamespaceObject(object): class NamespaceObject(object):
def __init__(self, dct): def __init__(self, dct):
self.__dict__ = dct self.__dict__ = dct
@@ -33,7 +40,7 @@ class MixedModuleContext(Context):
yield filter yield filter
for namespace_obj in self._namespace_objects: for namespace_obj in self._namespace_objects:
compiled_object = compiled.create(self.evaluator, namespace_obj) compiled_object = _create(self.evaluator, namespace_obj)
mixed_object = mixed.MixedObject( mixed_object = mixed.MixedObject(
self.evaluator, self.evaluator,
parent_context=self, parent_context=self,

View File

@@ -16,12 +16,9 @@ def create_simple_object(evaluator, obj):
versions. versions.
""" """
assert isinstance(obj, (int, float, str, bytes, slice, complex, type(Ellipsis))) assert isinstance(obj, (int, float, str, bytes, slice, complex, type(Ellipsis)))
return create(evaluator, obj)
def create(evaluator, obj):
return create_from_access_path( return create_from_access_path(
evaluator, access.create_access_path(evaluator, obj) evaluator,
evaluator.compiled_subprocess.create_simple_object(obj)
) )

View File

@@ -17,3 +17,7 @@ def get_compiled_method_return(evaluator, id, attribute, *args, **kwargs):
def get_special_object(evaluator, identifier): def get_special_object(evaluator, identifier):
return access.get_special_object(evaluator, identifier) return access.get_special_object(evaluator, identifier)
def create_simple_object(evaluator, obj):
return access.create_access_path(evaluator, obj)

View File

@@ -9,11 +9,12 @@ from jedi.evaluate.context.function import FunctionContext
from jedi.evaluate import Evaluator from jedi.evaluate import Evaluator
from jedi.evaluate.project import Project from jedi.evaluate.project import Project
from jedi.parser_utils import clean_scope_docstring from jedi.parser_utils import clean_scope_docstring
from jedi.api import interpreter
from jedi import Script from jedi import Script
def test_simple(evaluator): def test_simple(evaluator):
obj = compiled.create(evaluator, '_str_') obj = compiled.create_simple_object(evaluator, '_str_')
upper, = obj.py__getattribute__('upper') upper, = obj.py__getattribute__('upper')
objs = list(upper.execute_evaluated()) objs = list(upper.execute_evaluated())
assert len(objs) == 1 assert len(objs) == 1
@@ -28,7 +29,7 @@ def test_fake_loading(evaluator):
def test_fake_docstr(evaluator): def test_fake_docstr(evaluator):
next_ = compiled.create(evaluator, next) next_ = interpreter._create(evaluator, next)
assert next_.py__doc__() assert next_.py__doc__()
assert next_.tree_node is not None assert next_.tree_node is not None
assert next_.py__doc__() == next.__doc__ assert next_.py__doc__() == next.__doc__
@@ -48,7 +49,7 @@ def test_doc(evaluator):
Even CompiledObject docs always return empty docstrings - not None, that's Even CompiledObject docs always return empty docstrings - not None, that's
just a Jedi API definition. just a Jedi API definition.
""" """
obj = compiled.create(evaluator, ''.__getnewargs__) obj = interpreter._create(evaluator, ''.__getnewargs__)
assert obj.py__doc__() == '' assert obj.py__doc__() == ''