Помимо этого, я хочу отформатировать свое сообщение так, чтобы позже я мог использовать метод split для разделения аргументов и подачи в отчет, как в Excel.
python3 -m pylint --msg-template="{module}{obj}{line}{column}{msg}" init.py
Рассматривали ли вы просто помещать разделители в шаблон сообщения?
Потому что здесь вы просто удаляете все элементы вместе, тогда как c не кажется очень полезным или полезным, но не трудно исправить или:
$ python3 -m pylint --msg-template="{module}{obj}{line}{column}{msg}" test.py
************* Module test
test10Missing module docstring
test20Constant name "my_string" doesn't conform to UPPER_CASE naming style
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)
$ python3 -m pylint --msg-template="{module}|{obj}|{line}|{column}|{msg}" test.py
************* Module test
test||1|0|Missing module docstring
test||2|0|Constant name "my_string" doesn't conform to UPPER_CASE naming style
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)
Хотя параметр -f
, вероятно, более полезен, если вы хотите программно потреблять вывод. pylint -f json
будет выводить всю диагностику в виде массива объекта json, например, с красиво названными свойствами.
Также замените код, подобный C0103, на более значимое имя. Я попробовал приведенную ниже команду из командной строки, но не смог получить правильный ответ
Из документации вы хотите получить шаблон элемента symbol
, "symboli c имя сообщения":
$ pylint test.py
************* Module test
test.py:1:0: C0114: Missing module docstring (missing-module-docstring)
test.py:2:0: C0103: Constant name "my_string" doesn't conform to UPPER_CASE naming style (invalid-name)
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 4.29/10, -4.29)
$ pylint --msg-template='{msg_id}' test.py
************* Module test
C0114
C0103
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)
$ pylint --msg-template='{symbol}' test.py
************* Module test
missing-module-docstring
invalid-name
------------------------------------------------------------------
Your code has been rated at 0.00/10 (previous run: 0.00/10, +0.00)
У меня есть сценарий, когда я хочу запустить команду pylint с использованием файла Python.
Использование подпроцесса для запуска pylint, вероятно, самый простой и лучший поддерживается способ сделать это. Вы можете настроить и запустить pylint.lint.PyLinter
вручную, но, насколько я знаю, это недокументировано, не поддерживается, вызывает абсолютную боль в заднице и имеет тенденцию легко падать (как сбой в цилиндре - что, к сожалению, часто встречается) - будет снести весь сценарий). Раньше мы делали это в $ dayjob и возвращались к запуску CLI в подпроцессе, это намного надежнее.