Development Tip

Pylint의 파일 수준에서 "missing docstring"경고를 비활성화하려면 어떻게해야합니까?

yourdevel 2020. 12. 15. 19:54
반응형

Pylint의 파일 수준에서 "missing docstring"경고를 비활성화하려면 어떻게해야합니까?


Pylint는 일부 파일에 독 스트링이 없다는 오류가 발생합니다. 나는 각 클래스, 메소드 및 함수에 독 스트링을 추가하려고 시도하지만 Pylint는 파일이 시작될 때 독 스트링이되어야하는지도 확인하는 것 같습니다. 어떻게 든 이것을 비활성화 할 수 있습니까? 클래스, 함수 또는 메서드 내부에 독 스트링이 누락되었다는 알림을 받고 싶지만 파일에 독 스트링이 있어야하는 것은 아닙니다.

(독점적 인 소스 파일의 시작 부분에서 흔히 볼 수있는 법적 전문 용어가 있습니까? 예가 있습니까? 그런 사소한 질문을 별도로 게시해도되는지 모르겠습니다.)


파이썬 모듈에 docstring이있어서 모듈의 기능, 제공 사항, 클래스 사용 방법의 예를 설명하는 것이 좋습니다. 이것은 IMO가 독 스트링에 들어가서 는 안되는 저작권 및 라이센스 정보를 제공하는 파일의 시작 부분에서 자주 볼 수있는 주석과는 다릅니다 (일부는 완전히 사라져야한다고 주장하기도합니다. http : // hackerboss 참조). com / get-rid-of-templates / )

Pylint에는 독 스트링이 발생할 수있는 다양한 위치에 대한 별도의 코드가 없으므로 C0111을 비활성화하기 만하면됩니다. 문제는 모듈 범위에서 이것을 비활성화하면 모듈의 모든 곳에서 비활성화된다는 것입니다 (즉, 누락 된 함수 / 클래스 / 메서드 독 스트링에 대한 C 줄을 얻지 못할 것입니다. 당신을 괴롭히는 경우 github 에서이 pylint 문제에 기여 하십시오.

그래서 내가 제안하는 것은 작은 누락 된 독 스트링을 추가하여 다음과 같이 말하는 것입니다.

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

머지 않아 클래스 / 함수의 개별 독 스트링에 속하지 않는 모듈의 다양한 클래스 / 함수를 사용하는 방법에 대한 예제를 제공하는 등 유용한 정보를 찾을 수있을 것입니다 (예 : 상호 작용하거나 빠른 시작 가이드와 같은 것).


늦었지만 여전히 유용하다는 것을 알았습니다. 그래서 공유. 여기 에서 찾았 습니다 .

경고를 비활성화하기 위해 pylint에 "--errors-only"플래그를 추가 할 수 있습니다.

이렇게하려면 설정으로 이동하십시오. 다음 행을 편집하십시오.

"python.linting.pylintArgs": []

같이

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

그리고 당신은 갈 수 있습니다!


@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는 현재 doc-string 경고를 구별 할 수 없습니다.

그러나이 경고를 무시하기 위해 doc-string 확장과 함께 모든 파이썬 코드 검사에 flake8을 사용할 수 있습니다.

pip로 doc-string 확장을 설치합니다 (내부적으로 pydocstyle 사용 ).

pip install flake8_docstrings

그런 다음 --ignore D100스위치를 사용할 수 있습니다 . 예를 들면flake8 file.py --ignore D100


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

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

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


pylint 2.4 이상 missing-docstring에서는 다음 세 가지 하위 메시지를 사용하여 다양한 항목 구별 할 수 있습니다 .

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

따라서 다음 .pylintrc파일이 작동합니다.

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

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

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

반응형