Подтвердить что ты не робот

Как отключить предупреждения "missing docstring" на уровне файлов в Pylint?

Pylint выдает ошибки, которые отсутствуют в некоторых файлах. Я пытаюсь добавить docstrings в каждый класс, метод и функцию, но кажется, что Pylint также проверяет, что файлы должны иметь docstring в начале этого. Могу ли я это отключить? Я хотел бы получить уведомление о docstring в классе, функции или методе, но не обязательно, чтобы файл имел docstring.

(Есть ли термин юридического жаргона, который часто встречается в начале исходного файла источника? Любые примеры? Я не знаю, правильно ли публиковать такой тривиальный вопрос отдельно.)

4b9b3361

Ответ 1

Для модуля Python хорошо иметь строку документации, объясняющую, что делает модуль, что он предоставляет, примеры того, как использовать классы. Это отличается от комментариев, которые вы часто видите в начале файла с информацией об авторском праве и лицензии, который IMO не должен указывать в строке документации (некоторые даже утверждают, что они вообще должны исчезнуть, см., Например, http://hackerboss.com/get-rid-of-templates/)

С помощью пилинта 2.4 и выше вы можете различать различные missing-docstring, используя три следующих под-сообщения:

  • C0114 (missing-module-docstring)
  • C0115 (missing-class-docstring)
  • C0116 (missing-function-docstring)

Таким образом, следующий файл .pylintrc должен работать:

[MASTER]
disable=
    C0114, # missing-module-docstring

Для предыдущих версий Pylint у него нет отдельного кода для различных мест, где могут находиться строки документов, поэтому все, что вы можете сделать, это отключить C0111. Проблема в том, что если вы отключите это в области видимости модуля, то он будет отключен повсюду в модуле (то есть вы не получите никакой строки C для отсутствующей строки документации функции/класса/метода. Что, возможно, нехорошо.

Итак, я предлагаю добавить эту маленькую недостающую строку документации, говоря что-то вроде:

"""
high level support for doing this and that.
"""

Достаточно скоро вы найдете здесь полезные вещи, такие как примеры использования различных классов/функций модуля, которые необязательно принадлежат отдельным строкам документации классов/функций (например, как то, как они взаимодействуют, или что-то вроде краткого руководства).

Ответ 2

Уже поздно, но все же я нашел это полезным. Так что делюсь. Нашел это здесь.

Вы можете добавить флаг "--errors-only" для pylint, чтобы отключить предупреждения.

Для этого зайдите в настройки. Отредактируйте следующую строку:

"python.linting.pylintArgs": []

Как

"python.linting.pylintArgs": ["--errors-only"]

И тебе хорошо идти!

Ответ 3

Я пришел искать ответ, потому что, как сказал @cerin, в проектах Django громоздко и избыточно добавлять модули docstrings к каждому из файлов, которые django автоматически создает при создании нового приложения.

Итак, в качестве обходного пути для того, что pylint не позволяет указать разницу в типах docstring, вы можете сделать это:

pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module

Вам нужно обновить шаблон msg, чтобы при grep вы все равно узнаете имя файла. Это возвращает все другие отсутствующие типы docstring, исключая модули.

Затем вы можете исправить все эти ошибки, а затем просто запустить:

pylint */*.py --disable=missing-docstring

Ответ 4

Нет. В настоящее время Pylint не позволяет вам различать предупреждения строки документа.

Однако вы можете использовать flake8 для проверки всего кода Python вместе с расширением doc-string, чтобы игнорировать это предупреждение.

Установите расширение doc-string с помощью pip (внутренне оно использует pydocstyle).

pip install flake8_docstrings

Затем вы можете просто использовать переключатель --ignore D100. Например, flake8 file.py --ignore D100

Ответ 5

Я думаю, что исправление относительно легко, не отключая эту функцию.

def kos_root():
    """Return the pathname of the KOS root directory."""
    global _kos_root
    if _kos_root: return _kos_root

Все, что вам нужно сделать, это добавить в каждую функцию тройную двойную кавычку.

Ответ 6

Edit "C:\Users\Your User\AppData\Roaming\Code\User\settings.json" and add 
python.linting.pylintArgs lines at the end as shown below:

{
    "team.showWelcomeMessage": false,
    "python.dataScience.sendSelectionToInteractiveWindow": true,
    "git.enableSmartCommit": true,
    "powershell.codeFormatting.useCorrectCasing": true,
    "files.autoSave": "onWindowChange",
    "python.linting.pylintArgs": [
        "--load-plugins=pylint_django",
        "--errors-only"
    ],
}

Ответ 7

С помощью пилинта 2.4 и выше вы можете различать различные missing-docstring, используя три следующих под-сообщения:

  • C0114 (missing-module-docstring)
  • C0115 (missing-class-docstring)
  • C0116 (missing-function-docstring)

Таким образом, следующий файл .pylintrc должен работать:

[MASTER]
disable=
    C0114, # missing-module-docstring