python packages versus pydoc -k

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Do we have any packaging requirements or guidelines for python modules
to behave nicely with pydoc?  I've seen this break a number of times,
and sometimes the bugs I've filed have been fixed, sometimes ignored.
Before I go through another round, I'd like to know if we have (or
should have) some official policy on this.

AIUI, pydoc works by importing the named module, then displaying its
docstrings.  Then "pydoc -k" does this for all modules in sys.path,
looking for the specified keyword.  A problem then arises if something
in the path does protect itself with 'if __name__ == "__main__":' to
know when it's acting as a module or a script.  (And if some module
really doesn't want to support normal importing, it should not be
installed in the path!)

For instance, right now I get:

> $ pydoc -k xyzzy
> lib2to3.fixes.fix_repr - Fixer that transforms `xyzzy` into repr(xyzzy).
> Traceback (most recent call last):
>   File "/usr/bin/pydoc", line 5, in <module>
>     pydoc.cli()
>   File "/usr/lib64/python2.7/pydoc.py", line 2292, in cli
>     apropos(val)
>   File "/usr/lib64/python2.7/pydoc.py", line 1992, in apropos
>     ModuleScanner().run(callback, key, onerror=onerror)
>   File "/usr/lib64/python2.7/pydoc.py", line 1973, in run
>     module = loader.load_module(modname)
> AttributeError: 'NoneType' object has no attribute 'load_module'

It's hard to track that down, but with "strace -e open" it looks like
somewhere in site-packages/rpm/.  I couldn't figure out exactly which
subpackage is triggering this.

> $ pydoc3 -k xyzzy
> lib2to3.fixes.fix_repr - Fixer that transforms `xyzzy` into repr(xyzzy).
> Usage: pydoc3 [options]
> A simple dialog based tool for basic configuration of Speech Dispatcher
> and problem diagnostics.
> 
> pydoc3: error: no such option: -k

This one is somewhere in site-packages/speechd, but again I'm not sure
which subpackage.

Of course, these are just the first exceptions I hit.  Experience shows
that fixing these will likely find more behind them.
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux