programing

파일에 대한 모든 Pylint 경고 사용 안 함

bestprogram 2023. 8. 25. 23:51

파일에 대한 모든 Pylint 경고 사용 안 함

우리는 빌드 시스템 내에서 Pylint를 사용하고 있습니다.

우리 코드 베이스 안에 일회용 코드가 있는 파이썬 패키지가 있는데, 저는 모듈에 대한 모든 경고를 일시적으로 비활성화하여 이러한 불필요한 메시지로 다른 개발자들을 괴롭히는 것을 중단하고 싶습니다.할 수 있는 쉬운 방법이 있습니까?pylint: disable모듈에 대한 모든 경고?

Pylint FAQ:

Pylint가 0.25 미만인 경우 추가

# pylint: disable-all

모듈의 시작 부분에 있습니다.

Pylint 0.26.1 이상이 해당 지침의 이름을 다음으로 변경했습니다.

# pylint: skip-file

(단, 이전 버전과의 호환성을 위해 첫 번째 버전은 유지됩니다.)

무시되는 모듈을 쉽게 찾기 위해 정보 수준 메시지 I0013이 표시됩니다.최신 버전의 Pylint에서는 이전 구문을 사용하면 추가 I0014 메시지가 출력됩니다.

Pylint에는 메시지에 대한 5가지 "카테고리"가 있습니다(그 중 제가 알고 있습니다).

과거에는 이러한 범주가 매우 분명했지만, 현재는 번호가 매겨진 Pylint 메시지가 이름으로 대체되었습니다.예를 들어, 지금은too-many-lines하지만 'C'는 우리에게 말해줍니다.too-many-lines컨벤션 메시지입니다.이는 많은 시스템(: Syntastic)이 모든 것을 경고 또는 오류로 분류하는 것처럼 보이기 때문에 컨벤션 메시지가 종종 경고로 표시되기 때문에 혼란스럽습니다.그러나 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 명령을 배치하는 것만으로 이 파일에 대한 모든 경고, 컨벤션 및 리팩토링 메시지를 비활성화하는 것이었습니다.

# pylint: disable=W,C,R

앞서 언급한 새로운 줄을 따라가기 위한 메시지를 제외하고, 이것은 바로 제가 필요로 하는 것이었습니다.

", " " 라고 할 수 .# pylint: skip-file파일에 있지만 파일에 대한 모든 경고를 비활성화하는 것은 좋지 않습니다.

에는 " 경비하면다추같음다설가니합명은을과려특활정고화성만▁as다▁such니▁if▁only▁a추▁specific▁comment합▁adding가▁this"와 같은 설명을 추가하면 됩니다.# 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

다른 옵션은 다음을 사용하는 것입니다.--ignore명령줄 옵션을 선택하여 일부 파일에 대한 분석을 건너뜁니다.

내 사용 사례는 실행하는 것입니다.pylint *.py특정 파일 하나를 건너뛰려는 경우를 제외하고 디렉터리의 모든 파일을 처리합니다.

추가하기# pylint: skip-file와 함께 하게 된 원인은I: 8, 0: Ignoring entire file (file-ignored) 추가하기# pylint: disable=file-ignored그것을 해결하지 못합니다.아마도 파일별 오류라기보다는 글로벌 오류일 것입니다.

은 해책은다같다습니과를 포함하는 것이었습니다.--disable=file-ignoredPylint 명령 옵션에 있습니다.을 알아내는 데 시간이 ; 있수없습다니습을간이랜아내것무▁a▁shouldn▁it다'니▁there없t▁be습수▁out;있.file-ignored파일을 명시적으로 무시할 때 오류가 발생합니다.

저는 단지 수업 시간에 조직된 파이테스트 테스트를 위해 이것을 했고 누군가에게 유용할 수 있습니다.이것들은 많은 오류를 발생시켰지만 나는 CLI에서 실행할 때 클래스 기반 구조가 좋습니다.

제 모든 테스트 파일에 아래 가져오기를 추가했는데 작동하는 것 같습니다.만약 그것에 대한 해결책을 아는 사람이 있다면 테스트 디렉토리에 대해 한 번 하는 것이 더 좋을 수도 있지만, 나는 그것을 피할 수 있다면 전체 보고서를 무시하고 싶지 않습니다.

    # Disable pylint errors for tests organised into classes
    # pylint: disable=no-self-use too-few-public-methods
    # Disable pylint errors for pytest fixtures
    # pylint: disable=unused-argument invalid-name 

두 번 사용해도 깨지지 않았어요, 확인해 봤습니다.처음에 2라인 비활성화를 위해 브래킷을 시도했지만 작동하지 않았습니다.저는 쉼표가 필요하지 않아서 그것들을 제거했습니다.

@data class에 해당하는 조직적인 시험 수업을 표시할 수 있는 데코레이터를 아는 사람이 있으면 알려주세요.

언급URL : https://stackoverflow.com/questions/10238473/disable-all-pylint-warnings-for-a-file