@@ -181,36 +181,41 @@ def fixlongargs(f, argspec):
181
181
182
182
def getpydocspec (f , func ):
183
183
try :
184
- docstring = pydoc .getdoc (f )
184
+ argspec = pydoc .getdoc (f )
185
185
except NameError :
186
186
return None
187
- s = getpydocspec_re .search (docstring )
187
+
188
+ s = getpydocspec_re .search (argspec )
188
189
if s is None :
189
190
return None
190
191
191
192
if not hasattr (f , '__name__' ) or s .groups ()[0 ] != f .__name__ :
192
193
return None
193
194
194
- argspec = ArgSpec (list (), None , None , list (), list (), dict (), None )
195
-
195
+ args = list ()
196
+ defaults = list ()
197
+ varargs = varkwargs = None
198
+ kwonly_args = list ()
199
+ kwonly_defaults = dict ()
196
200
for arg in s .group (2 ).split (',' ):
197
201
arg = arg .strip ()
198
202
if arg .startswith ('**' ):
199
- argspec . varkwargs = arg [2 :]
203
+ varkwargs = arg [2 :]
200
204
elif arg .startswith ('*' ):
201
- argspec . varargs = arg [1 :]
205
+ varargs = arg [1 :]
202
206
else :
203
207
arg , _ , default = arg .partition ('=' )
204
- if argspec . varargs is not None :
205
- argspec . kwonly_args .append (arg )
208
+ if varargs is not None :
209
+ kwonly_args .append (arg )
206
210
if default :
207
- argspec . kwonly_defaults [arg ] = default
211
+ kwonly_defaults [arg ] = default
208
212
else :
209
- argspec . args .append (arg )
213
+ args .append (arg )
210
214
if default :
211
- argspec . defaults .append (default )
215
+ defaults .append (default )
212
216
213
- return argspec
217
+ return ArgSpec (args , varargs , varkwargs , default , kwonly_args ,
218
+ kwonly_defaults , None )
214
219
215
220
216
221
def getfuncprops (func , f ):
0 commit comments