From 240083177368a929a4ab15098a94b0a6f71aeeed Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sun, 17 Mar 2002 18:56:20 +0000 Subject: SF patch 530070: pydoc regression, from Martin and Guido. Change the way __doc__ is handled, to avoid blowing up on non-string __doc__ values. --- Lib/inspect.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'Lib/inspect.py') diff --git a/Lib/inspect.py b/Lib/inspect.py index 806f526690..9e2d23d58b 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -263,8 +263,17 @@ def getdoc(object): All tabs are expanded to spaces. To clean up docstrings that are indented to line up with blocks of code, any whitespace than can be uniformly removed from the second line onwards is removed.""" - if hasattr(object, '__doc__') and object.__doc__: - lines = string.split(string.expandtabs(object.__doc__), '\n') + try: + doc = object.__doc__ + except AttributeError: + return None + if not isinstance(doc, (str, unicode)): + return None + try: + lines = string.split(string.expandtabs(doc), '\n') + except UnicodeError: + return None + else: margin = None for line in lines[1:]: content = len(string.lstrip(line)) -- cgit v1.2.1