Jedi: AttributeError: 'ListComprehension' object has no attribute 'parent'

Created on 22 May 2015  路  12Comments  路  Source: davidhalter/jedi

In [1]: import jedi

In [2]: jedi.__version__
Out[2]: '0.9.0'

In [3]: text = """
import requests
result = requests.get('http://www.gnu.org/')
result."""

In [4]: s = jedi.Script(text, 4, 7, '/home/aamalyshev/Source/test.py')

In [5]: s.completions()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-0e4716f5b036> in <module>()
----> 1 s.completions()

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/api/__init__.py in completions(self)
    186
    187         b = compiled.builtin
--> 188         completion_names = get_completions(user_stmt, b)
    189
    190         if not dot:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/api/__init__.py in get_completions(user_stmt, bs)
    172                     # TODO delete? We should search for valid parser
    173                     # transformations.
--> 174                 completion_names += self._simple_complete(path, dot, like)
    175             return completion_names
    176

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/api/__init__.py in _simple_complete(self, path, dot, like)
    248             return []
    249         else:
--> 250             scopes = list(self._prepare_goto(path, True))
    251             completion_names = []
    252             debug.dbg('possible completion scopes: %s', scopes)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/api/__init__.py in _prepare_goto(self, goto_path, is_completion)
    292                 return i.follow()
    293
--> 294             scopes = self._evaluator.eval_element(eval_stmt)
    295
    296         return scopes

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    167         debug.dbg('eval_element %s@%s', element, element.start_pos)
    168         if isinstance(element, (tree.Name, tree.Literal)) or tree.is_node(element, 'atom'):
--> 169             return self._eval_atom(element)
    170         elif isinstance(element, tree.Keyword):
    171             # For False/True/None

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in _eval_atom(self, atom)
    228                 # there the name cannot be used.
    229                 stmt = atom
--> 230             return self.find_types(scope, atom, stmt.start_pos, search_global=True)
    231         elif isinstance(atom, tree.Literal):
    232             return [compiled.create(self, atom.eval())]

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in find_types(self, scope, name_str, position, search_global, is_goto)
    118         if is_goto:
    119             return f.filter_name(scopes)
--> 120         return f.find(scopes, search_global)
    121
    122     @memoize_default(default=[], evaluator_is_first_arg=True)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in find(self, scopes, search_global)
     85         # TODO rename scopes to names_dicts
     86         names = self.filter_name(scopes)
---> 87         types = self._names_to_types(names, search_global)
     88
     89         if not names and not types \

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _names_to_types(self, names, search_global)
    231
    232         for name in names:
--> 233             new_types = _name_to_types(self._evaluator, name, self.scope)
    234             if isinstance(self.scope, (er.Class, er.Instance)) and not search_global:
    235                 types += self._resolve_descriptors(name, new_types)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _name_to_types(evaluator, name, scope)
    276         types += _eval_param(evaluator, typ, scope)
    277     elif typ.isinstance(tree.ExprStmt):
--> 278         types += _remove_statements(evaluator, typ, name)
    279     elif typ.isinstance(tree.WithStmt):
    280         types += evaluator.eval_element(typ.node_from_name(name))

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _remove_statements(evaluator, stmt, name)
    321         stmt = stmt.var
    322
--> 323     types += evaluator.eval_statement(stmt, seek_name=name)
    324
    325     if check_instance is not None:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(evaluator, stmt, *args, **kwargs)
     21             return []
     22         else:
---> 23             result = func(evaluator, stmt, *args, **kwargs)
     24             rec_detect.pop_stmt()
     25         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_statement(self, stmt, seek_name)
    133         """
    134         debug.dbg('eval_statement %s (%s)', stmt, seek_name)
--> 135         types = self.eval_element(stmt.get_rhs())
    136
    137         if seek_name:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    185                 if trailer == '**':  # has a power operation.
    186                     raise NotImplementedError
--> 187                 types = self.eval_trailer(types, trailer)
    188
    189             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_trailer(self, types, trailer)
    257                 new_types += self.find_types(typ, node)
    258             elif trailer_op == '(':
--> 259                 new_types += self.execute(typ, node, trailer)
    260             elif trailer_op == '[':
    261                 try:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in execute(self, obj, arguments, trailer)
    297             return []
    298         else:
--> 299             types = func(self, arguments)
    300             debug.dbg('execute result: %s in %s', types, obj)
    301             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/_compatibility.py in <lambda>(*args, **kwargs)
    122             return lambda *args, **kwargs: self.func(*args, **kwargs)
    123         else:
--> 124             return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
    125
    126

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    558             return [iterable.Generator(evaluator, self, params)]
    559         else:
--> 560             return FunctionExecution(evaluator, self, params).get_return_types()
    561
    562     def __getattr__(self, name):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(execution, **kwargs)
     98             result = []
     99         else:
--> 100             result = func(execution, **kwargs)
    101         detector.pop_execution()
    102         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in get_return_types(self, check_yields)
    622                 debug.dbg('Return unreachable: %s', r)
    623             else:
--> 624                 types += self._evaluator.eval_element(r.children[1])
    625             if check is flow_analysis.REACHABLE:
    626                 debug.dbg('Return reachable: %s', r)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    185                 if trailer == '**':  # has a power operation.
    186                     raise NotImplementedError
--> 187                 types = self.eval_trailer(types, trailer)
    188
    189             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_trailer(self, types, trailer)
    257                 new_types += self.find_types(typ, node)
    258             elif trailer_op == '(':
--> 259                 new_types += self.execute(typ, node, trailer)
    260             elif trailer_op == '[':
    261                 try:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in execute(self, obj, arguments, trailer)
    297             return []
    298         else:
--> 299             types = func(self, arguments)
    300             debug.dbg('execute result: %s in %s', types, obj)
    301             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/_compatibility.py in <lambda>(*args, **kwargs)
    122             return lambda *args, **kwargs: self.func(*args, **kwargs)
    123         else:
--> 124             return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
    125
    126

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    558             return [iterable.Generator(evaluator, self, params)]
    559         else:
--> 560             return FunctionExecution(evaluator, self, params).get_return_types()
    561
    562     def __getattr__(self, name):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(execution, **kwargs)
     98             result = []
     99         else:
--> 100             result = func(execution, **kwargs)
    101         detector.pop_execution()
    102         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in get_return_types(self, check_yields)
    622                 debug.dbg('Return unreachable: %s', r)
    623             else:
--> 624                 types += self._evaluator.eval_element(r.children[1])
    625             if check is flow_analysis.REACHABLE:
    626                 debug.dbg('Return reachable: %s', r)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    167         debug.dbg('eval_element %s@%s', element, element.start_pos)
    168         if isinstance(element, (tree.Name, tree.Literal)) or tree.is_node(element, 'atom'):
--> 169             return self._eval_atom(element)
    170         elif isinstance(element, tree.Keyword):
    171             # For False/True/None

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in _eval_atom(self, atom)
    228                 # there the name cannot be used.
    229                 stmt = atom
--> 230             return self.find_types(scope, atom, stmt.start_pos, search_global=True)
    231         elif isinstance(atom, tree.Literal):
    232             return [compiled.create(self, atom.eval())]

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in find_types(self, scope, name_str, position, search_global, is_goto)
    118         if is_goto:
    119             return f.filter_name(scopes)
--> 120         return f.find(scopes, search_global)
    121
    122     @memoize_default(default=[], evaluator_is_first_arg=True)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in find(self, scopes, search_global)
     85         # TODO rename scopes to names_dicts
     86         names = self.filter_name(scopes)
---> 87         types = self._names_to_types(names, search_global)
     88
     89         if not names and not types \

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _names_to_types(self, names, search_global)
    231
    232         for name in names:
--> 233             new_types = _name_to_types(self._evaluator, name, self.scope)
    234             if isinstance(self.scope, (er.Class, er.Instance)) and not search_global:
    235                 types += self._resolve_descriptors(name, new_types)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _name_to_types(evaluator, name, scope)
    276         types += _eval_param(evaluator, typ, scope)
    277     elif typ.isinstance(tree.ExprStmt):
--> 278         types += _remove_statements(evaluator, typ, name)
    279     elif typ.isinstance(tree.WithStmt):
    280         types += evaluator.eval_element(typ.node_from_name(name))

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _remove_statements(evaluator, stmt, name)
    321         stmt = stmt.var
    322
--> 323     types += evaluator.eval_statement(stmt, seek_name=name)
    324
    325     if check_instance is not None:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(evaluator, stmt, *args, **kwargs)
     21             return []
     22         else:
---> 23             result = func(evaluator, stmt, *args, **kwargs)
     24             rec_detect.pop_stmt()
     25         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_statement(self, stmt, seek_name)
    133         """
    134         debug.dbg('eval_statement %s (%s)', stmt, seek_name)
--> 135         types = self.eval_element(stmt.get_rhs())
    136
    137         if seek_name:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    185                 if trailer == '**':  # has a power operation.
    186                     raise NotImplementedError
--> 187                 types = self.eval_trailer(types, trailer)
    188
    189             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_trailer(self, types, trailer)
    257                 new_types += self.find_types(typ, node)
    258             elif trailer_op == '(':
--> 259                 new_types += self.execute(typ, node, trailer)
    260             elif trailer_op == '[':
    261                 try:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in execute(self, obj, arguments, trailer)
    297             return []
    298         else:
--> 299             types = func(self, arguments)
    300             debug.dbg('execute result: %s in %s', types, obj)
    301             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    362             return self.var.py__call__(evaluator, params)
    363         else:
--> 364             return Function.py__call__(self, evaluator, params)
    365
    366     def __repr__(self):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/_compatibility.py in <lambda>(*args, **kwargs)
    120     def __get__(self, obj, objtype):
    121         if obj is None:
--> 122             return lambda *args, **kwargs: self.func(*args, **kwargs)
    123         else:
    124             return lambda *args, **kwargs: self.func(obj, *args, **kwargs)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    558             return [iterable.Generator(evaluator, self, params)]
    559         else:
--> 560             return FunctionExecution(evaluator, self, params).get_return_types()
    561
    562     def __getattr__(self, name):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(execution, **kwargs)
     98             result = []
     99         else:
--> 100             result = func(execution, **kwargs)
    101         detector.pop_execution()
    102         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in get_return_types(self, check_yields)
    622                 debug.dbg('Return unreachable: %s', r)
    623             else:
--> 624                 types += self._evaluator.eval_element(r.children[1])
    625             if check is flow_analysis.REACHABLE:
    626                 debug.dbg('Return reachable: %s', r)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    167         debug.dbg('eval_element %s@%s', element, element.start_pos)
    168         if isinstance(element, (tree.Name, tree.Literal)) or tree.is_node(element, 'atom'):
--> 169             return self._eval_atom(element)
    170         elif isinstance(element, tree.Keyword):
    171             # For False/True/None

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in _eval_atom(self, atom)
    228                 # there the name cannot be used.
    229                 stmt = atom
--> 230             return self.find_types(scope, atom, stmt.start_pos, search_global=True)
    231         elif isinstance(atom, tree.Literal):
    232             return [compiled.create(self, atom.eval())]

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in find_types(self, scope, name_str, position, search_global, is_goto)
    118         if is_goto:
    119             return f.filter_name(scopes)
--> 120         return f.find(scopes, search_global)
    121
    122     @memoize_default(default=[], evaluator_is_first_arg=True)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in find(self, scopes, search_global)
     85         # TODO rename scopes to names_dicts
     86         names = self.filter_name(scopes)
---> 87         types = self._names_to_types(names, search_global)
     88
     89         if not names and not types \

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _names_to_types(self, names, search_global)
    231
    232         for name in names:
--> 233             new_types = _name_to_types(self._evaluator, name, self.scope)
    234             if isinstance(self.scope, (er.Class, er.Instance)) and not search_global:
    235                 types += self._resolve_descriptors(name, new_types)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _name_to_types(evaluator, name, scope)
    276         types += _eval_param(evaluator, typ, scope)
    277     elif typ.isinstance(tree.ExprStmt):
--> 278         types += _remove_statements(evaluator, typ, name)
    279     elif typ.isinstance(tree.WithStmt):
    280         types += evaluator.eval_element(typ.node_from_name(name))

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _remove_statements(evaluator, stmt, name)
    321         stmt = stmt.var
    322
--> 323     types += evaluator.eval_statement(stmt, seek_name=name)
    324
    325     if check_instance is not None:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(evaluator, stmt, *args, **kwargs)
     21             return []
     22         else:
---> 23             result = func(evaluator, stmt, *args, **kwargs)
     24             rec_detect.pop_stmt()
     25         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_statement(self, stmt, seek_name)
    133         """
    134         debug.dbg('eval_statement %s (%s)', stmt, seek_name)
--> 135         types = self.eval_element(stmt.get_rhs())
    136
    137         if seek_name:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    185                 if trailer == '**':  # has a power operation.
    186                     raise NotImplementedError
--> 187                 types = self.eval_trailer(types, trailer)
    188
    189             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_trailer(self, types, trailer)
    257                 new_types += self.find_types(typ, node)
    258             elif trailer_op == '(':
--> 259                 new_types += self.execute(typ, node, trailer)
    260             elif trailer_op == '[':
    261                 try:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in execute(self, obj, arguments, trailer)
    297             return []
    298         else:
--> 299             types = func(self, arguments)
    300             debug.dbg('execute result: %s in %s', types, obj)
    301             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    362             return self.var.py__call__(evaluator, params)
    363         else:
--> 364             return Function.py__call__(self, evaluator, params)
    365
    366     def __repr__(self):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/_compatibility.py in <lambda>(*args, **kwargs)
    120     def __get__(self, obj, objtype):
    121         if obj is None:
--> 122             return lambda *args, **kwargs: self.func(*args, **kwargs)
    123         else:
    124             return lambda *args, **kwargs: self.func(obj, *args, **kwargs)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    558             return [iterable.Generator(evaluator, self, params)]
    559         else:
--> 560             return FunctionExecution(evaluator, self, params).get_return_types()
    561
    562     def __getattr__(self, name):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(execution, **kwargs)
     98             result = []
     99         else:
--> 100             result = func(execution, **kwargs)
    101         detector.pop_execution()
    102         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in get_return_types(self, check_yields)
    622                 debug.dbg('Return unreachable: %s', r)
    623             else:
--> 624                 types += self._evaluator.eval_element(r.children[1])
    625             if check is flow_analysis.REACHABLE:
    626                 debug.dbg('Return reachable: %s', r)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    167         debug.dbg('eval_element %s@%s', element, element.start_pos)
    168         if isinstance(element, (tree.Name, tree.Literal)) or tree.is_node(element, 'atom'):
--> 169             return self._eval_atom(element)
    170         elif isinstance(element, tree.Keyword):
    171             # For False/True/None

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in _eval_atom(self, atom)
    228                 # there the name cannot be used.
    229                 stmt = atom
--> 230             return self.find_types(scope, atom, stmt.start_pos, search_global=True)
    231         elif isinstance(atom, tree.Literal):
    232             return [compiled.create(self, atom.eval())]

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in find_types(self, scope, name_str, position, search_global, is_goto)
    118         if is_goto:
    119             return f.filter_name(scopes)
--> 120         return f.find(scopes, search_global)
    121
    122     @memoize_default(default=[], evaluator_is_first_arg=True)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in find(self, scopes, search_global)
     85         # TODO rename scopes to names_dicts
     86         names = self.filter_name(scopes)
---> 87         types = self._names_to_types(names, search_global)
     88
     89         if not names and not types \

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _names_to_types(self, names, search_global)
    231
    232         for name in names:
--> 233             new_types = _name_to_types(self._evaluator, name, self.scope)
    234             if isinstance(self.scope, (er.Class, er.Instance)) and not search_global:
    235                 types += self._resolve_descriptors(name, new_types)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _name_to_types(evaluator, name, scope)
    276         types += _eval_param(evaluator, typ, scope)
    277     elif typ.isinstance(tree.ExprStmt):
--> 278         types += _remove_statements(evaluator, typ, name)
    279     elif typ.isinstance(tree.WithStmt):
    280         types += evaluator.eval_element(typ.node_from_name(name))

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _remove_statements(evaluator, stmt, name)
    321         stmt = stmt.var
    322
--> 323     types += evaluator.eval_statement(stmt, seek_name=name)
    324
    325     if check_instance is not None:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(evaluator, stmt, *args, **kwargs)
     21             return []
     22         else:
---> 23             result = func(evaluator, stmt, *args, **kwargs)
     24             rec_detect.pop_stmt()
     25         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_statement(self, stmt, seek_name)
    133         """
    134         debug.dbg('eval_statement %s (%s)', stmt, seek_name)
--> 135         types = self.eval_element(stmt.get_rhs())
    136
    137         if seek_name:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    185                 if trailer == '**':  # has a power operation.
    186                     raise NotImplementedError
--> 187                 types = self.eval_trailer(types, trailer)
    188
    189             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_trailer(self, types, trailer)
    257                 new_types += self.find_types(typ, node)
    258             elif trailer_op == '(':
--> 259                 new_types += self.execute(typ, node, trailer)
    260             elif trailer_op == '[':
    261                 try:

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in execute(self, obj, arguments, trailer)
    297             return []
    298         else:
--> 299             types = func(self, arguments)
    300             debug.dbg('execute result: %s in %s', types, obj)
    301             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    362             return self.var.py__call__(evaluator, params)
    363         else:
--> 364             return Function.py__call__(self, evaluator, params)
    365
    366     def __repr__(self):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/_compatibility.py in <lambda>(*args, **kwargs)
    120     def __get__(self, obj, objtype):
    121         if obj is None:
--> 122             return lambda *args, **kwargs: self.func(*args, **kwargs)
    123         else:
    124             return lambda *args, **kwargs: self.func(obj, *args, **kwargs)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in py__call__(self, evaluator, params)
    558             return [iterable.Generator(evaluator, self, params)]
    559         else:
--> 560             return FunctionExecution(evaluator, self, params).get_return_types()
    561
    562     def __getattr__(self, name):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/recursion.py in run(execution, **kwargs)
     98             result = []
     99         else:
--> 100             result = func(execution, **kwargs)
    101         detector.pop_execution()
    102         return result

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/representation.py in get_return_types(self, check_yields)
    622                 debug.dbg('Return unreachable: %s', r)
    623             else:
--> 624                 types += self._evaluator.eval_element(r.children[1])
    625             if check is flow_analysis.REACHABLE:
    626                 debug.dbg('Return reachable: %s', r)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    185                 if trailer == '**':  # has a power operation.
    186                     raise NotImplementedError
--> 187                 types = self.eval_trailer(types, trailer)
    188
    189             return types

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_trailer(self, types, trailer)
    265                                   % typ)
    266                 else:
--> 267                     new_types += get(self, node)
    268         return new_types
    269

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/iterable.py in get_index_types(self, evaluator, index)
    227                     and isinstance(index.obj, (int, str, unicode)):
    228                 with common.ignored(KeyError, IndexError, TypeError):
--> 229                     types += self.get_exact_index_types(index.obj)
    230                     lookup_done = True
    231

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/iterable.py in get_exact_index_types(self, mixed_index)
    253
    254         # Can raise an IndexError
--> 255         return self._evaluator.eval_element(self._items()[mixed_index])
    256
    257     def iter_content(self):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in eval_element(self, element)
    167         debug.dbg('eval_element %s@%s', element, element.start_pos)
    168         if isinstance(element, (tree.Name, tree.Literal)) or tree.is_node(element, 'atom'):
--> 169             return self._eval_atom(element)
    170         elif isinstance(element, tree.Keyword):
    171             # For False/True/None

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in _eval_atom(self, atom)
    228                 # there the name cannot be used.
    229                 stmt = atom
--> 230             return self.find_types(scope, atom, stmt.start_pos, search_global=True)
    231         elif isinstance(atom, tree.Literal):
    232             return [compiled.create(self, atom.eval())]

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/__init__.py in find_types(self, scope, name_str, position, search_global, is_goto)
    118         if is_goto:
    119             return f.filter_name(scopes)
--> 120         return f.find(scopes, search_global)
    121
    122     @memoize_default(default=[], evaluator_is_first_arg=True)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/debug.py in wrapper(*args, **kwargs)
     50         _debug_indent += 1
     51         try:
---> 52             result = func(*args, **kwargs)
     53         finally:
     54             _debug_indent -= 1

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in find(self, scopes, search_global)
     85         # TODO rename scopes to names_dicts
     86         names = self.filter_name(scopes)
---> 87         types = self._names_to_types(names, search_global)
     88
     89         if not names and not types \

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _names_to_types(self, names, search_global)
    231
    232         for name in names:
--> 233             new_types = _name_to_types(self._evaluator, name, self.scope)
    234             if isinstance(self.scope, (er.Class, er.Instance)) and not search_global:
    235                 types += self._resolve_descriptors(name, new_types)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/cache.py in wrapper(obj, *args, **kwargs)
     39                 if default is not NO_DEFAULT:
     40                     memo[key] = default
---> 41                 rv = function(obj, *args, **kwargs)
     42                 if inspect.isgenerator(rv):
     43                     rv = list(rv)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/finder.py in _name_to_types(evaluator, name, scope)
    267     if typ.isinstance(tree.ForStmt):
    268         for_types = evaluator.eval_element(typ.children[3])
--> 269         for_types = iterable.get_iterator_types(for_types)
    270         types += check_tuple_assignments(for_types, name)
    271     elif typ.isinstance(tree.CompFor):

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/iterable.py in get_iterator_types(inputs)
    416             # TODO this is not correct, __iter__ can return arbitrary input!
    417             # Is a generator.
--> 418             result += it.iter_content()
    419     return result
    420

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/iterable.py in iter_content(self)
    573                     items += get_iterator_types([typ])
    574
--> 575         module = self.var_args.get_parent_until()
    576         is_list = str(self.instance.name) == 'list'
    577         items += _check_array_additions(self._evaluator, self.instance, module, is_list)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/evaluate/param.py in get_parent_until(self, *args, **kwargs)
     54                 return None
     55             else:
---> 56                 return element.get_parent_until(*args, **kwargs)
     57         else:
     58             return self.trailer.get_parent_until(*args, **kwargs)

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/_compatibility.py in <lambda>(*args, **kwargs)
    122             return lambda *args, **kwargs: self.func(*args, **kwargs)
    123         else:
--> 124             return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
    125
    126

/home/aamalyshev/.pyenv/versions/multiscanner/lib/python3.4/site-packages/jedi/parser/tree.py in get_parent_until(self, classes, reverse, include_current)
    121             classes = (classes,)
    122         scope = self if include_current else self.parent
--> 123         while scope.parent is not None:
    124             # TODO why if classes?
    125             if classes and reverse != scope.isinstance(*classes):

AttributeError: 'ListComprehension' object has no attribute 'parent'

In [6]:
Do you really want to exit ([y]/n)? y
bug

All 12 comments

Code :

#! /usr/bin/python3.4

import requests
import bs4

res = requests.get('http://google.com/search?q={}'.format(sys.argv[1:]))
res.<error comes up here> 

Error :

http://i.imgur.com/gPeRXst.png

This occurs with the above code after typing res.,

from here : https://github.com/syl20bnr/spacemacs/issues/1973

Here's a reduced test case:

generated = [i for i in [1, 2]]

r = generated[0]
#? ['imag']
r.imag

r = generated.pop()
#? ['imag']
r.imag

The first test passes, the second one does not.

@patrys Thanks a lot, that really helps!

this issue still not fixed...

stderr jediProxy
Error (stderr) ne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 269, in _name_to_types
    for_types = iterable.get_iterator_types(for_types)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\iterable.py", line 418, in get_iterator_types
    result += it.iter_content()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\iterable.py", line 575, in iter_content
    module = self.var_args.get_parent_until()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\param.py", line 56, in get_parent_until
    return element.get_parent_until(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\parser\tree.py", line 123, in get_parent_until
    while scope.parent is not None:
AttributeError: 'ListComprehension' object has no attribute 'parent'
stderr jediProxy
Error (stderr) Traceback (most recent call last):
  File "completion.py", line 313, in watch
    self._process_request(self._input.readline())
  File "completion.py", line 304, in _process_request
    request.get('prefix', '')))
  File "completion.py", line 136, in _serialize_completions
    completions = script.completions()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\api\__init__.py", line 192, in completions
    completion_names = get_completions(user_stmt, b)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\api\__init__.py", line 178, in get_completions
    completion_names += self._simple_complete(path, dot, like)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\api\__init__.py", line 254, in _simple_complete
    scopes = list(self._prepare_goto(path, True))
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\api\__init__.py", line 298, in _prepare_goto
    scopes = self._evaluator.eval_element(eval_stmt)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 299, in execute
    types = func(self, arguments)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 299, in execute
    types = func(self, arguments)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 299, in execute
    types = func(self, arguments)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 299, in execute
    types = func(self, arguments)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 299, in execute
    types = func(self, arguments)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 267, in eval_trailer
    new_types += get(self, node)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\iterable.py", line 229, in get_index_types
    types += self.get_exact_index_types(index.obj)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\iterable.py", line 255, in get_exact_index_types
    return self._evaluator.eval_element(self._items()[mixed_index])
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\finder.py", line 269, in _name_to_types
    for_types = iterable.get_iterator_types(for_types)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\iterable.py", line 418, in get_iterator_types
    result += it.iter_content()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\iterable.py", line 575, in iter_content
    module = self.var_args.get_parent_until()
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\evaluate\param.py", line 56, in get_parent_until
    return element.get_parent_until(*args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "d:\.vscode\extensions\donjayamanne.python-0.3.4\pythonFiles\jedi\parser\tree.py", line 123, in get_parent_until
    while scope.parent is not None:
AttributeError: 'ListComprehension' object has no attribute 'parent'

@abc100m That's why it's still open and labelled as bug.

I am still encountering this error:

Traceback (most recent call last):
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/bottle/bottle.py", line 862, in _handle
    return route.call(**args)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/bottle/bottle.py", line 1732, in wrapper
    rv = callback(*a, **ka)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/jedihttp/hmac_plugin.py", line 58, in wrapper
    body = callback( *args, **kwargs )
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/jedihttp/handlers.py", line 63, in completions
    } for completion in script.completions() ]
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/api/__init__.py", line 188, in completions
    completion_names = get_completions(user_stmt, b)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/api/__init__.py", line 174, in get_completions
    completion_names += self._simple_complete(path, dot, like)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/api/__init__.py", line 250, in _simple_complete
    scopes = list(self._prepare_goto(path, True))
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/api/__init__.py", line 294, in _prepare_goto
    scopes = self._evaluator.eval_element(eval_stmt)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 620, in get_return_types
    check = flow_analysis.break_check(self._evaluator, self, r)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/flow_analysis.py", line 48, in break_check
    return _break_check(evaluator, stmt, base_scope, element_scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/flow_analysis.py", line 65, in _break_check
    reachable = _check_if(evaluator, node)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/flow_analysis.py", line 79, in _check_if
    types = evaluator.eval_element(node)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 86, in find
    names = self.filter_name(scopes)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 177, in filter_name
    names = self.names_dict_lookup(names_dict, position)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 159, in names_dict_lookup
    stmt, origin_scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/flow_analysis.py", line 48, in break_check
    return _break_check(evaluator, stmt, base_scope, element_scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/flow_analysis.py", line 59, in _break_check
    reachable = _check_if(evaluator, check_node)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/flow_analysis.py", line 79, in _check_if
    types = evaluator.eval_element(node)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 289, in execute
    return stdlib.execute(self, obj, arguments)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/stdlib.py", line 42, in execute
    return _implemented[module_name][obj_name](evaluator, obj, params)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/stdlib.py", line 81, in wrapper
    lst = list(arguments.eval_argument_clinic(clinic_args))
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/param.py", line 135, in eval_argument_clinic
    for el in va_values))
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/param.py", line 135, in <genexpr>
    for el in va_values))
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 276, in _name_to_types
    types += _eval_param(evaluator, typ, scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 364, in _eval_param
    return res_new + param.eval(evaluator)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/param.py", line 174, in eval
    types += evaluator.eval_element(v)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 183, in eval_element
    types = self._eval_atom(element.children[0])
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 278, in _name_to_types
    types += _remove_statements(evaluator, typ, name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 323, in _remove_statements
    types += evaluator.eval_statement(stmt, seek_name=name)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 23, in run
    result = func(evaluator, stmt, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 135, in eval_statement
    types = self.eval_element(stmt.get_rhs())
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 259, in eval_trailer
    new_types += self.execute(typ, node, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 299, in execute
    types = func(self, arguments)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 364, in py__call__
    return Function.py__call__(self, evaluator, params)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/_compatibility.py", line 122, in <lambda>
    return lambda *args, **kwargs: self.func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 560, in py__call__
    return FunctionExecution(evaluator, self, params).get_return_types()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/recursion.py", line 100, in run
    result = func(execution, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/representation.py", line 624, in get_return_types
    types += self._evaluator.eval_element(r.children[1])
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 187, in eval_element
    types = self.eval_trailer(types, trailer)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 267, in eval_trailer
    new_types += get(self, node)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/iterable.py", line 229, in get_index_types
    types += self.get_exact_index_types(index.obj)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/iterable.py", line 255, in get_exact_index_types
    return self._evaluator.eval_element(self._items()[mixed_index])
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 169, in eval_element
    return self._eval_atom(element)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 230, in _eval_atom
    return self.find_types(scope, atom, stmt.start_pos, search_global=True)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/__init__.py", line 120, in find_types
    return f.find(scopes, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/debug.py", line 52, in wrapper
    result = func(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 87, in find
    types = self._names_to_types(names, search_global)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 233, in _names_to_types
    new_types = _name_to_types(self._evaluator, name, self.scope)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/cache.py", line 41, in wrapper
    rv = function(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/finder.py", line 269, in _name_to_types
    for_types = iterable.get_iterator_types(for_types)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/iterable.py", line 418, in get_iterator_types
    result += it.iter_content()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/iterable.py", line 575, in iter_content
    module = self.var_args.get_parent_until()
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/evaluate/param.py", line 56, in get_parent_until
    return element.get_parent_until(*args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/_compatibility.py", line 124, in <lambda>
    return lambda *args, **kwargs: self.func(obj, *args, **kwargs)
  File "/usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/vendor/jedi/jedi/parser/tree.py", line 123, in get_parent_until
    while scope.parent is not None:
AttributeError: 'ListComprehension' object has no attribute 'parent'

And sometimes this one:

AttributeError: 'MergedNamesDict' object has no attribute 'get'

@foodtooth: Use the latest dev branch and try again.

I reinstalled vim-youcompleteme-git from AUR and reinstalled jedi using sudo pip2 install -e git://github.com/davidhalter/jedi.git#egg=jedi from the manual. pip2 list | grep jedi shows me

jedi (0.9.0, /home/mike/Downloads/src/jedi)

And YCMDebugInfo shows me

-- Server has Clang support compiled in: True
-- Clang version: clang version 3.8.0 (tags/RELEASE_380/final)
-- Python completer debug information:
-- JediHTTP running at: http://127.0.0.1:54477
-- JediHTTP process ID: 28801
-- JediHTTP executable: /usr/share/vim/vimfiles/third_party/ycmd/third_party/JediHTTP/jedihttp.py

Does it mean I'm using the latest dev branch? How can I know YCM is using the latest jedi? (I am still getting errors like before)

@proofit404 Can you retry? It works for me on the latest dev branch. It might be working for you, too!

Seems to be working, let me know if it's not and I'll reopen.

Sorry for late response. I can confirm that this bug was fixed in jedi dev branch. Tested against last requests.

I can confirm that this bug was fixed in jedi 0.10.2

Was this page helpful?
0 / 5 - 0 ratings