@@ -907,9 +907,12 @@ def spilldata(msg, attrs, predicate):
907907
908908 decl = ''
909909 try :
910- signature = inspect .signature (object )
911- except (ValueError , TypeError ):
912- signature = None
910+ signature = inspect .signature (object , resolve_type_hints = True )
911+ except (NameError , AttributeError , SyntaxError , TypeError , ValueError ):
912+ try :
913+ signature = inspect .signature (object , resolve_type_hints = False )
914+ except (ValueError , TypeError ):
915+ signature = None
913916 if signature :
914917 argspec = str (signature )
915918 if argspec and argspec != '()' :
@@ -967,9 +970,12 @@ def docroutine(self, object, name=None, mod=None,
967970 argspec = None
968971 if inspect .isroutine (object ):
969972 try :
970- signature = inspect .signature (object )
971- except (ValueError , TypeError ):
972- signature = None
973+ signature = inspect .signature (object , resolve_type_hints = True )
974+ except (NameError , AttributeError , SyntaxError , TypeError , ValueError ):
975+ try :
976+ signature = inspect .signature (object , resolve_type_hints = False )
977+ except (ValueError , TypeError ):
978+ signature = None
973979 if signature :
974980 argspec = str (signature )
975981 if realname == '<lambda>' :
@@ -1226,9 +1232,12 @@ def makename(c, m=object.__module__):
12261232 push = contents .append
12271233
12281234 try :
1229- signature = inspect .signature (object )
1230- except (ValueError , TypeError ):
1231- signature = None
1235+ signature = inspect .signature (object , resolve_type_hints = True )
1236+ except (NameError , AttributeError , SyntaxError , TypeError , ValueError ):
1237+ try :
1238+ signature = inspect .signature (object , resolve_type_hints = False )
1239+ except (ValueError , TypeError ):
1240+ signature = None
12321241 if signature :
12331242 argspec = str (signature )
12341243 if argspec and argspec != '()' :
@@ -1397,9 +1406,12 @@ def docroutine(self, object, name=None, mod=None, cl=None):
13971406
13981407 if inspect .isroutine (object ):
13991408 try :
1400- signature = inspect .signature (object )
1401- except (ValueError , TypeError ):
1402- signature = None
1409+ signature = inspect .signature (object , resolve_type_hints = True )
1410+ except (NameError , AttributeError , SyntaxError , TypeError , ValueError ):
1411+ try :
1412+ signature = inspect .signature (object , resolve_type_hints = False )
1413+ except (ValueError , TypeError ):
1414+ signature = None
14031415 if signature :
14041416 argspec = str (signature )
14051417 if realname == '<lambda>' :
0 commit comments