This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Typing 'modules' in the interactive help system fails when imports fail
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 2.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, dennis
Priority: normal Keywords:

Created on 2008-03-31 07:39 by dennis, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (4)
msg64778 - (view) Author: Dennis Kaarsemaker (dennis) Date: 2008-03-31 07:39
If a certain module cannot be imported, this error is not caught and
warned about by pydoc, but will cause 'modules' to fail. This could be
considered a bug in the module but it would still be nice if 3rd party
modules cannot break pydoc. Example:

dennis@mirage:~$ python
Python 2.5.2 (r252:60911, Mar 12 2008, 13:36:25) 
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help()

Welcome to Python 2.5!  This is the online help utility.
[... snip ...]

help> modules

Please wait a moment while I gather a list of all available modules...

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site.py", line 342, in __call__
    return pydoc.help(*args, **kwds)
  File "/usr/lib/python2.5/pydoc.py", line 1649, in __call__
    self.interact()
  File "/usr/lib/python2.5/pydoc.py", line 1667, in interact
    self.help(request)
  File "/usr/lib/python2.5/pydoc.py", line 1683, in help
    elif request == 'modules': self.listmodules()
  File "/usr/lib/python2.5/pydoc.py", line 1804, in listmodules
    ModuleScanner().run(callback)
  File "/usr/lib/python2.5/pydoc.py", line 1855, in run
    for importer, modname, ispkg in pkgutil.walk_packages():
  File "/usr/lib/python2.5/pkgutil.py", line 125, in walk_packages
    for item in walk_packages(path, name+'.', onerror):

[... snip -- the actual error isn't important ...]
OperationalError: no such table: falcon_configurationkey

>>> 

I think it would be relatively easy to work around such bugs in 3rd
party modules by passing a callable to walk_packages that will give a
warning when an import fails instead of breaking.
msg64799 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2008-04-01 02:33
Would you like to work on a patch?
msg64817 - (view) Author: Dennis Kaarsemaker (dennis) Date: 2008-04-01 18:55
pydoc.py from head actually does work around it in some places, but not
all. Will send a patch.
msg82601 - (view) Author: Dennis Kaarsemaker (dennis) Date: 2009-02-22 13:19
I don't see this bug in python 3.0, so feel free to close this issue.
History
Date User Action Args
2022-04-11 14:56:32adminsetgithub: 46771
2009-04-07 20:10:54georg.brandlsetstatus: open -> closed
resolution: fixed
2009-02-22 13:19:26dennissetmessages: + msg82601
2008-04-01 18:55:25dennissetmessages: + msg64817
2008-04-01 02:33:58benjamin.petersonsettype: enhancement
2008-04-01 02:33:33benjamin.petersonsetnosy: + benjamin.peterson
messages: + msg64799
2008-03-31 07:40:45dennissetversions: + Python 2.5
2008-03-31 07:39:54denniscreate