From a7168db1ea93bbcaa277da6facb6621924b16d52 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 26 Dec 2017 14:13:56 +0100 Subject: [PATCH] Remove unused keyword code --- jedi/api/completion.py | 2 +- jedi/api/keywords.py | 60 ------------------------------------------ 2 files changed, 1 insertion(+), 61 deletions(-) diff --git a/jedi/api/completion.py b/jedi/api/completion.py index 559a4d3f..61a5446e 100644 --- a/jedi/api/completion.py +++ b/jedi/api/completion.py @@ -208,7 +208,7 @@ class Completion: def _get_keyword_completion_names(self, keywords_): for k in keywords_: - yield keywords.keyword(self._evaluator, k).name + yield keywords.KeywordName(self._evaluator, k) def _global_completions(self): context = get_user_scope(self._module_context, self._position) diff --git a/jedi/api/keywords.py b/jedi/api/keywords.py index c217641a..2991a0f8 100644 --- a/jedi/api/keywords.py +++ b/jedi/api/keywords.py @@ -1,10 +1,7 @@ import pydoc -import keyword -from jedi._compatibility import is_py3, is_py35 from jedi.evaluate.utils import ignored from jedi.evaluate.filters import AbstractNameDefinition -from parso.python.tree import Leaf try: from pydoc_data import topics as pydoc_topics @@ -17,61 +14,11 @@ except ImportError: # pydoc_data module in its file python3x.zip. pydoc_topics = None -if is_py3: - if is_py35: - # in python 3.5 async and await are not proper keywords, but for - # completion pursposes should as as though they are - keys = keyword.kwlist + ["async", "await"] - else: - keys = keyword.kwlist -else: - keys = keyword.kwlist + ['None', 'False', 'True'] - - -def has_inappropriate_leaf_keyword(pos, module): - relevant_errors = filter( - lambda error: error.first_pos[0] == pos[0], - module.error_statement_stacks) - - for error in relevant_errors: - if error.next_token in keys: - return True - - return False - - -def completion_names(evaluator, stmt, pos, module): - keyword_list = all_keywords(evaluator) - - if not isinstance(stmt, Leaf) or has_inappropriate_leaf_keyword(pos, module): - keyword_list = filter( - lambda keyword: not keyword.only_valid_as_leaf, - keyword_list - ) - return [keyword.name for keyword in keyword_list] - - -def all_keywords(evaluator, pos=(0, 0)): - return set([Keyword(evaluator, k, pos) for k in keys]) - - -def keyword(evaluator, string, pos=(0, 0)): - if string in keys: - return Keyword(evaluator, string, pos) - else: - return None - def get_operator(evaluator, string, pos): return Keyword(evaluator, string, pos) -keywords_only_valid_as_leaf = ( - 'continue', - 'break', -) - - class KeywordName(AbstractNameDefinition): api_type = u'keyword' @@ -80,9 +27,6 @@ class KeywordName(AbstractNameDefinition): self.string_name = name self.parent_context = evaluator.builtins_module - def eval(self): - return set() - def infer(self): return [Keyword(self.evaluator, self.string_name, (0, 0))] @@ -95,10 +39,6 @@ class Keyword(object): self.start_pos = pos self.parent = evaluator.builtins_module - @property - def only_valid_as_leaf(self): - return self.name.value in keywords_only_valid_as_leaf - @property def names(self): """ For a `parsing.Name` like comparision """