Skip to main content

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.

Changes

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 flint-mccabe 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

Metadata

Release files for mccabe 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mccabe 0.2.1
File Size Uploaded
mccabe-0.2.1.tar.gz 5.0 kB Details

Release files / mccabe-0.2.1.tar.gz

Download URL mccabe-0.2.1.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5a2a170e47de5593a6abfae1e9542bd2c3924ac62bbe4e6ed96c953c0352243a
BLAKE2b-256 checksum
How to use checksums
ecb179c08edbb2a652f2f697c2b71dc08ede14e615bf6aa325237a32e0ed36f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3

2 release files

This release

0.2.1 This release

1 release file

0.2

1 release file

0.0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page