Repolode
PyCQA

PyCQA/mccabe

一个计算 Python 函数 McCabe 圈复杂度的工具,可作为 flake8 插件使用,用于发现过于复杂的代码。

Star
684
Fork
70
未关闭 Issue
12
最近提交
26天前

这是什么?

mccabe 用于计算 Python 代码的 McCabe(圈复杂度)指标,即一个函数中相互独立的执行路径数量。分数越高,说明函数越难阅读和测试。项目可以直接对文件运行,列出复杂度超过指定阈值的函数。

它也是 flake8 的插件。安装后默认关闭,通过 --max-complexity 参数启用,当某个函数的复杂度超过设定值时,会报告 C901 警告。

项目隶属于 PyCQA 组织,支持较新的 Python 3 版本;0.7.0 版本起已不再支持 3.6 以下的 Python 版本。

核心功能

  • 01为 Python 函数和方法计算 McCabe 圈复杂度。
  • 02可通过 python -m mccabe 独立运行,并用 --min 设置阈值。
  • 03通过 --max-complexity 参数与 flake8 集成,报告 C901 警告。
  • 04支持 async/await 语法及较新的 Python 3 版本。

适用场景

  • 在代码审查或持续集成中找出过于复杂的函数。
  • 通过 flake8 配置在整个 Python 项目中统一复杂度上限。
  • 在重构前定位模块中最复杂的函数。

快速上手

  1. 1

    使用 pip 从 PyPI 安装 mccabe

    pip install mccabe
  2. 2

    在 Python 文件上运行独立检查器,列出复杂度较高的函数

    python -m mccabe --min 5 mccabe.py
  3. 3

    将其作为 flake8 插件使用,并设置最大复杂度

    flake8 --max-complexity 10 coolproject

使用前须知

  • 项目元数据中未明确声明许可证,商业使用前请查看许可证文件。
  • 插件检查默认关闭,需要通过 --max-complexity 启用。

收录于专题

标签

#python#code-quality#cyclomatic-complexity#flake8#linter#static-analysis#complexity#complexity-analysis#flake8-extensions#flake8-plugin

常见问题

mccabe 是什么?
一个计算 Python 函数 McCabe 圈复杂度的工具,可作为 flake8 插件使用,用于发现过于复杂的代码。 mccabe 用于计算 Python 代码的 McCabe(圈复杂度)指标,即一个函数中相互独立的执行路径数量。分数越高,说明函数越难阅读和测试。项目可以直接对文件运行,列出复杂度超过指定阈值的函数。
mccabe 可以免费使用吗?用的什么许可证?
mccabe 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
mccabe 还在维护吗?
活跃维护中。mccabe 最近一次提交是在 2026年10月12日。
mccabe 适合用来做什么?
在代码审查或持续集成中找出过于复杂的函数。 通过 flake8 配置在整个 Python 项目中统一复杂度上限。 在重构前定位模块中最复杂的函数。
mccabe 怎么安装和运行?
使用 pip 从 PyPI 安装 mccabe: pip install mccabe 在 Python 文件上运行独立检查器,列出复杂度较高的函数: python -m mccabe --min 5 mccabe.py 将其作为 flake8 插件使用,并设置最大复杂度: flake8 --max-complexity 10 coolproject
在哪里获取 mccabe?
源代码和安装说明在 GitHub 上:https://github.com/PyCQA/mccabe

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目