保证软件质量的lint
ebb-lint的Python项目详细描述
落棉
这是一个 flake8 插件! 这是皮棉的风格问题! 要激活它:
$ pip install ebb-lint
配置
配置只会导致错误或松懈, 因此,建议保持默认值不变。 然而, 有两个配置选项可用于处理长行。 两者都可以指定 在命令行上,通过向flake8传递标志, 或者使用典型的配置方法
< DL>在编写一次性脚本时, 要根据落潮的愿望使用打印, 在文件顶部添加注释以禁用该警告:
# I sincerely swear that this is one-off code.
此注释必须位于代码中任何语句的上方 (包括docstrings) 单独在一条线上。
核质量保证
ebb lint 以极端偏见禁用 \noqa 注释。 功能被过度使用和过度通用; 不能只将某些错误标记为可接受, 因此, 标记为 noqa 的行有可能完全掩盖一个不同的错误。
错误
所有可能的错误, 按类别组织:
多行文档字符串必须类似于此:
def func(): """ Spam eggs. Also, sausage. """
l2:可疑语法
python的一些特性弊大于利。 这些错误在程序员可能打算做一件事的情况下捕获潜在的问题, 但却不小心做了别的事。
< DL>隐式字符串文本连接 (即"垃圾邮件""鸡蛋" 同构于"垃圾邮件" ) 仅当要连接的每个字符串都用括号括起来时才允许使用, 括号中只包含字符串文本。
没关系:
some_string = ('spam {} ' 'eggs').format('spam')
这不是:
some_list = [ 'spam' 'eggs', 'sausage', ]
pass 仅在不包含其他语句的非可选套件中是必需的。 如果一个套件包含另一个语句, 添加 pass 是多余的。 docstrings算作语句。
非自选套房是, 例如, 定义 , 类 , 如果 ,则为 。 否则 和 最后 套房是可选的, 因此,这是不必要的:
if predicate(): do_something() else: pass try: do_something() finally: pass
返回, 删除 , 升高 , 断言 , 打印 (在python 2中,没有打印功能) 产量 , 以及从 是陈述, 不是功能, 因此, 不需要括号。
没关系:
return ( a + b)
这不是:
return(a + b)
没关系:
$ pip install ebb-lint0
这不是:
$ pip install ebb-lint1
- 想在课堂上做点什么,但没有实例, 在这种情况下, @classmethod 是正确的解决方案。
- 想要在类上"命名"函数, 但这不是Java, 因此,改为模块范围的函数。
单独使用静态方法不是问题; 这完全可以用于测试:
$ pip install ebb-lint2
l3:格式化
< DL>
l301
文件必须以尾随的换行符结尾。
-
l302
线路太长。
大于硬最大行长度的行
(被认为是"硬限制",
默认为119列)
永远不允许。
大于最大线路长度的线路
(被认为是"软限制",
默认为79列)
当且仅当行包含超过一定百分比的字符串文本
或
注释时才允许。
两者的百分比没有合并。
允许的"特定百分比"是允许的体积百分比,
默认为67%。
对于以下所有示例,
软限制是15列,
硬限制是25列。
不允许,因为,
20个字符,
线路超过软限制,
整行字符数只有15%的字符串文本:
$ pip install ebb-lint
3
允许,因为整行字符数是80%的字符串文本:
$ pip install ebb-lint
4
允许,因为整行按字符计数是75%的注释:
$ pip install ebb-lint
5
不允许,因为整行按字符计数是20%的注释和50%的字符串文本,
而这两个比例都没有达到或超过67%:
$ pip install ebb-lint
6
不允许,因为整行有26个字符,
超过硬限制:
$ pip install ebb-lint
7
可以配置最大硬线长度和允许体积百分比;
请参阅配置部分。
-
l303
-
noqa
被忽略,
因此,
应删除NOQA的注释,以减少无意义的噪音。
线路太长。
大于硬最大行长度的行 (被认为是"硬限制", 默认为119列) 永远不允许。 大于最大线路长度的线路 (被认为是"软限制", 默认为79列) 当且仅当行包含超过一定百分比的字符串文本 或 注释时才允许。 两者的百分比没有合并。 允许的"特定百分比"是允许的体积百分比, 默认为67%。
对于以下所有示例, 软限制是15列, 硬限制是25列。
不允许,因为, 20个字符, 线路超过软限制, 整行字符数只有15%的字符串文本:
$ pip install ebb-lint3
允许,因为整行字符数是80%的字符串文本:
$ pip install ebb-lint4
允许,因为整行按字符计数是75%的注释:
$ pip install ebb-lint5
不允许,因为整行按字符计数是20%的注释和50%的字符串文本, 而这两个比例都没有达到或超过67%:
$ pip install ebb-lint6
不允许,因为整行有26个字符, 超过硬限制:
$ pip install ebb-lint7
可以配置最大硬线长度和允许体积百分比; 请参阅配置部分。
贡献
请在问题跟踪程序上提交问题,并遵循我们的行为准则。