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:
Brett Cannon 2003-06-11 23:38:55 +00:00
parent 10147f7d13
commit 28a4f0f965

View file

@ -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):