[英]How to properly line-wrap a django statement to satisfy flake8?
这段代码从flake8获取E501 line too long (85 > 79 characters)
:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=worst_zscore_min_filter)
这段代码使E251 unexpected spaces around keyword / parameter equals
:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=
worst_zscore_min_filter)
满足flake8的正确方法是什么?
编辑 :我最终告诉flake8用noqa忽略。 我以为它不起作用,但是我只需要更仔细地阅读文档即可 。
假设您不能选择更多的理智的变量名称,因为它们是机器生成的,我不会担心,只需告诉pep8
(或pycodestyle
,或任何flake8
实际用于检查PEP-8一致性的flake8
)来忽略该行:
qobjs &= Q(...) # noqa
(更新: # noqa: E501
可以让您忽略# noqa: E501
,但仍要检查其他问题,而不是完全忽略行。)
如果仍使用默认的最大线宽79,请考虑使用更长的线。 PEP-8实际上只要求标准库中的代码具有该宽度,并且明确指出团队可能同意更长的宽度。
您得到的错误是因为=
之后的换行符被计为空格,就像您键入Q(late...gte= worse...filter)
。 您可以使用显式的行继续:
qobjs &= Q(
latest_visit__visitstatistics__worst_zscore__gte=\
worst_zscore_min_filter)
或使用较短的临时名称:
x = 'latest_visit__visitstatistics__worst_zscore__gte'
y = worst_zscore_min_filter
qobjs &= Q(**{x: y})
但我的选择是仅停止尝试flake8
处理那些本来就不是人类可读的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.