From 95ab5c53c07d0a7f30e0365c8b49641ba1860989 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Mon, 20 Apr 2020 18:23:26 -0700 Subject: [PATCH 1/2] fix getting signatures in jedi 0.17 --- IPython/core/completer.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/IPython/core/completer.py b/IPython/core/completer.py index fd3939f1e18..207e48738f7 100644 --- a/IPython/core/completer.py +++ b/IPython/core/completer.py @@ -988,6 +988,11 @@ def _make_signature(completion)-> str: """ + # it looks like this might work on jedi 0.17 + if hasattr(completion, 'get_signatures'): + c0 = completion.get_signatures()[0] + return '('+c0.to_string().split('(', maxsplit=1)[1] + return '(%s)'% ', '.join([f for f in (_formatparamchildren(p) for signature in completion.get_signatures() for p in signature.defined_names()) if f]) From 387da044fcdfa88385ac64daf5b05c6fe1ae6104 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Tue, 21 Apr 2020 09:34:16 -0700 Subject: [PATCH 2/2] handle when no signatures are found --- IPython/core/completer.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/IPython/core/completer.py b/IPython/core/completer.py index 207e48738f7..16fbb81f551 100644 --- a/IPython/core/completer.py +++ b/IPython/core/completer.py @@ -990,6 +990,10 @@ def _make_signature(completion)-> str: # it looks like this might work on jedi 0.17 if hasattr(completion, 'get_signatures'): + signatures = completion.get_signatures() + if not signatures: + return '(?)' + c0 = completion.get_signatures()[0] return '('+c0.to_string().split('(', maxsplit=1)[1]