mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-30 21:35:22 +08:00
unite returns a set now, this simplifies all the set(unite( calls.
This commit is contained in:
@@ -157,4 +157,4 @@ def splitlines(string):
|
||||
|
||||
def unite(iterable):
|
||||
"""Turns a two dimensional array into a one dimensional."""
|
||||
return list(chain.from_iterable(iterable))
|
||||
return set(chain.from_iterable(iterable))
|
||||
|
||||
@@ -187,7 +187,7 @@ class Evaluator(object):
|
||||
if isinstance(element, iterable.AlreadyEvaluated):
|
||||
return set(element)
|
||||
elif isinstance(element, iterable.MergedNodes):
|
||||
return set(iterable.unite(self.eval_element(e) for e in element))
|
||||
return iterable.unite(self.eval_element(e) for e in element)
|
||||
|
||||
if_stmt = element.get_parent_until((tree.IfStmt, tree.ForStmt, tree.IsScope))
|
||||
predefined_if_name_dict = self.predefined_if_name_dict_dict.get(if_stmt)
|
||||
|
||||
@@ -2,7 +2,6 @@ import copy
|
||||
from itertools import chain
|
||||
|
||||
from jedi.parser import tree
|
||||
from jedi import common
|
||||
|
||||
|
||||
def deep_ast_copy(obj, parent=None, new_elements=None):
|
||||
@@ -121,7 +120,7 @@ def get_names_of_node(node):
|
||||
else:
|
||||
return []
|
||||
else:
|
||||
return common.unite(get_names_of_node(c) for c in children)
|
||||
return list(chain.from_iterable(get_names_of_node(c) for c in children))
|
||||
|
||||
|
||||
def get_module_names(module, all_scopes):
|
||||
|
||||
@@ -265,7 +265,7 @@ class Array(IterableWrapper, ArrayMixin):
|
||||
|
||||
@memoize_default()
|
||||
def values(self):
|
||||
result = set(unite(self._evaluator.eval_element(v) for v in self._values()))
|
||||
result = unite(self._evaluator.eval_element(v) for v in self._values())
|
||||
result |= check_array_additions(self._evaluator, self)
|
||||
return result
|
||||
|
||||
@@ -400,7 +400,7 @@ class FakeDict(_FakeArray):
|
||||
self._dct = dct
|
||||
|
||||
def get_exact_index_types(self, index):
|
||||
return set(unite(self._evaluator.eval_element(v) for v in self._dct[index]))
|
||||
return unite(self._evaluator.eval_element(v) for v in self._dct[index])
|
||||
|
||||
def _items(self):
|
||||
return self._dct.items()
|
||||
@@ -415,7 +415,7 @@ class MergedArray(_FakeArray):
|
||||
raise IndexError
|
||||
|
||||
def values(self):
|
||||
return set(unite((a.values() for a in self._arrays)))
|
||||
return unite((a.values() for a in self._arrays))
|
||||
|
||||
def __iter__(self):
|
||||
for array in self._arrays:
|
||||
@@ -562,10 +562,10 @@ def _check_array_additions(evaluator, compare_array, module, is_list):
|
||||
params = params[1:]
|
||||
if add_name in ['append', 'add', 'insert']:
|
||||
for key, nodes in params:
|
||||
result |= set(unite(evaluator.eval_element(node) for node in nodes))
|
||||
result |= unite(evaluator.eval_element(node) for node in nodes)
|
||||
elif add_name in ['extend', 'update']:
|
||||
for key, nodes in params:
|
||||
result |= set(unite(get_iterator_types(evaluator, node) for node in nodes))
|
||||
result |= unite(get_iterator_types(evaluator, node) for node in nodes)
|
||||
return result
|
||||
|
||||
from jedi.evaluate import representation as er, param
|
||||
|
||||
@@ -10,6 +10,7 @@ import collections
|
||||
import re
|
||||
|
||||
from jedi._compatibility import unicode
|
||||
from jedi.common import unite
|
||||
from jedi.evaluate import compiled
|
||||
from jedi.evaluate import representation as er
|
||||
from jedi.evaluate import iterable
|
||||
@@ -49,9 +50,9 @@ def _follow_param(evaluator, arguments, index):
|
||||
try:
|
||||
key, values = list(arguments.unpack())[index]
|
||||
except IndexError:
|
||||
return []
|
||||
return set()
|
||||
else:
|
||||
return iterable.unite(evaluator.eval_element(v) for v in values)
|
||||
return unite(evaluator.eval_element(v) for v in values)
|
||||
|
||||
|
||||
def argument_clinic(string, want_obj=False, want_scope=False, want_arguments=False):
|
||||
@@ -152,8 +153,7 @@ def builtins_super(evaluator, types, objects, scope):
|
||||
|
||||
def get_iterable_content(evaluator, arguments, argument_index):
|
||||
nodes = list(arguments.unpack())[argument_index][1]
|
||||
return set(iterable.unite(iterable.get_iterator_types(evaluator, node)
|
||||
for node in nodes))
|
||||
return unite(iterable.get_iterator_types(evaluator, node) for node in nodes)
|
||||
|
||||
|
||||
@argument_clinic('sequence, /', want_obj=True, want_arguments=True)
|
||||
@@ -216,8 +216,9 @@ def collections_namedtuple(evaluator, obj, arguments):
|
||||
return set()
|
||||
|
||||
# Process arguments
|
||||
name = _follow_param(evaluator, arguments, 0)[0].obj
|
||||
_fields = _follow_param(evaluator, arguments, 1)[0]
|
||||
# TODO here we only use one of the types, we should use all.
|
||||
name = list(_follow_param(evaluator, arguments, 0))[0].obj
|
||||
_fields = list(_follow_param(evaluator, arguments, 1))[0]
|
||||
if isinstance(_fields, compiled.CompiledObject):
|
||||
fields = _fields.obj.replace(',', ' ').split()
|
||||
elif isinstance(_fields, iterable.Array):
|
||||
|
||||
Reference in New Issue
Block a user