mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 14:34:31 +08:00
Move iter_over_arguments to a separate file
This commit is contained in:
@@ -3,35 +3,11 @@ from jedi.inference.base_value import ValueSet, NO_VALUES, Value, \
|
|||||||
iterator_to_value_set, LazyValueWrapper, ValueWrapper
|
iterator_to_value_set, LazyValueWrapper, ValueWrapper
|
||||||
from jedi.inference.compiled import builtin_from_name
|
from jedi.inference.compiled import builtin_from_name
|
||||||
from jedi.inference.value.klass import ClassFilter
|
from jedi.inference.value.klass import ClassFilter
|
||||||
from jedi.inference.value.iterable import SequenceLiteralValue
|
|
||||||
from jedi.inference.value.klass import ClassMixin
|
from jedi.inference.value.klass import ClassMixin
|
||||||
from jedi.inference.utils import to_list
|
from jedi.inference.utils import to_list
|
||||||
from jedi.inference.names import AbstractNameDefinition, ValueName
|
from jedi.inference.names import AbstractNameDefinition, ValueName
|
||||||
from jedi.inference.context import ClassContext
|
from jedi.inference.context import ClassContext
|
||||||
from jedi.inference.helpers import is_string
|
from jedi.inference.gradual.generics import iter_over_arguments
|
||||||
|
|
||||||
|
|
||||||
def iter_over_arguments(maybe_tuple_value, defining_context):
|
|
||||||
def iterate():
|
|
||||||
if isinstance(maybe_tuple_value, SequenceLiteralValue):
|
|
||||||
for lazy_value in maybe_tuple_value.py__iter__(contextualized_node=None):
|
|
||||||
yield lazy_value.infer()
|
|
||||||
else:
|
|
||||||
yield ValueSet([maybe_tuple_value])
|
|
||||||
|
|
||||||
def resolve_forward_references(value_set):
|
|
||||||
for value in value_set:
|
|
||||||
if is_string(value):
|
|
||||||
from jedi.inference.gradual.annotation import _get_forward_reference_node
|
|
||||||
node = _get_forward_reference_node(defining_context, value.get_safe_value())
|
|
||||||
if node is not None:
|
|
||||||
for c in defining_context.infer_node(node):
|
|
||||||
yield c
|
|
||||||
else:
|
|
||||||
yield value
|
|
||||||
|
|
||||||
for value_set in iterate():
|
|
||||||
yield ValueSet(resolve_forward_references(value_set))
|
|
||||||
|
|
||||||
|
|
||||||
class BaseTypingValue(Value):
|
class BaseTypingValue(Value):
|
||||||
|
|||||||
27
jedi/inference/gradual/generics.py
Normal file
27
jedi/inference/gradual/generics.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
from jedi.inference.base_value import ValueSet, Value, \
|
||||||
|
iterator_to_value_set, LazyValueWrapper, ValueWrapper
|
||||||
|
from jedi.inference.value.iterable import SequenceLiteralValue
|
||||||
|
from jedi.inference.helpers import is_string
|
||||||
|
|
||||||
|
|
||||||
|
def iter_over_arguments(maybe_tuple_value, defining_context):
|
||||||
|
def iterate():
|
||||||
|
if isinstance(maybe_tuple_value, SequenceLiteralValue):
|
||||||
|
for lazy_value in maybe_tuple_value.py__iter__(contextualized_node=None):
|
||||||
|
yield lazy_value.infer()
|
||||||
|
else:
|
||||||
|
yield ValueSet([maybe_tuple_value])
|
||||||
|
|
||||||
|
def resolve_forward_references(value_set):
|
||||||
|
for value in value_set:
|
||||||
|
if is_string(value):
|
||||||
|
from jedi.inference.gradual.annotation import _get_forward_reference_node
|
||||||
|
node = _get_forward_reference_node(defining_context, value.get_safe_value())
|
||||||
|
if node is not None:
|
||||||
|
for c in defining_context.infer_node(node):
|
||||||
|
yield c
|
||||||
|
else:
|
||||||
|
yield value
|
||||||
|
|
||||||
|
for value_set in iterate():
|
||||||
|
yield ValueSet(resolve_forward_references(value_set))
|
||||||
@@ -18,7 +18,7 @@ from jedi.inference.names import NameWrapper, ValueName
|
|||||||
from jedi.inference.value.klass import ClassMixin
|
from jedi.inference.value.klass import ClassMixin
|
||||||
from jedi.inference.gradual.base import BaseTypingValue
|
from jedi.inference.gradual.base import BaseTypingValue
|
||||||
from jedi.inference.gradual.type_var import TypeVarClass
|
from jedi.inference.gradual.type_var import TypeVarClass
|
||||||
from jedi.inference.gradual.base import iter_over_arguments
|
from jedi.inference.gradual.generics import iter_over_arguments
|
||||||
|
|
||||||
_PROXY_CLASS_TYPES = 'Tuple Generic Protocol Callable Type'.split()
|
_PROXY_CLASS_TYPES = 'Tuple Generic Protocol Callable Type'.split()
|
||||||
_TYPE_ALIAS_TYPES = {
|
_TYPE_ALIAS_TYPES = {
|
||||||
|
|||||||
Reference in New Issue
Block a user