PySmell is a Python IDE (Integrated Development Environment) completion helper.
It tries to statically analyze Python source code, without executing it, and generates information about a project's structure that IDE tools can use.
PySmell currently supports Vim, Emacs and TextMate. It can be integrated with any editor that can run Python scripts and has an auto-complete API.
Before you invoke PySmell, you need to generate a PYSMELLTAGS file:
If you want to specifically include or exclude some files or directories (eg. tests), you can use:
pysmell [Package Package File File ...] [-x Excluded Excluded ...]
Check for more options by invoking pysmell without any arguments
Using external libraries:
PySmell can handle completions of external libraries, like the Standard Library and Django.
To use external libraries, you have to first analyze the libraries you want, eg. for stdlib:
pysmell . -x site-packages test -o ~/PYSMELLTAGS.stdlib
This will create PYSMELLTAGS.stdlib in your HOME. Copy that in the root of your project, and repeat for other libraries by changing the extension. Note that you still have to have a root PYSMELLTAGS file with no extension at the very root of your project.