##// END OF EJS Templates
FIX: correct handling of built-ins
Thomas A Caswell -
Show More
@@ -841,24 +841,28 b' class IPCompleter(Completer):'
841 call_obj = obj.__call__
841 call_obj = obj.__call__
842 ret += self._default_arguments_from_docstring(
842 ret += self._default_arguments_from_docstring(
843 getattr(call_obj, '__doc__', ''))
843 getattr(call_obj, '__doc__', ''))
844 try:
844
845 if PY3:
845 if PY3:
846 _keepers = (inspect.Parameter.KEYWORD_ONLY,
846 _keepers = (inspect.Parameter.KEYWORD_ONLY,
847 inspect.Parameter.POSITIONAL_OR_KEYWORD)
847 inspect.Parameter.POSITIONAL_OR_KEYWORD)
848 try:
848 sig = inspect.signature(call_obj)
849 sig = inspect.signature(call_obj)
849 ret.extend(k for k, v in sig.parameters.items() if
850 ret.extend(k for k, v in sig.parameters.items() if
850 v.kind in _keepers)
851 v.kind in _keepers)
851 else:
852 except ValueError:
853 pass
854 else:
855 try:
852 args, _, _1, defaults = inspect.getargspec(call_obj)
856 args, _, _1, defaults = inspect.getargspec(call_obj)
853 if defaults:
857 if defaults:
854 ret += args[-len(defaults):]
858 ret += args[-len(defaults):]
855 except TypeError:
859 except TypeError:
856 pass
860 pass
857 return list(set(ret))
861 return list(set(ret))
858
862
859 def python_func_kw_matches(self,text):
863 def python_func_kw_matches(self,text):
860 """Match named parameters (kwargs) of the last open function"""
864 """Match named parameters (kwargs) of the last open function"""
861
865
862 if "." in text: # a parameter cannot be dotted
866 if "." in text: # a parameter cannot be dotted
863 return []
867 return []
864 try: regexp = self.__funcParamsRegex
868 try: regexp = self.__funcParamsRegex
General Comments 0
You need to be logged in to leave comments. Login now