[Python-Dev] Think a dead import finding script would be handy?
lists at cheimes.de
Sun Aug 17 23:12:52 CEST 2008
Brett Cannon wrote:
> After Christian mentioned how we could speed up interpreter start-up
> by removing some dead imports he found, I decided to write up a quick
> script that generates the AST for a source file and (very roughly)
> tries to find imports that are never used. People think it's worth
> tossing into Tools, even if it is kind of rough? Otherwise I might
> toss it into the sandbox or make a quick Google code project out of
> Regardless, one interesting side-effect of the script is that beyond
> finding some extraneous imports in various places, it also found some
> holes in __all__. I have the script look for the definition of __all__
> and consider an import used if it is listed there.
Zope 3 has various tools for sorting imports or checking for unused
imports. See http://svn.zope.org/Zope3/trunk/utilities/
Python 3.0 currently imports 25 modules on startup, Python 2.6 just 14:
./python -S -c "import sys; print(list(sorted(sys.modules)),
['__main__', '_abcoll', '_codecs', '_fileio', '_thread', '_weakref',
'_weakrefset', 'abc', 'builtins', 'codecs', 'copyreg', 'encodings',
'encodings.aliases', 'encodings.latin_1', 'encodings.utf_8', 'errno',
'genericpath', 'io', 'os', 'os.path', 'posix', 'posixpath', 'signal',
'stat', 'sys', 'zipimport'] 26
os.envirion uses _abcoll.MutableMapping
_weakref + _weakrefset
imported for abc
imported for io.IOBase
imported by os to register some pickle handlers.
Could be removed by placing the code into copyreg instead.
imported early to avoid various bootstrapping issues (IIRC)
Could be removing by delaying the import until search_function()
is called the first time
errno, genericpath, posix, posixpath, stat:
import by os and os.path
Could probably be replaced by a simple and faster C implementation
in posixmodule.c to spare the import
I'm not sure why the module is loaded at all.
I think we can get rid of copyreg and encodings.aliases easily.
More information about the Python-Dev