После моего предыдущего вопроса ("Pylint E0202 False Positive?") здесь является еще один (весьма специфично, я думаю)Pylint E1103 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: экземпляр 'списка' не имеет ни одного члена 'стрип' (но некоторые типы не удалось сделать так)
Входя в трубкуOpen.communicate(), он переходит в _communicate. И действительно, stderr инициализируется списком, однако перед возвратом, если self.universal_newlines истинно, тогда он преобразует список в строку с символами новой строки.
Это случай #pylint: ignore-msg=E1103
или лучше сообщить об этом разработчикам pylint?
сделал вы пытаетесь установить 'pipeOpen. universal_newlines = true'? – Aprillion
или '", ".join (errorData)' вместо 'strip', если это список вместо строки? – Aprillion
@deathApril Да, это делается в Popen(). Будет ли обновлять пример кода, чтобы отразить наш рабочий код –