diff options
author | Georg Brandl <georg@python.org> | 2010-10-14 07:14:31 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-10-14 07:14:31 (GMT) |
commit | 9e7dbc8a708f9f5f29fb527f9e01b1d31a7f09a6 (patch) | |
tree | 19f2c606ff075358e1ae2a3139514e7faedc7745 /Lib/pdb.py | |
parent | 66c221e993bf7c5979145dbbe365238f2d70064f (diff) | |
download | cpython-9e7dbc8a708f9f5f29fb527f9e01b1d31a7f09a6.zip cpython-9e7dbc8a708f9f5f29fb527f9e01b1d31a7f09a6.tar.gz cpython-9e7dbc8a708f9f5f29fb527f9e01b1d31a7f09a6.tar.bz2 |
#9964: fix pdb failure to import under -OO. Warn the user that help is simply not available in this case.
Diffstat (limited to 'Lib/pdb.py')
-rwxr-xr-x | Lib/pdb.py | 35 |
1 files changed, 20 insertions, 15 deletions
@@ -1261,6 +1261,10 @@ class Pdb(bdb.Bdb, cmd.Cmd): except AttributeError: self.error('No help for %r' % arg) else: + if sys.flags.optimize >= 2: + self.error('No help for %r; please do not run Python with -OO ' + 'if you need command help' % arg) + return self.message(command.__doc__.rstrip()) do_h = do_help @@ -1275,7 +1279,7 @@ class Pdb(bdb.Bdb, cmd.Cmd): (Pdb) global list_options; list_options = ['-l'] (Pdb) """ - self.message(self.help_exec.__doc__.strip()) + self.message((self.help_exec.__doc__ or '').strip()) def help_pdb(self): help() @@ -1332,23 +1336,24 @@ class Pdb(bdb.Bdb, cmd.Cmd): (fp.read(), self.mainpyfile) self.run(statement) -# Collect all command help into docstring +# Collect all command help into docstring, if not run with -OO + +if __doc__ is not None: + # unfortunately we can't guess this order from the class definition + _help_order = [ + 'help', 'where', 'down', 'up', 'break', 'tbreak', 'clear', 'disable', + 'enable', 'ignore', 'condition', 'commands', 'step', 'next', 'until', + 'jump', 'return', 'retval', 'run', 'continue', 'list', 'longlist', + 'args', 'print', 'pp', 'whatis', 'source', 'alias', 'unalias', + 'debug', 'quit', + ] -# unfortunately we can't guess this order from the class definition -_help_order = [ - 'help', 'where', 'down', 'up', 'break', 'tbreak', 'clear', 'disable', - 'enable', 'ignore', 'condition', 'commands', 'step', 'next', 'until', - 'jump', 'return', 'retval', 'run', 'continue', 'list', 'longlist', - 'args', 'print', 'pp', 'whatis', 'source', 'alias', 'unalias', - 'debug', 'quit', -] + for _command in _help_order: + __doc__ += getattr(Pdb, 'do_' + _command).__doc__.strip() + '\n\n' + __doc__ += Pdb.help_exec.__doc__ -docs = set() -for _command in _help_order: - __doc__ += getattr(Pdb, 'do_' + _command).__doc__.strip() + '\n\n' -__doc__ += Pdb.help_exec.__doc__ + del _help_order, _command -del _help_order, _command # Simplified interface |