mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-11 00:01:54 +08:00
Use even more subprocess accesses
This commit is contained in:
@@ -114,8 +114,12 @@ class Evaluator(object):
|
|||||||
self.reset_recursion_limitations()
|
self.reset_recursion_limitations()
|
||||||
|
|
||||||
# Constants
|
# Constants
|
||||||
|
# TODO move to get_builtins_module
|
||||||
self.BUILTINS = compiled.get_special_object(self, 'BUILTINS')
|
self.BUILTINS = compiled.get_special_object(self, 'BUILTINS')
|
||||||
|
|
||||||
|
def get_builtins_module(self):
|
||||||
|
return self.BUILTINS
|
||||||
|
|
||||||
def reset_recursion_limitations(self):
|
def reset_recursion_limitations(self):
|
||||||
self.recursion_detector = recursion.RecursionDetector()
|
self.recursion_detector = recursion.RecursionDetector()
|
||||||
self.execution_recursion_detector = recursion.ExecutionRecursionDetector(self)
|
self.execution_recursion_detector = recursion.ExecutionRecursionDetector(self)
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from jedi._compatibility import builtins as _builtins
|
from jedi._compatibility import builtins as _builtins
|
||||||
from jedi.evaluate.compiled.context import CompiledObject, CompiledName, \
|
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
|
from jedi.evaluate.compiled import access
|
||||||
|
|
||||||
|
|
||||||
def builtin_from_name(evaluator, string):
|
def builtin_from_name(evaluator, string):
|
||||||
bltn_obj = getattr(_builtins, string)
|
builtins = evaluator.get_builtins_module()
|
||||||
return create(evaluator, bltn_obj)
|
return create_from_name(evaluator, builtins, string)
|
||||||
|
|
||||||
|
|
||||||
def create_simple_object(evaluator, obj):
|
def create_simple_object(evaluator, obj):
|
||||||
|
|||||||
@@ -172,6 +172,8 @@ class CompiledObject(Context):
|
|||||||
return
|
return
|
||||||
for name in self._parse_function_doc()[1].split():
|
for name in self._parse_function_doc()[1].split():
|
||||||
try:
|
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)
|
self.evaluator.BUILTINS.access_handle.getattr(name)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
continue
|
continue
|
||||||
@@ -228,7 +230,7 @@ class CompiledName(AbstractNameDefinition):
|
|||||||
|
|
||||||
@underscore_memoization
|
@underscore_memoization
|
||||||
def infer(self):
|
def infer(self):
|
||||||
return ContextSet(_create_from_name(
|
return ContextSet(create_from_name(
|
||||||
self._evaluator, self.parent_context, self.string_name
|
self._evaluator, self.parent_context, self.string_name
|
||||||
))
|
))
|
||||||
|
|
||||||
@@ -394,7 +396,7 @@ def _parse_function_doc(doc):
|
|||||||
return param_str, ret
|
return param_str, ret
|
||||||
|
|
||||||
|
|
||||||
def _create_from_name(evaluator, compiled_object, name):
|
def create_from_name(evaluator, compiled_object, name):
|
||||||
faked = None
|
faked = None
|
||||||
try:
|
try:
|
||||||
faked = fake.get_faked_with_parent_context(compiled_object, name)
|
faked = fake.get_faked_with_parent_context(compiled_object, name)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ def test_simple(evaluator):
|
|||||||
def test_fake_loading(evaluator):
|
def test_fake_loading(evaluator):
|
||||||
builtin = compiled.get_special_object(evaluator, 'BUILTINS')
|
builtin = compiled.get_special_object(evaluator, 'BUILTINS')
|
||||||
string, = builtin.py__getattribute__('str')
|
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
|
assert from_name.tree_node
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user