跳转到主要内容

Mccabe检查器,flake8插件

项目描述

Ned的检查McCabe复杂性的脚本。

此模块为Python代码检查器flake8提供插件。

安装

您可以使用以下命令安装、升级或卸载mccabe

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

独立脚本

可以直接使用复杂性检查器

$ 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)

flake8插件

当同时安装flake8 2+和mccabe时,插件在flake8中可用

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

默认情况下,插件是禁用的。使用--max-complexity开关启用它。如果函数的McCabe复杂度高于提供的值,它将发出警告

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

此功能对于检测过度复杂的代码非常有用。根据McCabe的说法,任何超过10的东西都太复杂了。

Flake8具有许多mccabe不提供的功能。Flake8允许用户通过# noqa忽略由插件报告的违规。有关更多信息,请参阅他们的文档。要静默由mccabe报告的违规,请在报告错误的位置(可能是装饰器)的函数定义行上放置# noqa: C901

更改

0.7.0 - 2021-01-23

  • 停止支持所有低于3.6版本的Python

  • 添加对Python 3.8、3.9和3.10的支持

  • 修复Flake8选项声明

0.6.1 - 2017-01-26

  • 修复PathGraphingAstVisitor.default的签名,以匹配ASTVisitor的签名

0.6.0 - 2017-01-23

  • 添加对Python 3.6的支持

  • 修复处理缺失语句类型的问题

0.5.3 - 2016-12-14

  • 报告违规的实际列号而不是行首

0.5.2 - 2016-07-31

  • 当我们自己打开文件时,确保我们始终命名文件变量

0.5.1 - 2016-07-28

  • 在类本身上设置默认最大复杂度为-1

0.5.0 - 2016-05-30

  • PyCon 2016 PDX版本

  • 添加对Flake8 3.0的支持

0.4.0 - 2016-01-27

  • 停止在Python 3.2上测试

  • 从PEP 0492添加对Python 3.5中async/await关键字的异步支持

0.3.1 - 2015-06-14

  • test_mccabe.py包含在版本中。

  • 始终将Flake8入口点的max_complexity值强制转换为整数。

0.3 - 2014-12-17

  • 计算错误:mccabe复杂度从1开始,而不是从2开始。

  • max-complexity值现在是包含的。例如:如果值为10,报告的复杂度也是10,则通过。

  • 添加测试。

0.2.1 - 2013-04-03

  • 在setup.py中不需要setuptools。它解决了pip和Python 3的问题。

0.2 - 2013-02-22

  • 将项目重命名为mccabe

  • 提供flake8.extension setuptools入口点。

  • 从配置文件中读取max-complexity

  • 将参数min_complexity重命名为threshold

0.1 - 2013-02-11

  • 首次发布

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

mccabe-0.7.0.tar.gz (9.7 kB 查看散列值)

上传时间:

构建分发

mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB 查看散列值)

上传时间: Python 2 Python 3

由...