diff --git a/jedi/_compatibility.py b/jedi/_compatibility.py index 234e00ef..64417b7e 100644 --- a/jedi/_compatibility.py +++ b/jedi/_compatibility.py @@ -18,7 +18,6 @@ except ImportError: is_py3 = sys.version_info[0] >= 3 is_py33 = is_py3 and sys.version_info[1] >= 3 is_py34 = is_py3 and sys.version_info[1] >= 4 -is_py35 = is_py3 and sys.version_info[1] >= 5 is_py26 = not is_py3 and sys.version_info[1] < 7 py_version = int(str(sys.version_info[0]) + str(sys.version_info[1])) diff --git a/jedi/evaluate/compiled/fake.py b/jedi/evaluate/compiled/fake.py index 5b1fa3a2..ac43ea28 100644 --- a/jedi/evaluate/compiled/fake.py +++ b/jedi/evaluate/compiled/fake.py @@ -7,7 +7,7 @@ mixing in Python code, the autocompletion should work much better for builtins. import os from itertools import chain -from jedi._compatibility import is_py3, unicode +from jedi._compatibility import unicode fake_modules = {} diff --git a/jedi/evaluate/compiled/subprocess/__init__.py b/jedi/evaluate/compiled/subprocess/__init__.py index db791198..ec6802de 100644 --- a/jedi/evaluate/compiled/subprocess/__init__.py +++ b/jedi/evaluate/compiled/subprocess/__init__.py @@ -300,8 +300,8 @@ class AccessHandle(object): @memoize_method def _cached_results(self, name, *args, **kwargs): - if type(self._subprocess) == EvaluatorSubprocess: - print(name, args, kwargs, - self._subprocess.get_compiled_method_return(self.id, name, *args, **kwargs) - ) + #if type(self._subprocess) == EvaluatorSubprocess: + #print(name, args, kwargs, + #self._subprocess.get_compiled_method_return(self.id, name, *args, **kwargs) + #) return self._subprocess.get_compiled_method_return(self.id, name, *args, **kwargs) diff --git a/jedi/evaluate/context/instance.py b/jedi/evaluate/context/instance.py index ebb004e6..f603ac90 100644 --- a/jedi/evaluate/context/instance.py +++ b/jedi/evaluate/context/instance.py @@ -1,6 +1,5 @@ from abc import abstractproperty -from jedi._compatibility import is_py3 from jedi import debug from jedi.evaluate import compiled from jedi.evaluate import filters @@ -136,7 +135,10 @@ class AbstractInstanceContext(Context): for generator in self.execute_function_slots(iter_slot_names): if isinstance(generator, AbstractInstanceContext): # `__next__` logic. - name = '__next__' if is_py3 else 'next' + if self.evaluator.environment.version_info.major == 2: + name = 'next' + else: + name = '__next__' iter_slot_names = generator.get_function_slot_names(name) if iter_slot_names: yield LazyKnownContexts( diff --git a/jedi/evaluate/filters.py b/jedi/evaluate/filters.py index 46816f9e..b980d46e 100644 --- a/jedi/evaluate/filters.py +++ b/jedi/evaluate/filters.py @@ -6,7 +6,6 @@ from abc import abstractmethod from parso.tree import search_ancestor -from jedi._compatibility import is_py3 from jedi.evaluate import flow_analysis from jedi.evaluate.base_context import ContextSet, Context from jedi.parser_utils import get_parent_scope diff --git a/jedi/parser_utils.py b/jedi/parser_utils.py index 59c6408e..6991dfa6 100644 --- a/jedi/parser_utils.py +++ b/jedi/parser_utils.py @@ -1,7 +1,7 @@ import textwrap from inspect import cleandoc -from jedi._compatibility import literal_eval, is_py3 +from jedi._compatibility import literal_eval, force_unicode from parso.python import tree _EXECUTE_NODES = set([ @@ -112,10 +112,7 @@ def clean_scope_docstring(scope_node): cleaned = cleandoc(safe_literal_eval(node.value)) # Since we want the docstr output to be always unicode, just # force it. - if is_py3 or isinstance(cleaned, unicode): - return cleaned - else: - return unicode(cleaned, 'UTF-8', 'replace') + return force_unicode(cleaned) return ''