On 22/04/2006 8:18 AM, mwt wrote: > When I'm rewriting code (cutting and pasting pieces from earlier > modules)
Instead of propagating multiple copies of source code, consider refactoring those modules so that top-level functions and classes can be used in other modules. > is there a quick way to determine if I have imported all the > necessary modules? I am used to working in Java, where the compiler > will tell you if you haven't imported everything, That's a clever design. It would be even better if it just shut up and did the imports for you :-) > and also Eclipse, > which has the handy "organize imports" feature. This is not the case in > Python, since it's not compiled, of course, and also running it might > not insure you've got all the imports, unless you go through every > possible usage scenario -- which in some cases is quite a few, and > could take a long time. This is called "testing". Yes, it could take a long time. > > So what I'm looking for is a command, like "check dependencies" or > something, which will list all the modules needed for a source module > to run. > Consider pychecker and pylint. I haven't tried pylint, but pychecker does what you want and a whole lot more: C:\junk>type miss_import.py # need to import re, but forgot def my_isdigit(s): return bool(re.match(r"\d+", s)) C:\junk>pychecker miss_import C:\junk>c:\python24\python.exe c:\python24\Lib\site-packages\pychecker\checker.py miss_import Processing miss_import... Warnings... miss_import.py:3: No global (re) found C:\junk> -- http://mail.python.org/mailman/listinfo/python-list