From: Ka-Ping Yee Date: Sat, 19 Feb 2005 22:58:26 +0000 (+0000) Subject: Use getdoc(object) instead of object.__doc__ to fix indentation problems. X-Git-Tag: v2.5a0~2010 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bba6acc714710e7e0190e4eba300b1dc4e492ecf;p=thirdparty%2FPython%2Fcpython.git Use getdoc(object) instead of object.__doc__ to fix indentation problems. Thanks to Robert Dick for reporting this bug and submitting a patch. Adjust doc(object) to display useful documentation for plain values (e.g. help([]) now shows the methods on the list instead of just printing "[]"). (This change has been tested interactively, by generating docs for the standard library, and by running the module documentation webserver.) --- diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 94548e296930..e0add862525c 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -886,7 +886,7 @@ class HTMLDoc(Doc): if name: push('
%s
\n' % name) if value.__doc__ is not None: - doc = self.markup(value.__doc__, self.preformat) + doc = self.markup(getdoc(value), self.preformat) push('
%s
\n' % doc) push('
\n') @@ -1160,7 +1160,7 @@ class TextDoc(Doc): push(msg) for name, kind, homecls, value in ok: if callable(value) or inspect.isdatadescriptor(value): - doc = getattr(value, "__doc__", None) + doc = getdoc(value) else: doc = None push(self.docother(getattr(object, name), @@ -1454,6 +1454,14 @@ def doc(thing, title='Python Library Documentation: %s', forceload=0): desc += ' in ' + name[:name.rfind('.')] elif module and module is not object: desc += ' in module ' + module.__name__ + if not (inspect.ismodule(object) or + inspect.isclass(object) or + inspect.isroutine(object) or + isinstance(object, property)): + # If the passed object is a piece of data or an instance, + # document its available methods instead of its value. + object = type(object) + desc += ' object' pager(title % desc + '\n\n' + text.document(object, name)) except (ImportError, ErrorDuringImport), value: print value