McCabe Checker,Plugin for Flak8

mccabe的Python项目详细描述


脚本检查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.0mccabe时,插件是 提供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的事情都太复杂了。

更改

0.6.1-2017-01-26

  • 修复PathGraphingAstVisitor.default的签名以匹配该签名 对于ASTVisitor

0.6.0-2017-01-23

  • 添加对Python3.6的支持
  • 修复丢失语句类型的处理

0.5.3-2016年12月14日

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

0.5.2-2016年7月31日

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

0.5.1-2016年7月28日

    将默认最大复杂度设置为类本身为-1

0.5.0-2016年5月30日

  • Pycon 2016 PDX发布版
  • 添加对Flake8 3.0的支持

0.4.0-2016-01-27

  • 停止对Python3.2的测试
  • 在python 3.5上添加对来自pep 0492的async/await关键字的支持

0.3.1-2015年6月14日

  • 在发行版中包含test_mccabe.py
  • 始终将max_complexity值从flake8的入口点强制为 整数。

0.3-2014年12月17日

    计算是错误的:McCabe复杂度从1开始,而不是2。
  • max-complexity值现在包含在内。例如:如果 值为10,报告的复杂度为10,则通过。
  • 添加测试。

0.2.1-2013年4月3日

  • 在setup.py中不需要setuptools。它解决了一个问题 使用pip和python 3。

0.2-2013年2月22日

  • 将项目重命名为mccabe
  • 提供flake8.extensionsetuptools入口点。
  • 从配置文件中读取max-complexity
  • 将参数min_complexity重命名为threshold

0.1-2013年2月11日

  • 首次发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
运行ClassSpy java时发生反射错误   java Android ContextWrapper fileList()看不到我的文件   java使用JAXWS构建大型MTOM/XOP消息   eclipse如何使用ACM库(控制台程序)编写Java程序?   java m2eclipse插件搜索在配置为Nexus时不会给出结果   java Scanner只识别文本文件中的某些行,而不识别其他行   java如何从smartwatch启动活动或服务   java检查数组是否至少有两个具有特定值的元素   JAVA网URL编码器/解码器替代方案   Java中通过引用传递对象   spring如何在使用JavaJSON修补程序进行修补时禁止更新字段   使用java将海量数据存储到mysql的最佳方法   java字符串作为不可变对象   java我无法访问tomcat服务器(localhost),甚至无法访问mysql   java While循环条件未给出预期结果   java如何启动传递图像uri的新活动   Java中类定义在方法中的使用   Java程序在Ubuntu中运行我的另一个程序