Issue #20189: Four additional builtin types (PyTypeObject,
PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
have been modified to provide introspection information for builtins.
Also: many additional Lib, test suite, and Argument Clinic fixes.
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 9f62692..cf164cc 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -925,7 +925,10 @@
anchor, name, reallink)
argspec = None
if inspect.isfunction(object) or inspect.isbuiltin(object):
- signature = inspect.signature(object)
+ try:
+ signature = inspect.signature(object)
+ except (ValueError, TypeError):
+ signature = None
if signature:
argspec = str(signature)
if realname == '<lambda>':
@@ -1319,8 +1322,12 @@
skipdocs = 1
title = self.bold(name) + ' = ' + realname
argspec = None
- if inspect.isfunction(object) or inspect.isbuiltin(object):
- signature = inspect.signature(object)
+
+ if inspect.isroutine(object):
+ try:
+ signature = inspect.signature(object)
+ except (ValueError, TypeError):
+ signature = None
if signature:
argspec = str(signature)
if realname == '<lambda>':