diff --git a/jedi/api/classes.py b/jedi/api/classes.py index e7f7809a..8a45488e 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -531,7 +531,7 @@ class Definition(BaseDefinition): typ = self.type tree_name = self._name.tree_name if typ == 'param': - return typ + ' ' + self._name.to_string() + return typ + ' ' + str(self._name) if typ in ('function', 'class', 'module', 'instance') or tree_name is None: if typ == 'function': # For the description we want a short and a pythonic way. @@ -633,14 +633,13 @@ class CallSignature(Definition): return '<%s: index=%r %s>' % ( type(self).__name__, self.index, - self._signature.to_string(), + self._signature, ) def _format_signatures(context): return '\n'.join( - signature.to_string() - for signature in context.get_signatures() + str(signature) for signature in context.get_signatures() ) diff --git a/jedi/evaluate/compiled/context.py b/jedi/evaluate/compiled/context.py index c5ced978..e902c575 100644 --- a/jedi/evaluate/compiled/context.py +++ b/jedi/evaluate/compiled/context.py @@ -309,7 +309,7 @@ class SignatureParamName(ParamNameInterface, AbstractNameDefinition): def string_name(self): return self._signature_param.name - def to_string(self): + def __str__(self): s = self._kind_string() + self.string_name if self._signature_param.has_annotation: s += ': ' + self._signature_param.annotation_string @@ -341,7 +341,7 @@ class UnresolvableParamName(ParamNameInterface, AbstractNameDefinition): def get_kind(self): return Parameter.POSITIONAL_ONLY - def to_string(self): + def __str__(self): string = self.string_name if self._default: string += '=' + self._default diff --git a/jedi/evaluate/names.py b/jedi/evaluate/names.py index 563506b3..c5539664 100644 --- a/jedi/evaluate/names.py +++ b/jedi/evaluate/names.py @@ -178,7 +178,7 @@ class ParamNameInterface(_ParamMixin): def get_kind(self): raise NotImplementedError - def to_string(self): + def __str__(self): raise NotImplementedError def get_param(self): @@ -201,7 +201,7 @@ class BaseTreeParamName(ParamNameInterface, AbstractTreeName): annotation_node = None default_node = None - def to_string(self): + def __str__(self): output = self._kind_string() + self.string_name annotation = self.annotation_node default = self.default_node @@ -277,6 +277,9 @@ class ParamNameWrapper(_ParamMixin): def __getattr__(self, name): return getattr(self._wrapped_param_name, name) + def __str__(self): + return str(self._wrapped_param_name) + def __repr__(self): return '<%s: %s>' % (self.__class__.__name__, self._wrapped_param_name) diff --git a/jedi/evaluate/signature.py b/jedi/evaluate/signature.py index bf65789e..d225ae13 100644 --- a/jedi/evaluate/signature.py +++ b/jedi/evaluate/signature.py @@ -2,7 +2,7 @@ from jedi._compatibility import Parameter class _SignatureMixin(object): - def to_string(self): + def __str__(self): def param_strings(): is_positional = False is_kw_only = False @@ -19,7 +19,7 @@ class _SignatureMixin(object): yield '*' is_kw_only = True - yield n.to_string() + yield str(n) if is_positional: yield '/' diff --git a/test/test_evaluate/test_signature.py b/test/test_evaluate/test_signature.py index 76da4fee..254b5896 100644 --- a/test/test_evaluate/test_signature.py +++ b/test/test_evaluate/test_signature.py @@ -33,7 +33,7 @@ def test_compiled_signature(Script, environment, code, sig, names, op, version): context, = d._name.infer() compiled, = _stub_to_python_context_set(context) signature, = compiled.get_signatures() - assert signature.to_string() == sig + assert str(signature) == sig assert [n.string_name for n in signature.get_param_names()] == names @@ -90,7 +90,7 @@ def test_tree_signature(Script, environment, code, expected): assert not Script(code).call_signatures() else: sig, = Script(code).call_signatures() - assert expected == sig._signature.to_string() + assert expected == str(sig._signature) @pytest.mark.parametrize( @@ -180,7 +180,7 @@ def test_nested_signatures(Script, environment, combination, expected, skip_pre_ ''') code += 'z = ' + combination + '\nz(' sig, = Script(code).call_signatures() - computed = sig._signature.to_string() + computed = str(sig._signature) if not re.match('\w+\(', expected): expected = '(' + expected + ')' assert expected == computed @@ -189,7 +189,7 @@ def test_nested_signatures(Script, environment, combination, expected, skip_pre_ def test_pow_signature(Script): # See github #1357 sigs = Script('pow(').call_signatures() - strings = {sig._signature.to_string() for sig in sigs} + strings = {str(sig._signature) for sig in sigs} assert strings == {'pow(x: float, y: float, z: float, /) -> float', 'pow(x: float, y: float, /) -> float', 'pow(x: int, y: int, z: int, /) -> Any', @@ -228,7 +228,7 @@ def test_pow_signature(Script): ) def test_wraps_signature(Script, code, signature, skip_pre_python35): sigs = Script(code).call_signatures() - assert {sig._signature.to_string() for sig in sigs} == {signature} + assert {str(sig._signature) for sig in sigs} == {signature} @pytest.mark.parametrize(