Remove force_unicode

This commit is contained in:
Dave Halter
2020-07-02 01:47:21 +02:00
parent ebfc330e86
commit 49e4b1a0f8
19 changed files with 36 additions and 100 deletions
+1 -2
View File
@@ -3,7 +3,6 @@ Module for statical analysis.
"""
from parso.python import tree
from jedi._compatibility import force_unicode
from jedi import debug
from jedi.inference.helpers import is_string
@@ -193,7 +192,7 @@ def _check_for_exception_catch(node_context, jedi_name, exception, payload=None)
key, lazy_value = unpacked_args[1]
names = list(lazy_value.infer())
assert len(names) == 1 and is_string(names[0])
assert force_unicode(names[0].get_safe_value()) == payload[1].value
assert names[0].get_safe_value() == payload[1].value
# Check objects
key, lazy_value = unpacked_args[0]
+6 -11
View File
@@ -8,7 +8,7 @@ import warnings
import re
import builtins
from jedi._compatibility import unicode, is_py3, py_version, force_unicode
from jedi._compatibility import unicode, is_py3, py_version
from jedi.inference.compiled.getattr_static import getattr_static
ALLOWED_GETITEM_TYPES = (str, list, tuple, unicode, bytes, bytearray, dict)
@@ -159,10 +159,6 @@ def create_access_path(inference_state, obj):
return AccessPath(access.get_access_path_tuples())
def _force_unicode_decorator(func):
return lambda *args, **kwargs: force_unicode(func(*args, **kwargs))
def get_api_type(obj):
if inspect.isclass(obj):
return u'class'
@@ -199,7 +195,7 @@ class DirectObjectAccess(object):
return None
def py__doc__(self):
return force_unicode(inspect.getdoc(self._obj)) or u''
return inspect.getdoc(self._obj) or ''
def py__name__(self):
if not _is_class_instance(self._obj) or \
@@ -214,7 +210,7 @@ class DirectObjectAccess(object):
return None
try:
return force_unicode(cls.__name__)
return cls.__name__
except AttributeError:
return None
@@ -264,7 +260,6 @@ class DirectObjectAccess(object):
return None
return paths
@_force_unicode_decorator
@shorten_repr
def get_repr(self):
if inspect.ismodule(self._obj):
@@ -308,10 +303,10 @@ class DirectObjectAccess(object):
name = try_to_get_name(type(self._obj))
if name is None:
return ()
return tuple(force_unicode(n) for n in name.split('.'))
return tuple(name.split('.'))
def dir(self):
return list(map(force_unicode, dir(self._obj)))
return dir(self._obj)
def has_iter(self):
try:
@@ -539,7 +534,7 @@ class DirectObjectAccess(object):
objects of an objects
"""
tuples = dict(
(force_unicode(name), self.is_allowed_getattr(name))
(name, self.is_allowed_getattr(name))
for name in self.dir()
)
return self.needs_type_completions(), tuples
@@ -18,7 +18,7 @@ import weakref
from functools import partial
from threading import Thread
from jedi._compatibility import is_py3, force_unicode, \
from jedi._compatibility import is_py3, \
pickle_dump, pickle_load, GeneralizedPopen
from jedi import debug
from jedi.cache import memoize_method
@@ -236,10 +236,6 @@ class CompiledSubprocess(object):
if self.is_crashed:
raise InternalError("The subprocess %s has crashed." % self._executable)
if not is_py3:
# Python 2 compatibility
kwargs = {force_unicode(key): value for key, value in kwargs.items()}
data = inference_state_id, function, args, kwargs
try:
pickle_dump(data, self._get_process().stdin, PICKLE_PROTOCOL)
@@ -389,9 +385,8 @@ class AccessHandle(object):
if name in ('id', 'access') or name.startswith('_'):
raise AttributeError("Something went wrong with unpickling")
# if not is_py3: print >> sys.stderr, name
# print('getattr', name, file=sys.stderr)
return partial(self._workaround, force_unicode(name))
return partial(self._workaround, name)
def _workaround(self, name, *args, **kwargs):
"""
@@ -4,7 +4,7 @@ import os
import re
import inspect
from jedi._compatibility import find_module, cast_path, force_unicode, \
from jedi._compatibility import find_module, cast_path, \
all_suffixes
from jedi.inference.compiled import access
from jedi import debug
@@ -44,7 +44,7 @@ def get_module_info(inference_state, sys_path=None, full_name=None, **kwargs):
def get_builtin_module_names(inference_state):
return list(map(force_unicode, sys.builtin_module_names))
return sys.builtin_module_names
def _test_raise_error(inference_state, exception_type):
+2 -6
View File
@@ -7,7 +7,7 @@ from inspect import Parameter
from jedi import debug
from jedi.inference.utils import to_list
from jedi._compatibility import force_unicode, cast_path
from jedi._compatibility import cast_path
from jedi.cache import memoize_method
from jedi.inference.filters import AbstractFilter
from jedi.inference.names import AbstractNameDefinition, ValueNameMixin, \
@@ -30,7 +30,7 @@ class CheckAttribute(object):
def __call__(self, func):
self.func = func
if self.check_name is None:
self.check_name = force_unicode(func.__name__[2:])
self.check_name = func.__name__[2:]
return self
def __get__(self, instance, owner):
@@ -457,9 +457,6 @@ class CompiledValueFilter(AbstractFilter):
"""
To remove quite a few access calls we introduced the callback here.
"""
# Always use unicode objects in Python 2 from here.
name = force_unicode(name)
if self._inference_state.allow_descriptor_getattr:
pass
@@ -535,7 +532,6 @@ def _parse_function_doc(doc):
TODO docstrings like utime(path, (atime, mtime)) and a(b [, b]) -> None
TODO docstrings like 'tuple of integers'
"""
doc = force_unicode(doc)
# parse round parentheses: def func(a, (b,c))
try:
count = 0
+1 -2
View File
@@ -10,7 +10,6 @@ from inspect import Parameter
from parso import ParserSyntaxError, parse
from jedi._compatibility import force_unicode
from jedi.inference.cache import inference_state_method_cache
from jedi.inference.base_value import ValueSet, NO_VALUES
from jedi.inference.gradual.base import DefineGenericBaseClass, GenericClass
@@ -63,7 +62,7 @@ def _infer_annotation_string(context, string, index=None):
def _get_forward_reference_node(context, string):
try:
new_node = context.inference_state.grammar.parse(
force_unicode(string),
string,
start_symbol='eval_input',
error_recovery=False
)
+1 -4
View File
@@ -1,4 +1,4 @@
from jedi._compatibility import unicode, force_unicode
from jedi._compatibility import unicode
from jedi import debug
from jedi.inference.base_value import ValueSet, NO_VALUES, ValueWrapper
from jedi.inference.gradual.base import BaseTypingValue
@@ -40,9 +40,6 @@ class TypeVarClass(BaseTypingValue):
return None
else:
safe_value = method(default=None)
if self.inference_state.environment.version_info.major == 2:
if isinstance(safe_value, bytes):
return force_unicode(safe_value)
if isinstance(safe_value, (str, unicode)):
return safe_value
return None
+3 -3
View File
@@ -13,7 +13,7 @@ import os
from parso.python import tree
from parso.tree import search_ancestor
from jedi._compatibility import ImplicitNSInfo, force_unicode
from jedi._compatibility import ImplicitNSInfo
from jedi import debug
from jedi import settings
from jedi.file_io import FolderIO
@@ -208,7 +208,7 @@ class Importer(object):
# somewhere out of the filesystem.
self._infer_possible = False
else:
self._fixed_sys_path = [force_unicode(base_directory)]
self._fixed_sys_path = [base_directory]
if base_import_path is None:
if import_path:
@@ -329,7 +329,7 @@ def import_module_by_names(inference_state, import_names, sys_path=None,
sys_path = inference_state.get_sys_path()
str_import_names = tuple(
force_unicode(i.value if isinstance(i, tree.Name) else i)
i.value if isinstance(i, tree.Name) else i
for i in import_names
)
value_set = [None]
+3 -3
View File
@@ -5,7 +5,7 @@ import copy
from parso.python import tree
from jedi._compatibility import force_unicode, unicode
from jedi._compatibility import unicode
from jedi import debug
from jedi import parser_utils
from jedi.inference.base_value import ValueSet, NO_VALUES, ContextualizedNode, \
@@ -567,7 +567,7 @@ def _is_tuple(value):
def _bool_to_value(inference_state, bool_):
return compiled.builtin_from_name(inference_state, force_unicode(str(bool_)))
return compiled.builtin_from_name(inference_state, str(bool_))
def _get_tuple_ints(value):
@@ -593,7 +593,7 @@ def _infer_comparison_part(inference_state, context, left, operator, right):
if isinstance(operator, unicode):
str_operator = operator
else:
str_operator = force_unicode(str(operator.value))
str_operator = str(operator.value)
if str_operator == '*':
# for iterables, ignore * operations
+1 -2
View File
@@ -1,7 +1,7 @@
import os
import re
from jedi._compatibility import unicode, force_unicode, all_suffixes
from jedi._compatibility import unicode, all_suffixes
from jedi.inference.cache import inference_state_method_cache
from jedi.inference.base_value import ContextualizedNode
from jedi.inference.helpers import is_string, get_str_or_none
@@ -25,7 +25,6 @@ def _abs_path(module_context, path):
return None
base_dir = os.path.dirname(module_path)
path = force_unicode(path)
return os.path.abspath(os.path.join(base_dir, path))
+1 -16
View File
@@ -4,7 +4,7 @@ iterators in general.
"""
import sys
from jedi._compatibility import force_unicode, is_py3
from jedi._compatibility import is_py3
from jedi.inference import compiled
from jedi.inference import analysis
from jedi.inference.lazy_value import LazyKnownValue, LazyKnownValues, \
@@ -532,21 +532,6 @@ class FakeDict(_DictMixin, Sequence, _DictKeyMixin):
yield LazyKnownValue(compiled.create_simple_object(self.inference_state, key))
def py__simple_getitem__(self, index):
if is_py3 and self.inference_state.environment.version_info.major == 2:
# In Python 2 bytes and unicode compare.
if isinstance(index, bytes):
index_unicode = force_unicode(index)
try:
return self._dct[index_unicode].infer()
except KeyError:
pass
elif isinstance(index, str):
index_bytes = index.encode('utf-8')
try:
return self._dct[index_bytes].infer()
except KeyError:
pass
with reraise_getitem_errors(KeyError, TypeError):
lazy_value = self._dct[index]
return lazy_value.infer()