mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-08 06:44:46 +08:00
Use even more subprocess accesses
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user