[Python-Dev] creating __all__ in extension modules
Tim Peters
tim.one@home.com
Sat, 3 Feb 2001 17:24:51 -0500
> Fredrik> what's the point? doesn't from-import already do
> Fredrik> exactly that on C extensions?
[Skip Montanaro]
> Consider os. At one point it does "from posix import *". Okay, which
> symbols now in its local namespace came from posix and which from its
> own devices? It's a lot easier to do
>
> from posix import __all__ as _all
> __all__.extend(_all)
> del _all
>
> than to muck about importing posix, looping over its dict, then
> incorporating what it finds.
>
> It also makes things a bit more consistent for introspective tools.
I'm afraid I find it hard to believe people will *keep* C-module __all__
lists in synch with the code as the years go by. If we're going to do this,
how about adding code to Py_InitModule4 that sucks the non-underscore names
out of its PyMethodDef argument and automagically builds an __all__ attr?
Then nothing ever needs to be fiddled by hand for C modules.
but-unsure-i-like-__all__-at-all-ly y'rs - tim