programing

Pylint에서 파일 수준에서 "문서 문자열 누락" 경고를 비활성화하려면 어떻게 해야 합니까?

cafebook 2023. 7. 7. 21:06
반응형

Pylint에서 파일 수준에서 "문서 문자열 누락" 경고를 비활성화하려면 어떻게 해야 합니까?

Pylint는 일부 파일에 문서 문자열이 누락되었다는 오류를 발생시킵니다.각 클래스, 메서드, 함수에 docstring을 추가하려고 하는데, 파일의 시작 부분에 docstring이 있어야 하는지 Pylint에서도 확인하는 것 같습니다.어떻게든 이것을 비활성화할 수 있습니까?

클래스, 함수 또는 메서드 내에 docstring이 누락되었음을 알려주고 싶지만 파일에 docstring이 있어야 하는 것은 필수 사항이 아닙니다.

(독자적인 소스 파일의 시작 부분에서 흔히 볼 수 있는 법률 용어가 있습니까?어떤 예가 있습니까?그런 사소한 질문을 따로 올려도 괜찮은지 모르겠습니다.)

Python 모듈에는 모듈이 수행하는 작업, 제공하는 작업, 클래스 사용 방법에 대한 예제를 설명하는 문서 문자열이 있으면 좋습니다.이는 IMO가 문서 문자열에 포함되지 않아야 하는 저작권 및 라이센스 정보를 제공하는 파일의 시작 부분에서 자주 볼 수 있는 주석과는 다릅니다(일부에서는 아예 사라져야 한다고 주장하기도 합니다. 예를 참조하십시오.소스 코드 템플릿 제거)

2한 Pylint 2.4를 구분할 수 .missing-docstring다음 세 가지 하위 키워드를 사용합니다.

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

의 그서다음은..pylintrc파일이 작동해야 합니다.

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

이전 버전의 Pylint의 경우 docstring이 발생할 수 있는 다양한 장소에 대한 별도의 코드가 없으므로 C0111을 비활성화하는 것이 가능합니다.문제는 모듈 범위에서 이를 비활성화하면 모듈의 모든 곳에서 비활성화된다는 것입니다(즉, 누락된 함수/클래스/메소드 docstring에 대한 C 라인이 표시되지 않음).그것은 거의 틀림없이 좋지 않습니다.

그래서 저는 작은 누락된 문서 문자열을 추가하여 다음과 같은 말을 하는 것을 제안합니다.

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

곧, 클래스/기능의 개별 문서 문자열에 속하지 않는 모듈의 다양한 클래스/기능을 사용하는 방법에 대한 예를 제공하는 것과 같은 유용한 내용을 찾을 수 있을 것입니다(예: 클래스/기능의 상호 작용 방법 또는 빠른 시작 가이드).

의견에서 followben이 언급했듯이, 더 나은 해결책은 사용하지 않고 사용하지 않을 규칙을 비활성화하는 것입니다.--errors-only이 작업은 다음을 통해 수행할 수 있습니다.--disable=<msg ids>, -d <msg ids>.

메시지 ID 목록은 여기에서 확인할 수 있습니다.질문에 언급된 특정 오류에 대해 메시지 ID는C0111.

사용용을 사용하는 --disable=IDE 또는 텍스트 편집기 중에서 param을 선택하면 방법을 찾아야 합니다.

Code는 Code 의이를다음추됩니다에 .settings.json:

"python.linting.pylintArgs": ["--disable=C0111"]

이러한 경고를 사용하지 않도록 설정할 파일의 시작 부분에 다음 행을 입력합니다.

# pylint: disable=missing-module-docstring
# pylint: disable=missing-class-docstring
# pylint: disable=missing-function-docstring

@Milovan Tomassević가 위에 올린 글에 추가하고 싶을 뿐입니다.사용하기로 결정했습니다.python.linting.pylintArgsVSCode의 글로벌 환경에서 사용하는 것보다 훨씬 편리했기 때문입니다..pylintrcjava.
예: " " " " " ID " 를 사용합니다.C0115을 대신 했습니다.), 대신기이사용습니다했름을호▁),다니▁i.

Pylint 옵션 스위치에 대한 자세한 내용은 다음과 같습니다.

{
    "python.linting.pylintArgs": [
        "--disable=missing-class-docstring",
        "--disable=missing-function-docstring"
    ]
}

는 Cerin이 말했듯이 Django 프로젝트에서 Django가 새 응용 프로그램을 만들 때 자동으로 생성하는 모든 파일에 모듈 문서 문자열을 추가하는 것이 번거롭고 중복되기 때문에 답을 찾으러 왔습니다.

따라서 Pylint가 문서 문자열 유형의 차이를 지정하지 못하도록 하는 해결 방법으로 다음을 수행할 수 있습니다.

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

grep할 때 파일 이름을 계속 알 수 있도록 msg-template를 업데이트해야 합니다.모듈을 제외한 나머지 누락된 문서 문자열 유형을 모두 반환합니다.

그런 다음 이러한 오류를 모두 수정한 후 다음을 실행할 수 있습니다.

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

Pylint 2.4 이상을 사용하면 다양한 기능을 구분할 수 있습니다.missing-docstring다음 세 가지 하위 키워드를 사용합니다.

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

의 그서다음은..pylintrc파일이 작동해야 합니다.

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

이 기능을 비활성화하지 않고도 수정이 비교적 쉽다고 생각합니다.

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

모든 함수에 트리플 이중 따옴표 문자열을 추가하기만 하면 됩니다.

, 20을 하면, Pylint 2.6.0을 으로 비활성화한 사라지지 missing-module-docstring,missing-class-docstring그리고.missing-function-docstring내 안에서.pylintrc마지막으로, 다음과 같은 구성이 가능했습니다.

[MESSAGES CONTROL]

disable=missing-docstring,empty-docstring

Pylint 2.6.0은 두 검사를 모두 사용하지 않는 한 여전히 문서 문자열을 확인합니다.

아니요. 현재 Pylint에서는 문서 문자열 경고를 구별할 수 없습니다.

그러나 모든 Python 코드 검사에 대해 Flake8을 doc-string 확장자와 함께 사용하여 이 경고를 무시할 수 있습니다.

pip을 사용하여 doc-string 확장을 설치합니다(내부적으로 pydoc 스타일을 사용함).

pip install flake8_docstrings

그러면 그냥 사용할 수 있습니다.--ignore D100스위치를 켜다예를들면,flake8 file.py --ignore D100

파일 "C:\Users\Your User\AppData\Roaming\Code\User\settings.json"을 추가합니다.python.linting.pylintArgs아래와 같이 끝에 있는 선:

{
    "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"
    ],
}

이것을 무시하려는 Visual Studio Code 사용자인 경우 추가할 수 있습니다.python.linting.pylintArgs로..vscode/settings.json:

{
    ...
    "python.linting.pylintArgs": [
        "--disable=C0114",
        "--disable=C0115",
        "--disable=C0116",
    ],
    ...
}
  1. Ctrl + Shift + P

  2. 그런 다음 > 환경설정을 입력하고 클릭합니다. 언어별 설정 구성

  3. 그런 다음 "http"를 입력합니다.코드 붙여넣기

     {
         "python.linting.pylintArgs": [
             "--load-plugins=pylint_django", "--errors-only"
         ],
     }
    

VSCode(1.78.0)를 사용하고 있는데 매개 변수가 변경된 것 같습니다.
사용해야 합니다.

"pylint.args": [
"--disable=C0116",
"--disable=C0111",
"--disable=C0114"

]

settings.json 파일로 이동하여 Python을 비활성화합니다.pydocstyle:

"python.linting.pydocstyleEnabled": false

언급URL : https://stackoverflow.com/questions/7877522/how-do-i-disable-missing-docstring-warnings-at-a-file-level-in-pylint

반응형