@@ -657,8 +657,30 @@ def getpydocspec(f, func):
657657 if not hasattr (f , '__name__' ) or s .groups ()[0 ] != f .__name__ :
658658 return None
659659
660- args = [i .strip () for i in s .groups ()[1 ].split (',' )]
661- return [func , (args , None , None , None )]
660+ args = list ()
661+ defaults = list ()
662+ varargs = varkwargs = None
663+ kwonly_args = list ()
664+ kwonly_defaults = dict ()
665+ for arg in s .group (2 ).split (',' ):
666+ arg = arg .strip ()
667+ if arg .startswith ('**' ):
668+ varkwargs = arg [2 :]
669+ elif arg .startswith ('*' ):
670+ varargs = arg [1 :]
671+ else :
672+ arg , _ , default = arg .partition ('=' )
673+ if varargs is not None :
674+ kwonly_args .append (arg )
675+ if default :
676+ kwonly_defaults [arg ] = default
677+ else :
678+ args .append (arg )
679+ if default :
680+ defaults .append (default )
681+
682+ return [func , (args , varargs , varkwargs , defaults ,
683+ kwonly_args , kwonly_defaults )]
662684
663685 def getargspec (func ):
664686 try :
@@ -1113,7 +1135,7 @@ def mkargspec(self, topline, down):
11131135 default = kwonly_defaults .get (arg , marker )
11141136 if default is not marker :
11151137 self .list_win .addstr ('=' , get_colpair ('punctuation' ))
1116- self .list_win .addstr (repr ( default ) , get_colpair ('token' ))
1138+ self .list_win .addstr (default , get_colpair ('token' ))
11171139
11181140 if _kwargs :
11191141 if args or _args or (py3 and kwonly ):
0 commit comments