扩展pylint以处理模板变量?

时间:2013-08-29 01:40:33

标签: python pylint

我编写了say模块,使格式化打印更简单,更直接。 E.g。

say("{len(items)} retrieved; {n_errors} encountered")

而不是:

print("{0} retrieved; {1} encountered".format(len(items), n_errors))

那部分进展顺利。但我喜欢运行pylint寻找陷阱和错误。不幸的是,许多数据值的构造仅仅是因为它们在输出操作中的用处,并且pylint不能“看到”在say调用中使用(或任何其他模板输出机制)构成变量的真实用途。可能会导致一波又一波的W0612(未使用变量)警告。

可以简单地放入忽略评论,但这似乎是逆行的。我宁愿只是扩展pylint来理解事实上使用say()模板中使用的变量。

.../pylint/checkers/variables.py似乎是添加此检查的地方,但我对代码库不熟悉。确实如何正确使用关于如何注册格式样式字符串中使用的变量的任何提示或建议?

1 个答案:

答案 0 :(得分:0)

在'变量'检查器中,已使用的变量从self._to_consume[-1]列表中删除(self是检查器和[-1],因为这是每个函数变量列表的堆栈。

无论如何,Alex是正确的,关于这个主题的进一步讨论应该转到代码质量的邮件列表。