Pylint에서 경고 및 오류를 비활성화하는 방법에는 여러 가지가 있습니다. 사용할 설계는 전 세계 또는 로컬에서 비활성화를 적용하려는 방식과 관련이 있습니다. 중요한 디자인 결정입니다.
여러 접근
- 하나 이상의
pylintrc
파일에서.
여기에는 ~/.pylintrc
Chris Morgan이 설명한대로 파일 ($ HOME 디렉토리에 있음) 보다 많은 것이 포함됩니다 . Pylint는 rc 파일을 검색하며 "가까운"파일의 값이 더 높은 우선 순위를 갖습니다.
pylintrc
현재 작업중인 디렉토리 의 파일 또는
현재 작업 디렉토리가 파이썬 모듈 (즉, __init__.py
파일을 포함)에 있다면 , pylintrc
파일이 발견 될 때까지 파이썬 모듈의 계층을 검색하십시오 . 또는
환경 변수 PYLINTRC에 의해 명명 된 파일. 또는
그렇지 않은 홈 디렉토리가있는 경우 /root
:
~/.pylintrc
; 또는
~/.config/pylintrc
; 또는
/etc/pylintrc
이러한 파일의 대부분은 이름이 지정 pylintrc
되어 ~
있으며 파일 의 맨 앞에 점이 있습니다.
당신에게 pylintrc
파일, 사용하지 않도록 특정의 pylint 메시지에 대한 행을 추가합니다. 예를 들면 다음과 같습니다.
[MESSAGES CONTROL]
disable=locally-disabled
pylint
Aboo 및 Cairnarvon에서 설명한대로 명령 줄 에서 추가로 비활성화합니다 . 이것은 다음과 같습니다 pylint --disable=bad-builtin
. --disable
추가 항목을 억제 하려면 반복하십시오 .
Imolit에 설명 된대로 개별 Python 코드 행에서 추가로 비활성화합니다. 이것들은 some statement # pylint: disable=broad-except
(원본 소스 라인의 끝에 추가 주석) 처럼 보이고 현재 라인에만 적용됩니다 . 내 접근 방식은 항상 다른 코드 줄 끝에 배치하여 블록 스타일과 혼동하지 않도록하는 것입니다 (아래 참조).
완전한 소스 파일까지 더 큰 파이썬 코드 블록에 대해 추가로 비활성화합니다.
이것들은 다음과 같습니다 # pragma pylint: disable=bad-whitespace
( pragma
핵심 단어를 주목하십시오 ).
이것은 pragma 다음 의 모든 줄에 적용됩니다 . 이러한 블록을 파일 맨 위에두면 억제가 전체 파일에 적용됩니다. 파일에서 같은 블록을 낮추면 블록 뒤에 오는 행에만 적용됩니다. 나의 접근 방식은 항상 이것들을 그들 자신의 라인에 두어 단일 라인 스타일과 혼동하지 않도록하는 것입니다 (위 참조).
억제가 코드 범위 내에서만 적용되어야하는 경우 억제 를 중지 하려면 # pragma pylint: enable=bad-whitespace
(지금 사용 enable
하지 않음 disable
)을 사용하십시오 .
한 줄 # pylint
을 비활성화 하면 구문이 사용 되지만이 줄을 비활성화 하면 구문이 사용 # pragma pylint
됩니다. 복사 및 붙여 넣기시 혼동하기 쉽습니다.
함께 모아서
나는 보통 이러한 접근법을 혼합하여 사용합니다.
나는 ~/.pylintrc
절대적으로 세계 표준에 사용 합니다.
pylintrc
프로젝트 별 표준이있을 때 Python 모듈 내의 다른 수준에서 프로젝트 수준 을 사용 합니다. 특히 다른 사람이나 팀에서 코드를 가져 오는 경우 선호하지 않는 규칙을 사용하지만 코드를 다시 작성하고 싶지는 않을 수 있습니다. 설정을이 수준으로 유지하면 이러한 관행을 다른 프로젝트에 전파하지 않아도됩니다.
단일 소스 파일 맨 위에 블록 스타일 pragma를 사용합니다. 필자는 Pylint 표준에 대해서도 개발의 열기에서 pragma를 끄고 (메시지를 표시하지 않음) 동의하지 않습니다 (예 : "너무 적은 공용 메소드"-항상 사용자 정의 예외 클래스에 대해 경고가 나타납니다). 개발하는 동안 더 많은 / 아마도 모든 Pylint 메시지를 보는 것이 도움이됩니다. 이렇게하면 한 줄짜리 pragma (아래 참조)로 해결하려는 사례를 찾거나 다음 개발자에게 설명을 추가하여이 경우 경고가 괜찮은 이유를 설명 할 수 있습니다.
코드를 체크인 할 준비가되어 있어도 일부 블록 스타일의 pragma를 활성화 된 상태로 둡니다. 그 중 몇 가지를 사용하려고 시도하지만 모듈에 적합하면 문서로 수행해도됩니다. 그러나 가능한 한 적은 수를 남겨 두려고 노력합니다.
특히 강력한 오류를 해결하기 위해 한 줄 주석 스타일을 사용합니다. 실제로 할 의미가있는 장소가 있다면 예를 들어 except Exception as exc
, 내가 넣어 # pylint: disable=broad-except
이 기본적으로 문서의 형태로, 밖으로 호출 할 이상한 예외 요구하기 때문에 대신 좀 더 글로벌 접근 방식의 라인에.
파이썬의 다른 모든 것들과 마찬가지로, 당신은 다른 수준의 간접적으로 행동 할 수 있습니다. 내 조언은 Pylint에 너무 관대 한 접근으로 끝나지 않도록 어떤 수준에 속하는지 생각하는 것입니다.