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第三方库


热门话题
带Maven的Eclipse Java存储库:缺少工件:compile   java如何以编程方式停止RMI服务器并通知所有客户端   java Roboguice抛出ClassNotFoundException:AnnotationDatabaseImpl   java为什么lucene 4.0删除IndexWriter类的两个构造函数?   nls如何避免java项目上不需要的日志消息?   测试无法在Selenium Webdriver(java)中定位iframe   使用XML的java servlet   java如何使用jxl用****屏蔽单元格   java使用SQLite从数据库中选择“没有这样的列”   导入扫描程序后出现java编译错误   插入查询的java空指针异常   使用创建PostgreSQL数据库。Java应用中的sql脚本   java使用jsoup将HTML解析为格式化的明文