diff --git a/jedi/evaluate/context/function.py b/jedi/evaluate/context/function.py index e06676de..ce740bf8 100644 --- a/jedi/evaluate/context/function.py +++ b/jedi/evaluate/context/function.py @@ -146,7 +146,7 @@ class FunctionExecutionContext(TreeContext): try: children = r.children except AttributeError: - ctx = compiled.builtin_from_name(self.evaluator, 'None') + ctx = compiled.builtin_from_name(self.evaluator, u'None') context_set |= ContextSet(ctx) else: context_set |= self.eval_node(children[1]) @@ -158,7 +158,7 @@ class FunctionExecutionContext(TreeContext): def _eval_yield(self, yield_expr): if yield_expr.type == 'keyword': # `yield` just yields None. - ctx = compiled.builtin_from_name(self.evaluator, 'None') + ctx = compiled.builtin_from_name(self.evaluator, u'None') yield LazyKnownContext(ctx) return diff --git a/jedi/evaluate/context/instance.py b/jedi/evaluate/context/instance.py index 90e00498..ac6459da 100644 --- a/jedi/evaluate/context/instance.py +++ b/jedi/evaluate/context/instance.py @@ -94,7 +94,7 @@ class AbstractInstanceContext(Context): if isinstance(obj, AbstractInstanceContext): return self.execute_function_slots(names, obj, obj.class_context) else: - none_obj = compiled.builtin_from_name(self.evaluator, 'None') + none_obj = compiled.builtin_from_name(self.evaluator, u'None') return self.execute_function_slots(names, none_obj, obj) else: return ContextSet(self) diff --git a/jedi/evaluate/context/iterable.py b/jedi/evaluate/context/iterable.py index 0255234f..2bb3b33e 100644 --- a/jedi/evaluate/context/iterable.py +++ b/jedi/evaluate/context/iterable.py @@ -223,7 +223,7 @@ class ArrayMixin(object): class ListComprehension(ArrayMixin, Comprehension): - array_type = 'list' + array_type = u'list' def py__getitem__(self, index): if isinstance(index, slice): @@ -234,12 +234,12 @@ class ListComprehension(ArrayMixin, Comprehension): class SetComprehension(ArrayMixin, Comprehension): - array_type = 'set' + array_type = u'set' @has_builtin_methods class DictComprehension(ArrayMixin, Comprehension): - array_type = 'dict' + array_type = u'dict' def _get_comp_for(self): return self._get_comprehension().children[3] @@ -262,18 +262,18 @@ class DictComprehension(ArrayMixin, Comprehension): @register_builtin_method('values') def _imitate_values(self): lazy_context = LazyKnownContexts(self.dict_values()) - return ContextSet(FakeSequence(self.evaluator, 'list', [lazy_context])) + return ContextSet(FakeSequence(self.evaluator, u'list', [lazy_context])) @register_builtin_method('items') def _imitate_items(self): items = ContextSet.from_iterable( FakeSequence( - self.evaluator, 'tuple' + self.evaluator, u'tuple' (LazyKnownContexts(keys), LazyKnownContexts(values)) ) for keys, values in self._iterate() ) - return create_evaluated_sequence_set(self.evaluator, items, sequence_type='list') + return create_evaluated_sequence_set(self.evaluator, items, sequence_type=u'list') class GeneratorComprehension(GeneratorMixin, Comprehension): @@ -281,9 +281,9 @@ class GeneratorComprehension(GeneratorMixin, Comprehension): class SequenceLiteralContext(ArrayMixin, AbstractIterable): - mapping = {'(': 'tuple', - '[': 'list', - '{': 'set'} + mapping = {'(': u'tuple', + '[': u'list', + '{': u'set'} def __init__(self, evaluator, defining_context, atom): super(SequenceLiteralContext, self).__init__(evaluator) @@ -291,14 +291,14 @@ class SequenceLiteralContext(ArrayMixin, AbstractIterable): self._defining_context = defining_context if self.atom.type in ('testlist_star_expr', 'testlist'): - self.array_type = 'tuple' + self.array_type = u'tuple' else: self.array_type = SequenceLiteralContext.mapping[atom.children[0]] """The builtin name of the array (list, set, tuple or dict).""" def py__getitem__(self, index): """Here the index is an int/str. Raises IndexError/KeyError.""" - if self.array_type == 'dict': + if self.array_type == u'dict': compiled_obj_index = compiled.create_simple_object(self.evaluator, index) for key, value in self._items(): for k in self._defining_context.eval_node(key): @@ -318,7 +318,7 @@ class SequenceLiteralContext(ArrayMixin, AbstractIterable): While values returns the possible values for any array field, this function returns the value for a certain index. """ - if self.array_type == 'dict': + if self.array_type == u'dict': # Get keys. types = ContextSet() for k, _ in self._items(): @@ -336,7 +336,7 @@ class SequenceLiteralContext(ArrayMixin, AbstractIterable): def _values(self): """Returns a list of a list of node.""" - if self.array_type == 'dict': + if self.array_type == u'dict': return ContextSet.from_sets(v for k, v in self._items()) else: return self._items() @@ -384,7 +384,7 @@ class SequenceLiteralContext(ArrayMixin, AbstractIterable): @has_builtin_methods class DictLiteralContext(SequenceLiteralContext): - array_type = 'dict' + array_type = u'dict' def __init__(self, evaluator, defining_context, atom): super(SequenceLiteralContext, self).__init__(evaluator) @@ -394,19 +394,19 @@ class DictLiteralContext(SequenceLiteralContext): @register_builtin_method('values') def _imitate_values(self): lazy_context = LazyKnownContexts(self.dict_values()) - return ContextSet(FakeSequence(self.evaluator, 'list', [lazy_context])) + return ContextSet(FakeSequence(self.evaluator, u'list', [lazy_context])) @register_builtin_method('items') def _imitate_items(self): lazy_contexts = [ LazyKnownContext(FakeSequence( - self.evaluator, 'tuple', + self.evaluator, u'tuple', (LazyTreeContext(self._defining_context, key_node), LazyTreeContext(self._defining_context, value_node)) )) for key_node, value_node in self._items() ] - return ContextSet(FakeSequence(self.evaluator, 'list', lazy_contexts)) + return ContextSet(FakeSequence(self.evaluator, u'list', lazy_contexts)) class _FakeArray(SequenceLiteralContext): @@ -440,7 +440,7 @@ class FakeSequence(_FakeArray): class FakeDict(_FakeArray): def __init__(self, evaluator, dct): - super(FakeDict, self).__init__(evaluator, dct, 'dict') + super(FakeDict, self).__init__(evaluator, dct, u'dict') self._dct = dct def py__iter__(self): diff --git a/jedi/evaluate/context/klass.py b/jedi/evaluate/context/klass.py index 9eed9cd1..224957b1 100644 --- a/jedi/evaluate/context/klass.py +++ b/jedi/evaluate/context/klass.py @@ -146,7 +146,7 @@ class ClassContext(use_metaclass(CachedMetaClass, TreeContext)): return ContextSet(TreeInstance(self.evaluator, self.parent_context, self, params)) def py__class__(self): - return compiled.builtin_from_name(self.evaluator, 'type') + return compiled.builtin_from_name(self.evaluator, u'type') def get_params(self): from jedi.evaluate.context import AnonymousInstance diff --git a/jedi/evaluate/context/module.py b/jedi/evaluate/context/module.py index 8b88c4ff..4fcf4fad 100644 --- a/jedi/evaluate/context/module.py +++ b/jedi/evaluate/context/module.py @@ -25,7 +25,7 @@ class _ModuleAttributeName(AbstractNameDefinition): self.string_name = string_name def infer(self): - ctx = compiled.builtin_from_name(self.parent_context.evaluator, 'str') + ctx = compiled.builtin_from_name(self.parent_context.evaluator, u'str') return ctx.execute_evaluated() diff --git a/jedi/evaluate/syntax_tree.py b/jedi/evaluate/syntax_tree.py index a6764a42..2ba237c9 100644 --- a/jedi/evaluate/syntax_tree.py +++ b/jedi/evaluate/syntax_tree.py @@ -102,7 +102,7 @@ def eval_node(context, element): # In Python 2 ellipsis is coded as three single dot tokens, not # as one token 3 dot token. assert element.value in ('.', '...') - return ContextSet(compiled.builtin_from_name(evaluator, 'Ellipsis')) + return ContextSet(compiled.builtin_from_name(evaluator, u'Ellipsis')) elif typ == 'dotted_name': context_set = eval_atom(context, element.children[0]) for next_name in element.children[2::2]: @@ -183,7 +183,7 @@ def eval_atom(context, atom): context_set = eval_atom(context, c[0]) for string in c[1:]: right = eval_atom(context, string) - context_set = _eval_comparison(context.evaluator, context, context_set, '+', right) + context_set = _eval_comparison(context.evaluator, context, context_set, u'+', right) return context_set # Parentheses without commas are not tuples. elif c[0] == '(' and not len(c) == 2 \ @@ -362,7 +362,7 @@ def _is_list(context): def _bool_to_context(evaluator, bool_): - return compiled.builtin_from_name(evaluator, str(bool_)) + return compiled.builtin_from_name(evaluator, force_unicode(str(bool_))) def _eval_comparison_part(evaluator, context, left, operator, right):