[Python-Dev] Re: 2.1 strangness

Skip Montanaro skip@pobox.com (Skip Montanaro)
Thu, 31 May 2001 14:27:12 -0500


    Robin> thanks; I'm still a bit puzzled as to the exact semantics. It
    Robin> just looks wrong. Is __all__ the only way to get things into the
    Robin> * version of import?

Essentially, yes.  If you want to just dispense with it __all__together
(=:-o), you can textually replace __all__ with ___all__ in each of the
standard library modules:

    cd /usr/local/lib/python2.1
    for f in *.py ; do
	sed -e 's/___*all__/___all__/g' < $f > $f.tmp
	mv $f.tmp $f
    done

Note that I didn't touch any files in directories under the basic Lib
directory.

    Robin> Presumably HTTPConnection is being marked as a potential global
    Robin> in the compile phase.

It has nothing to do with module compilation.  The contents of __all__ are a
static thing in the text of the .py file, and thusfar almost entirely due to
me studying the inputs at hand and making a decision about what belonged and
what didn't.  Some python-dev people caught ommissions and added them before
the 2.1 release.  Other than that, the mistakes are all mine.

I had some misgivings about the whole thing during the midst of the task and
still do, but grumbled once and completed it.

Skip