How can I analyze Python code to identify problematic areas?
Solution 1:
For measuring cyclomatic complexity, there's a nice tool available at traceback.org. The page also gives a good overview of how to interpret the results.
+1 for pylint. It is great at verifying adherence to coding standards (be it PEP8 or your own organization's variant), which can in the end help to reduce cyclomatic complexity.
Solution 2:
For cyclomatic complexity you can use radon
: https://github.com/rubik/radon
(Use pip
to install it: pip install radon
)
Additionally it also has these features:
- raw metrics (these include SLOC, comment lines, blank lines, &c.)
- Halstead metrics (all of them)
- Maintainability Index (the one used in Visual Studio)
Solution 3:
For static analysis there is pylint and pychecker. Personally I use pylint as it seems to be more comprehensive than pychecker.
For cyclomatic complexity you can try this perl program, or this article which introduces a python program to do the same
Solution 4:
Pycana works like charm when you need to understand a new project!
PyCAna (Python Code Analyzer) is a fancy name for a simple code analyzer for python that creates a class diagram after executing your code.
See how it works: http://pycana.sourceforge.net/
output:
Solution 5:
Thanks to Pydev, you can integrate pylint in the Eclipse IDE really easily and get a code report each time you save a modified file.