1
0
forked from VimPlug/jedi

Move iter_over_arguments to a separate file

This commit is contained in:
Dave Halter
2019-12-08 20:14:15 +01:00
parent deaa7265dd
commit c112858a1c
3 changed files with 29 additions and 26 deletions

View 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))