mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Have pydoc try handling an object as "other" if the object does not act the way
it expects based on what inspect classifies it as. Closes bug #729103 .
This commit is contained in:
parent
10147f7d13
commit
28a4f0f965
1 changed files with 10 additions and 3 deletions
13
Lib/pydoc.py
13
Lib/pydoc.py
|
@ -275,9 +275,16 @@ class Doc:
|
|||
def document(self, object, name=None, *args):
|
||||
"""Generate documentation for an object."""
|
||||
args = (object, name) + args
|
||||
if inspect.ismodule(object): return self.docmodule(*args)
|
||||
if inspect.isclass(object): return self.docclass(*args)
|
||||
if inspect.isroutine(object): return self.docroutine(*args)
|
||||
# 'try' clause is to attempt to handle the possibility that inspect
|
||||
# identifies something in a way that pydoc itself has issues handling;
|
||||
# think 'super' and how it is a descriptor (which raises the exception
|
||||
# by lacking a __name__ attribute) and an instance.
|
||||
try:
|
||||
if inspect.ismodule(object): return self.docmodule(*args)
|
||||
if inspect.isclass(object): return self.docclass(*args)
|
||||
if inspect.isroutine(object): return self.docroutine(*args)
|
||||
except AttributeError:
|
||||
pass
|
||||
return self.docother(*args)
|
||||
|
||||
def fail(self, object, name=None, *args):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue