跳转到主要内容

一个flake8扩展,用于检查循环复杂度并在运行时计算最大复杂度限制

项目描述

flake8-adjustable-complexity

Build Status Maintainability Test Coverage

flake8的一个扩展,用于报告具有糟糕变量名的复杂函数。

有时你希望在某个函数内部使用过于通用的变量名。在这种情况下,你希望确保该函数比其他函数更简单,这样读者就不必长时间记住变量的含义以及其他逻辑。

此插件为每个函数单独计算最大允许的循环复杂度。默认值为7,对于函数内部黑名单中的每个变量,它会减少2。如果实际复杂度超过计算出的最大复杂度,则插件会报告错误。

目前报告以下错误

代码 描述
CAC001 func 太复杂(complexity > 最大允许复杂度
CAC002 func 太复杂(complexity)。变量命名惩罚过高(惩罚

安装

pip install flake8-adjustable-complexity

配置

该插件有以下配置选项

  • --max-mccabe-complexity(或 --max-adjustable-complexity)- 最大允许的圈复杂度。
  • --per-path-max-adjustable-complexity - 每个路径的复杂度设置。选项的值必须是逗号分隔的 <path>:<complexity> 对的列表。
  • --var-names-extra-blacklist - 要黑名单的坏变量名的逗号分隔列表。每个变量都会影响最大允许的复杂度。
  • --var-names-whitelist - 要白名单的坏变量名的逗号分隔列表。

所有选项也可以通过 setup.cfg 中的 [flake8] 部分指定。

示例

示例文件

# test.py

def foo():
    for vars in range(5):
        for info in range(5):
            for obj in range(5):
                pass

用法

$ flake8 test.py
test.py:1:1: CAC001 foo is too complex (4 > 1)

贡献

我们希望您能为我们的项目做出贡献。这很简单

  1. 创建一个包含您发现的错误或您提出的建议的问题。等待维护者的批准。
  2. 创建一个拉取请求。确保所有检查都是绿色的。
  3. 如有必要,修复审查评论。
  4. 表现得很好。

以下是一些有用的提示

项目详情


下载文件

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

源代码分发

flake8_adjustable_complexity-0.0.6.tar.gz (8.5 kB 查看哈希值

上传时间 源代码

构建分发

flake8_adjustable_complexity-0.0.6-py3-none-any.whl (9.0 kB 查看哈希值

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页