From: Ned Deily Date: Thu, 6 Oct 2011 21:17:44 +0000 (-0700) Subject: Issue #7425: Prevent pydoc -k failures due to module import errors. X-Git-Tag: v2.7.3rc1~419 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0096fb5780170b36a9f2ec9f1e2a780887c2768d;p=python Issue #7425: Prevent pydoc -k failures due to module import errors. (Backport to 2.7 of existing 3.x fix) --- diff --git a/Lib/pydoc.py b/Lib/pydoc.py index d08d1ac4f1..d55779022f 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -52,7 +52,7 @@ Richard Chamberlain, for the first implementation of textdoc. # the current directory is changed with os.chdir(), an incorrect # path will be displayed. -import sys, imp, os, re, types, inspect, __builtin__, pkgutil +import sys, imp, os, re, types, inspect, __builtin__, pkgutil, warnings from repr import Repr from string import expandtabs, find, join, lower, split, strip, rfind, rstrip from traceback import extract_tb @@ -1968,10 +1968,11 @@ def apropos(key): if modname[-9:] == '.__init__': modname = modname[:-9] + ' (package)' print modname, desc and '- ' + desc - try: import warnings - except ImportError: pass - else: warnings.filterwarnings('ignore') # ignore problems during import - ModuleScanner().run(callback, key) + def onerror(modname): + pass + with warnings.catch_warnings(): + warnings.filterwarnings('ignore') # ignore problems during import + ModuleScanner().run(callback, key, onerror=onerror) # --------------------------------------------------- web browser interface