通过代码计算Python函数认知复杂度的库
项目描述
congnitive-complexity
通过代码计算Python函数认知复杂度的库。
安装
pip install cognitive_complexity
使用
>>> import ast
>>> funcdef = ast.parse("""
... def f(a):
... return a * f(a - 1) # +1 for recursion
... """).body[0]
>>> from cognitive_complexity.api import get_cognitive_complexity
>>> get_cognitive_complexity(funcdef)
1
Flake8-Cognitive-Complexity 扩展
可能是使用此库的最常见方法(尤其是如果您已经使用Flake8代码检查器),就是使用flake8-cognitive-complexity扩展。如果您安装了此扩展后运行Flake8,Flake8会通知您代码是否过于复杂。有关更多详细信息和方法,请访问flake8-cognitive-complexity扩展仓库。
什么是认知复杂度
以下是一些关于认知复杂度的阅读资料
- 认知复杂度,因为可测试性不等于可理解性;
- 认知复杂度:一种衡量可理解性的新方法,G. Ann Campbell的白皮书;
- 认知复杂度:可维护代码重构的新指南;
- 认知复杂度来自CodeClimate文档;
- 您的代码人类可读吗?认知复杂度告诉您.
实现细节
这并不是对G. Ann Campbell提出的原始算法的精确实现,但它给出了相当相似的结果。该算法为打破控制流、嵌套、递归、栈逻辑运算等提供了复杂性点。
贡献
我们非常欢迎您为我们的项目做出贡献。这很简单
- 创建一个关于您发现的错误或您提出的建议的问题。等待维护者的批准。
- 创建一个拉取请求。确保所有检查都为绿色。
- 如有必要,修复审查评论。
- 表现得很好。
以下是一些有用的提示
- 您可以使用
make check
运行所有检查和测试。请在TravisCI之前完成。 - 我们使用BestDoctor python styleguide。抱歉,目前风格指南只有俄语版本。
- 我们尊重Django CoC。做出柔软,而不是胡说八道。
项目详情
关闭
cognitive_complexity-1.3.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a0cfbd47dee0b19f4056f892389f501694b205c3af69fb703cc744541e03dde5 |
|
MD5 | eb2718408f8667e6ee11143aa04340fe |
|
BLAKE2b-256 | 6aff3cd46792fcbf742458083527407bc336efe382b168595583a06c70bf8e54 |