##// END OF EJS Templates
FIX/API: use inspect.signature for python3...
Thomas A Caswell -
Show More
@@ -839,17 +839,21 b' class IPCompleter(Completer):'
839 # for all others, check if they are __call__able
839 # for all others, check if they are __call__able
840 elif hasattr(obj, '__call__'):
840 elif hasattr(obj, '__call__'):
841 call_obj = obj.__call__
841 call_obj = obj.__call__
842
843 ret += self._default_arguments_from_docstring(
842 ret += self._default_arguments_from_docstring(
844 getattr(call_obj, '__doc__', ''))
843 getattr(call_obj, '__doc__', ''))
845
846 try:
844 try:
847 args,_,_1,defaults = inspect.getargspec(call_obj)
845 if PY3:
848 if defaults:
846 _keepers = (inspect.Parameter.KEYWORD_ONLY,
849 ret+=args[-len(defaults):]
847 inspect.Parameter.POSITIONAL_OR_KEYWORD)
848 sig = inspect.signature(call_obj)
849 ret.extend(k for k, v in sig.parameters.items() if
850 v.kind in _keepers)
851 else:
852 args, _, _1, defaults = inspect.getargspec(call_obj)
853 if defaults:
854 ret += args[-len(defaults):]
850 except TypeError:
855 except TypeError:
851 pass
856 pass
852
853 return list(set(ret))
857 return list(set(ret))
854
858
855 def python_func_kw_matches(self,text):
859 def python_func_kw_matches(self,text):
General Comments 0
You need to be logged in to leave comments. Login now