Pylint: читать со стандартного ввода?

Есть ли способ поручить pylint читать ввод со стандартного ввода?

Строка синопсиса предполагает, что аргумент файла не является обязательным:

pylint [ OPTIONS ] [ <arguments> ]

Но при вызове без аргумента, не являющегося параметром, он печатает

Usage: pylint [options] module_or_package

И в документации нигде не упоминается стандартный ввод.

Это выглядит не стильно в стиле командной строки...


person Konstantin Shemyak    schedule 09.01.2015    source источник
comment
Итак, вы хотите ввести код Python напрямую в pylint? Почему?   -  person jonrsharpe    schedule 09.01.2015
comment
pylint — статический анализатор кода, он не считает ввод и вывод   -  person Cory Kramer    schedule 09.01.2015
comment
Нет, нет. Но, возможно, вы могли бы перенаправить то, что вы отправили бы на его стандартный ввод, в файл перед его вызовом.   -  person Brian Cain    schedule 09.01.2015
comment
@jonrsharpe: я хочу запустить pylint для предыдущей версии файла. В сценарии, который делает это, я могу извлечь эту прошлую версию во временное место. Мой вопрос в том, нужно ли это.   -  person Konstantin Shemyak    schedule 09.01.2015


Ответы (3)


Начиная с Pylint 2.4 вы можете указать дополнительный --from-stdin аргумент к Пылинту.

person Petski    schedule 18.01.2021
comment
Вам также нужно имя, поэтому полная команда echo $code | pylint --from-stdin anyname - person SurpriseDog; 05.05.2021

В настоящее время нет возможности сделать это. Вы можете запросить эту функцию, создав задачу https://bitbucket.org/logilab/pylint/issues, или, что еще лучше, предоставьте запрос на включение, реализующий его.

person sthenault    schedule 12.01.2015
comment
Кто-то предоставил PR, содержащий желаемую функцию. Начиная с Pylint 2.4 вы можете указать дополнительные --from-stdin аргумент для Pylint. См. мой ответ - person Petski; 18.01.2021

В linux/unix/OSX вы можете сделать

pylint [options] /dev/stdin

чтобы pylint читал со стандартного ввода

person Alex Flint    schedule 28.05.2015
comment
Это не работает. Pylint вызывает _llseak() для аргумента файла, который терпит неудачу в /dev/stdin. $ эхо 'х' | pylint /dev/stdin [...] IOError: [Errno 29] Недопустимый поиск - person Konstantin Shemyak; 31.05.2015
comment
Хм, я использую pylint 1.4.3 под python 3.4.3, и у меня это работает. - person Alex Flint; 01.06.2015
comment
Также pylint 1.4.3 под python 2.7.9 работает нормально, так что это не проблема python 2/3. - person Alex Flint; 01.06.2015