From e61949da66b8adbef8346cdcc804d6212c716dd4 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sat, 15 Jun 2019 01:56:44 +0200 Subject: [PATCH] Fix some collections.deque issues --- jedi/api/classes.py | 1 + jedi/evaluate/gradual/conversion.py | 1 - jedi/evaluate/gradual/typeshed.py | 2 ++ test/test_evaluate/test_gradual/test_stubs.py | 7 +------ 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 172038d3..00dbddcc 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -49,6 +49,7 @@ class BaseDefinition(object): 'posix': 'os', '_io': 'io', '_functools': 'functools', + '_collections': 'collections', '_sqlite3': 'sqlite3', '__builtin__': 'builtins', } diff --git a/jedi/evaluate/gradual/conversion.py b/jedi/evaluate/gradual/conversion.py index e89ec852..85131d78 100644 --- a/jedi/evaluate/gradual/conversion.py +++ b/jedi/evaluate/gradual/conversion.py @@ -113,7 +113,6 @@ def _python_to_stub_names(names, fallback_to_python=False): if fallback_to_python or new_name.is_stub(): yield new_name continue - print(name.goto()) name_list = name.get_qualified_names() stubs = NO_CONTEXTS diff --git a/jedi/evaluate/gradual/typeshed.py b/jedi/evaluate/gradual/typeshed.py index 097b739b..22b855ca 100644 --- a/jedi/evaluate/gradual/typeshed.py +++ b/jedi/evaluate/gradual/typeshed.py @@ -227,6 +227,8 @@ def _load_from_typeshed(evaluator, python_context_set, parent_module_context, im map_ = None if len(import_names) == 1: map_ = _cache_stub_file_map(evaluator.grammar.version_info) + if import_name == '_collections': + import_name = 'collections' elif isinstance(parent_module_context, StubModuleContext): if not parent_module_context.is_package: # Only if it's a package (= a folder) something can be diff --git a/test/test_evaluate/test_gradual/test_stubs.py b/test/test_evaluate/test_gradual/test_stubs.py index 4b7fddb5..35da0add 100644 --- a/test/test_evaluate/test_gradual/test_stubs.py +++ b/test/test_evaluate/test_gradual/test_stubs.py @@ -24,8 +24,7 @@ from test.helpers import root_dir ['from collections import Counter; Counter()', 'collections.Counter', True, True, {}], ['from collections import Counter; Counter.most_common', 'collections.Counter.most_common', True, True, {}], - #['from collections import deque', - #('_collections.deque', 'collections.deque'), True, False, {}], + ['from collections import deque', 'collections.deque', True, False, {}], ['from keyword import kwlist; kwlist', 'typing.Sequence', True, True, {'full_name': 'keyword.kwlist'}], @@ -43,10 +42,6 @@ def test_infer_and_goto(Script, code, full_name, has_stub, has_python, way, s = Script(code, _project=project) prefer_stubs = kwargs['prefer_stubs'] only_stubs = kwargs['only_stubs'] - if isinstance(full_name, tuple): - # Small hack to make it possible to test some special cases. - should_land_on_stub = has_stub and (only_stubs or prefer_stubs) - full_name = full_name[should_land_on_stub] if type_ == 'goto': full_name = goto_changes.get('full_name', full_name)