Skip to content

zgoda-mobica/decomplexator

Repository files navigation

Python complexity calculations

This single package joins forces of McCabe and Campbell to provide both cyclomatic and cognitive complexity measurement of Python code.

Invocation

usage: run.py [-h] [-i FILENAME] [-d PROJECT_DIR] [-c] [--clear]

Python code complexity analyzer

optional arguments:
  -h, --help            show this help message and exit
  -i FILENAME, --input-file FILENAME
                        Python file to analyze
  -d PROJECT_DIR, --directory PROJECT_DIR
                        directory to analyze
  -c, --continuous      compare current results with previous and store for
                        future runs
  --clear               clean stored results

The program should work on Windows although it has been tested only on Linux and OS X.

Internals

Data is stored in $XDG_DATA_HOME/cog.pickle. According to XDG spec, this is equivalent to $HOME/.local/share.

Known limitations

  • redbaron chokes on some new Python 3 syntax features, like star in an atom

Licensing

Licensed under MIT license.

This program uses cognitive complexity module by Simone Papandrea which is licensed under Apache 2.0 license. Code in this module has been cleaned up but no other changes have been made to complexity analyzer class.