diff --git a/jedi/evaluate/signature.py b/jedi/evaluate/signature.py index 32e51caf..2871e954 100644 --- a/jedi/evaluate/signature.py +++ b/jedi/evaluate/signature.py @@ -1,4 +1,5 @@ from jedi._compatibility import Parameter +from jedi.cache import memoize_method class _SignatureMixin(object): @@ -80,6 +81,7 @@ class TreeSignature(AbstractSignature): return '' return a.get_code(include_prefix=False) + @memoize_method def get_param_names(self, resolve_stars=False): params = super(TreeSignature, self).get_param_names() if resolve_stars: diff --git a/jedi/plugins/stdlib.py b/jedi/plugins/stdlib.py index f09895a2..f53e3110 100644 --- a/jedi/plugins/stdlib.py +++ b/jedi/plugins/stdlib.py @@ -516,7 +516,7 @@ class PartialSignature(SignatureWrapper): self._skipped_arg_count = skipped_arg_count self._skipped_arg_set = skipped_arg_set - def get_param_names(self): + def get_param_names(self, resolve_stars=False): names = self._wrapped_signature.get_param_names()[self._skipped_arg_count:] return [n for n in names if n.string_name not in self._skipped_arg_set] @@ -598,7 +598,7 @@ class DataclassSignature(AbstractSignature): super(DataclassSignature, self).__init__(context) self._param_names = param_names - def get_param_names(self): + def get_param_names(self, resolve_stars=False): return self._param_names diff --git a/test/test_evaluate/test_signature.py b/test/test_evaluate/test_signature.py index 76da4fee..aa86413b 100644 --- a/test/test_evaluate/test_signature.py +++ b/test/test_evaluate/test_signature.py @@ -181,7 +181,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() - if not re.match('\w+\(', expected): + if not re.match(r'\w+\(', expected): expected = '(' + expected + ')' assert expected == computed