On Thu, 09 Jun 2005 16:53:17 -0700, Sarir Khamsi <[EMAIL PROTECTED]> wrote:
>Peter Hansen <[EMAIL PROTECTED]> writes: > >> class _Helper(object): >> """Define the built-in 'help'. >> This is a wrapper around pydoc.help (with a twist). >> >> """ >> >> def __repr__(self): >> return "Type help() for interactive help, " \ >> "or help(object) for help about object." >> def __call__(self, *args, **kwds): >> import pydoc >> return pydoc.help(*args, **kwds) > >Thanks, but how do I integrate this with cmd.Cmd? Have you read the docs for the cmd module? E.g., http://www.python.org/doc/current/lib/Cmd-objects.html """ All subclasses of Cmd inherit a predefined do_help(). This method, called with an argument 'bar', invokes the corresponding method help_bar(). With no argument, do_help() lists all available help topics (that is, all commands with corresponding help_*() methods), and also lists any undocumented commands. """ This suggests that typing "help xxx" might call do_help('xxx') and that will call help_xxx if it exists. So if you want help on a non-cmd.Cmd command, you might want to modify do_help to call pydoc as above instead of generating its default have-no-help repsonse, whatever that is. Just guessing, but that should get you closer. You can look at the source in <wherever>python<versionstuff>\Lib\cmd.py E.g., D:\Python23\Lib\cmd.py or D:\Python-2.4b1\Lib\cmd.py for me. Look in cmd.py at class Cmd method do_help: def do_help(self, arg): if arg: # XXX check arg syntax try: func = getattr(self, 'help_' + arg) except AttributeError: try: doc=getattr(self, 'do_' + arg).__doc__ if doc: self.stdout.write("%s\n"%str(doc)) return except AttributeError: pass [1] --> self.stdout.write("%s\n"%str(self.nohelp % (arg,))) return func() else: # ... generates topic listing Probably you can write your own Cmd subclass and override do_help and modify at [1] to do the pydoc call as in Peter's snippet. Hopefully no weird interactions, but it should be easy to try ;-) HTH Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list