跳转到主要内容

一个用于检查表达式复杂性的flake8扩展

项目描述

flake8-expression-complexity

Build Status Maintainability Test Coverage PyPI version PyPI - Python Version

一个用于flake8的验证表达式复杂性的扩展。

将代码分割成表达式并按照复杂度进行评分。如果表达式比阈值复杂,则触发错误。

默认复杂度为7,可以通过--max-expression-complexity选项进行配置。

由于Django ORM查询可以生成长且可读的表达式,检查器可以跳过它们。要启用此行为,请使用--ignore-django-orm-queries-complexity选项。

安装

pip install flake8-expression-complexity

示例

if (
    (user and user.is_authorized)
    and user.subscriptions.filter(start_date__lt=today, end_date__gt=today).exists()
    and (
        user.total_credits_added
        - Check.objects.filter(user=user).aggregate(Sum('price'))['check__sum']
    )
    and UserAction.objects.filter(user=user).last().datetime > today - datetime.timedelta(days=10)
):
    ...

用法

$ flake8 --max-expression-complexity=3 test.py
text.py:2:5: ECE001 Expression is too complex (7.0 > 3)

错误代码

错误代码 描述
ECE001 表达式过于复杂(X > Y)

贡献

我们非常欢迎您为我们的项目做出贡献。这很简单

  1. 创建一个包含您发现的bug或您提出的建议的问题。等待维护者的批准。
  2. 创建一个pull request。确保所有检查都是绿色的。
  3. 如果有任何审阅评论,请修复。
  4. 表现得棒棒的。

以下是一些有用的提示

项目详情


下载文件

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

源代码分发

flake8_expression_complexity-0.0.11.tar.gz (7.1 kB 查看哈希值)

上传时间 源代码

构建分发

flake8_expression_complexity-0.0.11-py3-none-any.whl (8.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

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