按照我刚才的问题("Pylint E0202 False Positive?")这里是另一个(非常具体的我猜的)Pylint E1103假阳性?
我们正在使用的模块子进程来执行,那么,子进程。
创建的示例代码导致以下:
"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:的 '列表' 实例没有 '条' 构件(但某些类型的无法推断)
寻找到pipeOpen.communicate()它下降到_communicate。事实上,stderr被初始化为一个列表,但是,在返回之前,如果self.universal_newlines为true,那么它会将列表转换为带有换行符的字符串。
这是#pylint: ignore-msg=E1103
或更好的报告给pylint开发者的案例吗?
确实忽略该消息您尝试设置'pipeOpen。 universal_newlines = true'? – Aprillion 2012-03-09 10:08:29
或'',“.join(errorData)'而不是'strip'如果它是一个列表而不是一个字符串? – Aprillion 2012-03-09 10:21:41
@deathApril是的,这是在Popen()中完成的。将更新代码示例以反映我们的工作代码 – 2012-03-09 11:18:00