Use even more subprocess accesses

This commit is contained in:
Dave Halter
2017-12-06 15:16:27 +01:00
parent 42fb93dc01
commit 13f8f37547
4 changed files with 13 additions and 6 deletions

View File

@@ -114,8 +114,12 @@ class Evaluator(object):
self.reset_recursion_limitations()
# Constants
# TODO move to get_builtins_module
self.BUILTINS = compiled.get_special_object(self, 'BUILTINS')
def get_builtins_module(self):
return self.BUILTINS
def reset_recursion_limitations(self):
self.recursion_detector = recursion.RecursionDetector()
self.execution_recursion_detector = recursion.ExecutionRecursionDetector(self)

View File

@@ -1,12 +1,13 @@
from jedi._compatibility import builtins as _builtins
from jedi.evaluate.compiled.context import CompiledObject, CompiledName, \
CompiledObjectFilter, CompiledContextName, create_from_access_path
CompiledObjectFilter, CompiledContextName, create_from_access_path, \
create_from_name
from jedi.evaluate.compiled import access
def builtin_from_name(evaluator, string):
bltn_obj = getattr(_builtins, string)
return create(evaluator, bltn_obj)
builtins = evaluator.get_builtins_module()
return create_from_name(evaluator, builtins, string)
def create_simple_object(evaluator, obj):

View File

@@ -172,6 +172,8 @@ class CompiledObject(Context):
return
for name in self._parse_function_doc()[1].split():
try:
# TODO wtf is this? this is exactly the same as the thing
# below. It uses getattr as well.
self.evaluator.BUILTINS.access_handle.getattr(name)
except AttributeError:
continue
@@ -228,7 +230,7 @@ class CompiledName(AbstractNameDefinition):
@underscore_memoization
def infer(self):
return ContextSet(_create_from_name(
return ContextSet(create_from_name(
self._evaluator, self.parent_context, self.string_name
))
@@ -394,7 +396,7 @@ def _parse_function_doc(doc):
return param_str, ret
def _create_from_name(evaluator, compiled_object, name):
def create_from_name(evaluator, compiled_object, name):
faked = None
try:
faked = fake.get_faked_with_parent_context(compiled_object, name)

View File

@@ -23,7 +23,7 @@ def test_simple(evaluator):
def test_fake_loading(evaluator):
builtin = compiled.get_special_object(evaluator, 'BUILTINS')
string, = builtin.py__getattribute__('str')
from_name = compiled.context._create_from_name(evaluator, string, '__init__')
from_name = compiled.context.create_from_name(evaluator, string, '__init__')
assert from_name.tree_node