_____________________________________________ test_defined_names ______________________________________________
self = <Definition def __new__>, args = (), kwargs = {}
cache_dict = {<function BaseDefinition.params at 0x7fed71a89c80>: {((), frozenset()): [<_Param param cls>, <_Param param *args>, <_Param param **kwargs>]}, <function Definition.defined_names at 0x7fed71a8b620>: {}}
dct = {}, key = ((), frozenset())
def wrapper(self, *args, **kwargs):
cache_dict = self.__dict__.setdefault('_memoize_method_dct', {})
dct = cache_dict.setdefault(method, {})
key = (args, frozenset(kwargs.items()))
try:
> return dct[key]
E KeyError: ((), frozenset())
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/cache.py:119: KeyError
During handling of the above exception, another exception occurred:
def test_defined_names():
filename = __file__
with open(filename, 'r', encoding='utf-8') as file:
code = file.read()
> results = workers.defined_names({'code': code, 'path': filename})
test/test_backend/test_workers.py:80:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pyqode/python/backend/workers.py:115: in defined_names
definition = _extract_def(d, path)
pyqode/python/backend/workers.py:99: in _extract_def
definition.add_child(_extract_def(sub_d, path))
pyqode/python/backend/workers.py:95: in _extract_def
sub_definitions = d.defined_names()
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/cache.py:121: in wrapper
result = method(self, *args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/api/classes.py:578: in defined_names
common.unite(defined_names(self._evaluator, d) for d in defs),
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/common.py:191: in unite
return set(typ for types in iterable for typ in types)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/common.py:191: in <genexpr>
return set(typ for types in iterable for typ in types)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/api/classes.py:578: in <genexpr>
common.unite(defined_names(self._evaluator, d) for d in defs),
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/api/classes.py:34: in defined_names
names = [name for name in filter.values()]
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:157: in values
return self._convert_names(name for name_list in self._used_names.values()
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:154: in _convert_names
return [self.name_class(self.context, name) for name in names]
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:154: in <listcomp>
return [self.name_class(self.context, name) for name in names]
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:158: in <genexpr>
for name in self._filter(name_list))
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:183: in _filter
return list(self._check_flows(names))
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:197: in _check_flows
self._node_context, self._parser_scope, name, self._origin_scope
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/flow_analysis.py:73: in reachability_check
return _break_check(context, context_scope, first_flow_scope, node)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/flow_analysis.py:81: in _break_check
reachable = _check_if(context, check_node)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/flow_analysis.py:104: in _check_if
types = context.eval_node(node)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/context.py:37: in eval_node
return self.evaluator.eval_element(self, node)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:247: in eval_element
return self._eval_element_if_evaluated(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:264: in _eval_element_if_evaluated
return self._eval_element_cached(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/cache.py:41: in wrapper
rv = function(obj, *args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:268: in _eval_element_cached
return self._eval_element_not_cached(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/debug.py:81: in wrapper
return func(*args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:325: in _eval_element_not_cached
types = precedence.calculate_children(self, context, element.children)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/precedence.py:45: in calculate_children
types = context.eval_node(next(iterator))
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/context.py:37: in eval_node
return self.evaluator.eval_element(self, node)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:247: in eval_element
return self._eval_element_if_evaluated(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:264: in _eval_element_if_evaluated
return self._eval_element_cached(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/cache.py:41: in wrapper
rv = function(obj, *args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:268: in _eval_element_cached
return self._eval_element_not_cached(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/debug.py:81: in wrapper
return func(*args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:325: in _eval_element_not_cached
types = precedence.calculate_children(self, context, element.children)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/precedence.py:63: in calculate_children
context.eval_node(right))
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/context.py:37: in eval_node
return self.evaluator.eval_element(self, node)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:247: in eval_element
return self._eval_element_if_evaluated(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:264: in _eval_element_if_evaluated
return self._eval_element_cached(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/cache.py:41: in wrapper
rv = function(obj, *args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:268: in _eval_element_cached
return self._eval_element_not_cached(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/debug.py:81: in wrapper
return func(*args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:276: in _eval_element_not_cached
types = self.eval_atom(context, element)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:347: in eval_atom
search_global=True
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/_compatibility.py:213: in <lambda>
return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/context.py:52: in py__getattribute__
self, name_or_str, name_context, position, search_global, is_goto)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/__init__.py:130: in find_types
return f.find(filters, attribute_lookup=not search_global)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/debug.py:81: in wrapper
return func(*args, **kwargs)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/finder.py:64: in find
types = self._names_to_types(names, attribute_lookup)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/finder.py:147: in _names_to_types
types = unite(name.infer() for name in names)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/common.py:191: in unite
return set(typ for types in iterable for typ in types)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/common.py:191: in <genexpr>
return set(typ for types in iterable for typ in types)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/finder.py:147: in <genexpr>
types = unite(name.infer() for name in names)
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/filters.py:79: in infer
return _name_to_types(self.parent_context.evaluator, self.parent_context, self.tree_name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
evaluator = <jedi.evaluate.Evaluator object at 0x7fed6bb25908>
context = <FunctionContext: <Function: __new__@70-103>>, tree_name = <Name: kwargs@70,30>
def _name_to_types(evaluator, context, tree_name):
types = []
node = tree_name.get_definition()
typ = node.type
if typ == 'for_stmt':
types = pep0484.find_type_from_comment_hint_for(context, node, tree_name)
if types:
return types
if typ == 'with_stmt':
types = pep0484.find_type_from_comment_hint_with(context, node, tree_name)
if types:
return types
if typ in ('for_stmt', 'comp_for'):
try:
types = context.predefined_names[node][tree_name.value]
except KeyError:
cn = ContextualizedNode(context, node.children[3])
for_types = iterable.py__iter__types(evaluator, cn.infer(), cn)
c_node = ContextualizedName(context, tree_name)
types = check_tuple_assignments(evaluator, c_node, for_types)
elif typ == 'expr_stmt':
types = _remove_statements(evaluator, context, node, tree_name)
elif typ == 'with_stmt':
types = context.eval_node(node.node_from_name(tree_name))
elif typ in ('import_from', 'import_name'):
types = imports.infer_import(context, tree_name)
elif typ in ('funcdef', 'classdef'):
types = _apply_decorators(evaluator, context, node)
elif typ == 'global_stmt':
context = evaluator.create_context(context, tree_name)
finder = NameFinder(evaluator, context, context, str(tree_name))
filters = finder.get_filters(search_global=True)
# For global_stmt lookups, we only need the first possible scope,
# which means the function itself.
filters = [next(filters)]
types += finder.find(filters, attribute_lookup=False)
elif typ == 'try_stmt':
# TODO an exception can also be a tuple. Check for those.
# TODO check for types that are not classes and add it to
# the static analysis report.
exceptions = context.eval_node(tree_name.get_previous_sibling().get_previous_sibling())
types = unite(
evaluator.execute(t, param.ValuesArguments([]))
for t in exceptions
)
else:
> raise ValueError("Should not happen.")
E ValueError: Should not happen.
../../../.virtualenvs/pyqode/lib/python3.5/site-packages/jedi/evaluate/finder.py:218: ValueError