unite returns a set now, this simplifies all the set(unite( calls.

This commit is contained in:
Dave Halter
2015-11-28 17:52:39 +01:00
parent 9259a432b7
commit 55615fb3c1
5 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -157,4 +157,4 @@ def splitlines(string):
def unite(iterable): def unite(iterable):
"""Turns a two dimensional array into a one dimensional.""" """Turns a two dimensional array into a one dimensional."""
return list(chain.from_iterable(iterable)) return set(chain.from_iterable(iterable))
+1 -1
View File
@@ -187,7 +187,7 @@ class Evaluator(object):
if isinstance(element, iterable.AlreadyEvaluated): if isinstance(element, iterable.AlreadyEvaluated):
return set(element) return set(element)
elif isinstance(element, iterable.MergedNodes): 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)) 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) predefined_if_name_dict = self.predefined_if_name_dict_dict.get(if_stmt)
+1 -2
View File
@@ -2,7 +2,6 @@ import copy
from itertools import chain from itertools import chain
from jedi.parser import tree from jedi.parser import tree
from jedi import common
def deep_ast_copy(obj, parent=None, new_elements=None): def deep_ast_copy(obj, parent=None, new_elements=None):
@@ -121,7 +120,7 @@ def get_names_of_node(node):
else: else:
return [] return []
else: 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): def get_module_names(module, all_scopes):
+5 -5
View File
@@ -265,7 +265,7 @@ class Array(IterableWrapper, ArrayMixin):
@memoize_default() @memoize_default()
def values(self): 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) result |= check_array_additions(self._evaluator, self)
return result return result
@@ -400,7 +400,7 @@ class FakeDict(_FakeArray):
self._dct = dct self._dct = dct
def get_exact_index_types(self, index): 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): def _items(self):
return self._dct.items() return self._dct.items()
@@ -415,7 +415,7 @@ class MergedArray(_FakeArray):
raise IndexError raise IndexError
def values(self): 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): def __iter__(self):
for array in self._arrays: for array in self._arrays:
@@ -562,10 +562,10 @@ def _check_array_additions(evaluator, compare_array, module, is_list):
params = params[1:] params = params[1:]
if add_name in ['append', 'add', 'insert']: if add_name in ['append', 'add', 'insert']:
for key, nodes in params: 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']: elif add_name in ['extend', 'update']:
for key, nodes in params: 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 return result
from jedi.evaluate import representation as er, param from jedi.evaluate import representation as er, param
+7 -6
View File
@@ -10,6 +10,7 @@ import collections
import re import re
from jedi._compatibility import unicode from jedi._compatibility import unicode
from jedi.common import unite
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate import representation as er from jedi.evaluate import representation as er
from jedi.evaluate import iterable from jedi.evaluate import iterable
@@ -49,9 +50,9 @@ def _follow_param(evaluator, arguments, index):
try: try:
key, values = list(arguments.unpack())[index] key, values = list(arguments.unpack())[index]
except IndexError: except IndexError:
return [] return set()
else: 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): 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): def get_iterable_content(evaluator, arguments, argument_index):
nodes = list(arguments.unpack())[argument_index][1] nodes = list(arguments.unpack())[argument_index][1]
return set(iterable.unite(iterable.get_iterator_types(evaluator, node) return unite(iterable.get_iterator_types(evaluator, node) for node in nodes)
for node in nodes))
@argument_clinic('sequence, /', want_obj=True, want_arguments=True) @argument_clinic('sequence, /', want_obj=True, want_arguments=True)
@@ -216,8 +216,9 @@ def collections_namedtuple(evaluator, obj, arguments):
return set() return set()
# Process arguments # Process arguments
name = _follow_param(evaluator, arguments, 0)[0].obj # TODO here we only use one of the types, we should use all.
_fields = _follow_param(evaluator, arguments, 1)[0] name = list(_follow_param(evaluator, arguments, 0))[0].obj
_fields = list(_follow_param(evaluator, arguments, 1))[0]
if isinstance(_fields, compiled.CompiledObject): if isinstance(_fields, compiled.CompiledObject):
fields = _fields.obj.replace(',', ' ').split() fields = _fields.obj.replace(',', ' ').split()
elif isinstance(_fields, iterable.Array): elif isinstance(_fields, iterable.Array):