Pylint E1103误报?

时间:2012-03-09 09:56:56

标签: python pylint

按照我之前的问题("Pylint E0202 False Positive?"),这是另一个问题(我猜是非常具体)

我们正在使用模块子流程来执行一个好的子流程 创建示例代码导致以下结果:

"Example code for E1103"

import subprocess

pipeOpen = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

(responseData, errorData) = pipeOpen.communicate()

print "Error code: '%s'. Error data: '%s'" % (pipeOpen.returncode, errorData.strip("\n").strip("\r"))

Pylint会说:

  

E1103:9,67:'list'的实例没有'strip'成员(但无法推断某些类型)

查看pipeOpen.communicate(),它归结为_communicate。实际上,stderr初始化为一个列表,但是,如果self.universal_newlines为true则返回之前它会将列表转换为带换行符的字符串。

这是#pylint: ignore-msg=E1103还是更好的情况向pylint devs报告?

1 个答案:

答案 0 :(得分:1)

好吧,如果print(pipeOpen.universal_newlines and hasattr(file, 'newlines'))返回True并且在实际运行代码时没有出现任何错误,那么您应该向pylint开发人员报告此消息+同时忽略该消息