빌드 시스템에서 파일 린트를 사용하고 있습니다. 우리는 코드베이스 내에 일회용 코드가있는 파이썬 패키지를 가지고 있으며, 모듈에 대한 모든 경고를 일시적으로 비활성화하여 이러한 불필요한 메시지로 다른 개발자를 도청하는 것을 중지하고 싶습니다. pylint: disable
모듈에 대한 모든 경고에 대한 쉬운 방법이 있습니까?
답변:
로부터 PyLint 자주 묻는 질문
Pylint <0.25 인 경우
# pylint: disable-all
모듈 시작 부분에.
Pylint 0.26.1 이상은 해당 지시문의 이름을 다음과 같이 변경했습니다.
# pylint: skip-file
(그러나 첫 번째 버전은 이전 버전과의 호환성을 위해 유지됩니다).
어떤 모듈이 무시되는지 쉽게 찾기 위해 정보 레벨 메시지 I0013이 방출됩니다. 최신 버전의 Pylint에서 이전 구문을 사용하면 추가 I0014 메시지가 방출됩니다.
PyLint에는 메시지에 대한 5 개의 "범주"가 있습니다 (내가 알고있는).
이러한 범주는 과거에는 매우 분명했지만 번호가 매겨진 Pylint 메시지는 이제 이름으로 대체되었습니다. 예를 들어, C0302
현재 too-many-lines
입니다. 그러나 'C'는 것을 우리에게 알려줍니다 too-many-lines
A는 협약 메시지. 많은 시스템 (예 : Syntastic )이 모든 것을 경고 또는 오류로 분류하는 것처럼 보이기 때문에 Convention 메시지가 종종 경고 로만 표시 되기 때문에 이것은 혼란 스럽 습니다 . 그러나 PyLint 보고서는 여전히 이러한 범주로 분류되므로 확실히 지원됩니다.
귀하의 질문은 특히 경고 에 관한 것이며 모든 PyLint 경고 메시지 이름은 'W'로 시작합니다.
이것을 추적하기가 조금 어려웠지만 이 대답 은 결국 저를 대답 으로 이끌었습니다. PyLint는 여전히 전체 메시지 범주 비활성화를 지원합니다. 따라서 모든 경고 를 비활성화 하려면 다음을 수행하십시오.
disable=W
명령 줄에서 사용할 수 있습니다.
$ pylint --disable=W myfile.py
또는 pylintrc 파일에 넣을 수 있습니다.
[MESSAGES CONTROL]
disable=W
참고 : disable
rc 파일에 이미 옵션 이있을 수 있습니다 .이 경우이 목록에 'W'를 추가해야합니다.
또는 코드에 인라인으로 배치하여 배치 된 범위에서 작동합니다.
# pylint: disable=W
전체 파일에 대해 비활성화하려면 파일 맨 위에 배치하는 것이 가장 좋습니다. 그러나 파일 맨 위에서도 여전히 trailing-newlines
경고 메시지 가 표시 되고 있음을 알았습니다 (기술적으로는 규칙 경고이지만 이에 도달 했습니다).
제 경우에는 오래전 누군가가 쓴 도서관이있었습니다. 잘 작동했기 때문에 현대의 파이썬 규칙 등에 대해 걱정할 필요가 없었습니다. 제가 정말로 신경 쓰는 것은 코드를 깨뜨릴 수있는 오류뿐이었습니다.
내 해결책은 첫 번째 줄에 다음 PyLint 명령을 배치 하여이 하나의 파일에 대한 모든 Warning , Convention 및 Refactoring 메시지 를 비활성화하는 것입니다 .
# pylint: disable=W,C,R
뒤 따르는 줄 바꿈에 대한 앞서 언급 한 메시지를 제외하고 이것은 정확히 내가 필요한 것을 수행했습니다.
예, # pylint: skip-file
파일에서 지정할 수 있지만 파일에 대한 모든 경고를 비활성화하는 것은 좋지 않습니다.
특정 경고 만 # pylint: disable=message-name
사용하지 않으려면 나머지 파일에 대해 지정된 메시지를 사용하지 않도록 설정하는 것과 같은 주석을 추가 하거나 최소한 # pylint: enable=message-name
.
예:
# pylint: disable=no-member
class C123:
def __init__(self):
self.foo_x = self.bar_x
# pylint: enable=no-member
class C456:
def __init__(self):
self.foo_x = self.bar_x
disable=locally-disabled
알리지 않으려면 pylintrc에 추가 할 수 있습니다.
내 사용 사례는 pylint *.py
특정 파일 하나를 건너 뛰고 싶은 것을 제외하고는 디렉토리의 모든 파일을 처리 하기 위해 실행 하는 것입니다.
추가 #pylint: skip-file
로 실패의 원인 pylint를 I: 8, 0: Ignoring entire file (file-ignored)
. 추가 #pylint: disable=file-ignored
해도 문제가 해결되지 않습니다. 아마도 파일 특정 오류가 아닌 전역 오류 일 것입니다.
해결책은 --disable=file-ignored
pylint 명령 옵션 에 포함 하는 것이 었습니다. 이것을 알아내는 데 너무 오래 걸렸습니다. file-ignored
파일을 명시 적으로 무시할 때 오류 가 없어야 합니다.
pylintrc
는 명령 옵션이 아닌 구성 파일 에 넣으십시오 .