diff --git a/jedi/evaluate/compiled/access.py b/jedi/evaluate/compiled/access.py index f8e50420..572b3a13 100644 --- a/jedi/evaluate/compiled/access.py +++ b/jedi/evaluate/compiled/access.py @@ -399,7 +399,13 @@ class DirectObjectAccess(object): or obj.__new__ != object.__new__)): raise ValueError - signature = inspect.signature(obj) + try: + signature = inspect.signature(obj) + except (RuntimeError, TypeError): + # Reading the code of the function in Python 3.6 implies there are + # at least these errors that might occur if something is wrong with + # the signature. In that case we just want a simple escape for now. + raise ValueError return [ SignatureParam( name=p.name, diff --git a/test/test_api/test_classes.py b/test/test_api/test_classes.py index 2580b105..f381ebc7 100644 --- a/test/test_api/test_classes.py +++ b/test/test_api/test_classes.py @@ -164,6 +164,15 @@ def test_completion_params(Script): assert [p.name for p in c.params] == ['s', 'sep'] +def test_hashlib_params(Script, environment): + if environment.version_info < (3,): + pytest.skip() + + script = Script(source='from hashlib import ', line=1, column=20) + c = script.completions() + assert c[2].params + + def test_signature_params(Script): def check(defs): params = defs[0].params