Dependency analysis programs help us organize code by controlling the dependencies between modules in our code. When one module is a circular dependency of another module, it is a clue to find a way to turn that into a unidirectional dependency or merge two modules into one module.
What is the best dependency analysis tool for Python code?
I recommend using snakefood for creating graphical dependency graphs of Python projects. It detects dependencies nicely enough to immediately see areas for refactorisation. Its usage is pretty straightforward if you read a little bit of documentation.
Of course, you can omit the graph-creation step and receive a dependency dictionary in a file instead.
I don't know what is the best dependency analysis tool. You could look into modulefinder
– it's a module in the standard library that determines the set of modules imported by a script.
Of course, with python you have problems of conditional imports, and even potentially scripts calling __import__
directly, so it may not find everything. This is why tools like py2exe need special help to cope with packages like PIL.
PyStructure – Automated Structure and Dependency Analysis of Python Code
This is used for PyDev's refactoring features. http://pystructure.ifs.hsr.ch/trac/
I'm not sure about the best tool, but dependency analysis is best done using extracting and scanning the python files of the project.
Here is one such tool using the above technique : orkohunter.net/depends