forked from VimPlug/jedi
Cleanup StubParserTreeFilter.values
This commit is contained in:
@@ -9,7 +9,7 @@ from jedi.parser_utils import get_call_signature_for_any
|
|||||||
from jedi.evaluate.base_context import ContextSet, iterator_to_context_set, \
|
from jedi.evaluate.base_context import ContextSet, iterator_to_context_set, \
|
||||||
ContextWrapper
|
ContextWrapper
|
||||||
from jedi.evaluate.filters import AbstractTreeName, ParserTreeFilter, \
|
from jedi.evaluate.filters import AbstractTreeName, ParserTreeFilter, \
|
||||||
TreeNameDefinition, NameWrapper, MergedFilter
|
TreeNameDefinition, NameWrapper
|
||||||
from jedi.evaluate.context import ModuleContext, FunctionContext, \
|
from jedi.evaluate.context import ModuleContext, FunctionContext, \
|
||||||
ClassContext
|
ClassContext
|
||||||
from jedi.evaluate.context.typing import TypingModuleFilterWrapper, \
|
from jedi.evaluate.context.typing import TypingModuleFilterWrapper, \
|
||||||
@@ -255,24 +255,15 @@ class StubParserTreeFilter(ParserTreeFilter):
|
|||||||
used_stub_names = set()
|
used_stub_names = set()
|
||||||
result_names = []
|
result_names = []
|
||||||
for key_name, names in self._used_names.items():
|
for key_name, names in self._used_names.items():
|
||||||
result_names += self._convert_names(self._filter(names))
|
found_names = self._convert_names(self._filter(names))
|
||||||
used_stub_names.add(key_name)
|
result_names += found_names
|
||||||
|
if found_names:
|
||||||
|
used_stub_names.add(key_name)
|
||||||
|
|
||||||
non_stub_filters = []
|
for non_stub_filter in self._non_stub_filters:
|
||||||
for f in self._non_stub_filters:
|
for name in non_stub_filter.values():
|
||||||
# TODO this is really ugly. accessing some random _used_names and
|
if name.string_name not in used_stub_names:
|
||||||
# _filters. Please change.
|
result_names.append(name)
|
||||||
if isinstance(f, MergedFilter):
|
|
||||||
non_stub_filters += f._filters
|
|
||||||
else:
|
|
||||||
non_stub_filters.append(f)
|
|
||||||
|
|
||||||
for non_stub_filter in non_stub_filters:
|
|
||||||
if not hasattr(non_stub_filter, '_used_names'):
|
|
||||||
continue
|
|
||||||
for key_name in non_stub_filter._used_names:
|
|
||||||
if key_name not in used_stub_names:
|
|
||||||
result_names += non_stub_filter.get(key_name)
|
|
||||||
return result_names
|
return result_names
|
||||||
|
|
||||||
def _get_non_stub_names(self, string_name):
|
def _get_non_stub_names(self, string_name):
|
||||||
|
|||||||
Reference in New Issue
Block a user