sigmavirus24 / mccabe

McCabe complexity checker for Python

Home Page:pypi.python.org/pypi/mccabe

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

McCabe complexity checker

Ned's script to check McCabe complexity.

This module provides a plugin for flake8, the Python code checker.

Installation

You can install, upgrade, uninstall mccabe with these commands:

$ pip install mccabe
$ pip install --upgrade mccabe
$ pip uninstall mccabe

Standalone script

The complexity checker can be used directly:

$ python -m mccabe --min 5 mccabe.py
("185:1: 'PathGraphingAstVisitor.visitIf'", 5)
("71:1: 'PathGraph.to_dot'", 5)
("245:1: 'McCabeChecker.run'", 5)
("283:1: 'main'", 7)
("203:1: 'PathGraphingAstVisitor.visitTryExcept'", 5)
("257:1: 'get_code_complexity'", 5)

Plugin for Flake8

When both flake8 2.0 and mccabe are installed, the plugin is available in flake8:

$ flake8 --version
2.0 (pep8: 1.4.2, pyflakes: 0.6.1, mccabe: 0.2)

By default the plugin is disabled. Use the --max-complexity switch to enable it. It will emit a warning if the McCabe complexity of a function is higher that the value:

$ flake8 --max-complexity 10 coolproject
...
coolproject/mod.py:1204:1: C901 'CoolFactory.prepare' is too complex (14)

This feature is quite useful to detect over-complex code. According to McCabe, anything that goes beyond 10 is too complex.

Links

Changes

0.3.1 - 2015-06-14

  • Include test_mccabe.py in releases.
  • Always coerce the max_complexity value from Flake8's entry-point to an integer.

0.3 - 2014-12-17

  • Computation was wrong: the mccabe complexity starts at 1, not 2.
  • The max-complexity value is now inclusive. E.g.: if the value is 10 and the reported complexity is 10, then it passes.
  • Add tests.

0.2.1 - 2013-04-03

  • Do not require setuptools in setup.py. It works around an issue with pip and Python 3.

0.2 - 2013-02-22

  • Rename project to mccabe.
  • Provide flake8.extension setuptools entry point.
  • Read max-complexity from the configuration file.
  • Rename argument min_complexity to threshold.

0.1 - 2013-02-11

  • First release

About

McCabe complexity checker for Python

pypi.python.org/pypi/mccabe

License:Other


Languages

Language:Python 100.0%