이 프로젝트는 더 이상 적극적으로 유지되지 않습니다.
내용물
Tidypy는 여러 다른 정적 분석 도구를 캡슐화하고 결과를 쉽게 구성, 실행 및 검토 할 수있는 도구입니다.
*.py 소스 파일뿐만 아니라 전체 Python 프로젝트에서 정적 분석을 수행하기위한 통합 도구입니다. 코드에서 다양한 도구를 실행하는 것 외에도 Yaml, JSON, PO, POT 및 RST 파일을 확인할 수도 있습니다.pyproject.toml 파일을 PEP 518로 정의합니다. 모든 도구 TidyPy 사용에 대한 모든 옵션은 각 도구를 다른 방식으로 구성하도록 요구하지 않고 한 곳에서 선언됩니다.# noqa 댓글을 수여하여 모든 도구에서보고 한 문제를 쉽게 무시하십시오. Tidypy가 설치되면 ( pip install tidypy ), tidypy 명령은 귀하의 환경에서 사용할 수 있어야합니다.
$ tidypy -help
사용법 : Tidypy [옵션] 명령 [args] ...
파이썬 프로젝트에서 여러 정적 분석 도구를 실행하는 도구
결과를 집계합니다.
옵션 :
-Version은 버전과 종료를 표시합니다.
-help이 메시지를 보여주고 종료합니다.
명령 :
점검 프로젝트 파일에서 도구를 실행합니다.
Default-Config는 사용될 수있는 기본 구성을 출력합니다.
자신의 구성 파일을 부트 스트랩합니다.
확장자는 사용 가능한 모든 Tidypy 확장 목록을 출력합니다.
설치 VCS는 지정된 사전 커미트 후크로 Tidyy를 설치합니다.
VCS.
List-Codes는 해당 도구의 모든 알려진 이슈 코드 목록을 출력합니다.
보고 할 수 있습니다.
Purge-Config-Cache는 검색된 구성의 캐시를 삭제합니다
기본 구성 외부.
제거 -VCS는 지정된 Tidypy Pre-Commit 후크를 제거합니다
VCS.
Tidypy 프로젝트를 분석하려면 check 부계 명령을 사용하십시오.
$ tidypy check -help
사용법 : Tidypy Check [옵션] [경로]
프로젝트 파일에서 도구를 실행합니다.
파이썬 프로젝트의 기본으로가는 길인 하나의 주장을 수락합니다.
지정되지 않은 경우 기본값은 현재 작업 디렉토리로 나타납니다.
옵션 :
-x, --exclude regex 일치하는 정규 표현식을 지정합니다
당신이 제외하고자하는 경로에 대해
시험. 다중 지정 될 수 있습니다
타임스. 지정된 표현식을 무시합니다
구성 파일에서.
-t, -tool [bandit | dlint | eradice | jsonlint | jsonlint | manifest | mccabe | pycodestyle | pydiatra | pydocstyle | pyflakes | pylint | pyroma | rstlint | 비밀 | Vulture | Yamllint]
동안 사용할 도구의 이름을 지정합니다
시험. 다중 지정 될 수 있습니다
타임스. 구성 파일을 대체합니다.
-r,-보고 [콘솔, CSV, 커스텀, JSON, NULL, PYCODESTYLE, PYLINT, PYLINT PARSEBLE, TOML, YAML] [: Filename]
실행할 보고서의 이름을 지정합니다
시험 후. 지정할 수 있습니다
양식 -r를 사용하여 선택적 출력 파일 이름
보고서 : 파일 이름. 파일 이름이 없으면
보고서는 STDOUT에 작성됩니다. 할 수 있습니다
여러 번 지정되었습니다. 을 무시합니다
구성 파일.
-c, --config filename은 Tidypy의 경로를 지정합니다
대신 사용할 구성 파일
프로젝트에서 찾은 구성
pyproject.toml.
-노동자 num_workers 동시에 사용할 근로자 수
도구를 실행하십시오. 을 무시합니다
구성 파일.
-disable-merge는 다양한 문제의 병합을 비활성화합니다
Tidypy가 동등한 것으로 간주 할 때 도구.
구성 파일을 대체합니다.
-disable-progress는 진행률 표시 줄의 표시를 비활성화합니다.
-disable-noqa 사용을 무시할 수있는 능력을 비활성화합니다
Python 파일의 "# noqa"주석.
-disable-config-cache를 검색 할 때 캐시 사용을 비활성화합니다
"확장"에 의해 참조 된 구성
옵션.
-help이 메시지를 보여주고 종료합니다.
기본 옵션이있는 스켈레톤 구성 파일을 생성 해야하는 경우 default-config 부하 명령을 사용하십시오.
$ tidypy default-config-help
사용법 : tidypy default-config [옵션]
자신의 부트 스트랩에 사용될 수있는 기본 구성을 출력합니다.
구성 파일.
옵션 :
-pyproject는 pyproject.toml에서 사용할 수 있도록 구성을 출력합니다.
파일.
-help이 메시지를 보여주고 종료합니다.
반환 할 수있는 가능한 문제 코드 목록을 보려면 list-codes 부계 명령을 사용하십시오.
$ tidypy List-Codes-help
사용법 : Tidypy List-Codes [옵션]
도구가보고 할 수있는 모든 알려진 이슈 코드의 목록을 출력합니다.
옵션 :
-t, -tool [bandit | dlint | eradice | jsonlint | jsonlint | manifest | mccabe | pycodestyle | pydiatra | pydocstyle | pyflakes | pylint | pyroma | rstlint | 비밀 | Vulture | Yamllint]
코드가있는 도구의 이름을 지정합니다
출력이어야합니다. 지정되지 않은 경우 기본값
모든 도구에.
-f, -format [toml | json | yaml | csv]
도구가있는 형식을 지정합니다
출력이어야합니다. 지정되지 않은 경우 기본값
Toml에게.
-help이 메시지를 보여주고 종료합니다.
프로젝트의 VC에 사전 커밋 후크로 Tidyypy를 설치하거나 제거하려면 install-vcs / remove-vcs 하위 명령을 사용하십시오.
$ tidypy install-vcs- help
사용법 : Tidypy install-vcs [옵션] VCS [경로]
지정된 VC에 사전 커밋 후크로 Tidyy를 설치합니다.
두 가지 인수를 받아들입니다.
VCS : 후크를 설치하는 버전 제어 시스템. 선택 :
git, hg
경로 : 후크를 설치하기 위해 저장소 바닥으로가는 경로.
지정되지 않은 경우 기본값은 현재 작업 디렉토리로 나타납니다.
옵션 :
-Tidyypy가 발견되면 후크가 커밋을 막아야하는지 여부를 강요
문제.
-help이 메시지를 보여주고 종료합니다.
$ tidypy remove-vcs- help
사용법 : Tidypy remove-vcs [옵션] VCS [경로]
지정된 VC에서 Tidypy Pre-Commit 후크를 제거합니다.
두 가지 인수를 받아들입니다.
VCS : 후크를 제거하는 버전 제어 시스템. 선택 :
git, hg
경로 : 후크를 제거하기 위해 저장소의 기저 경로. 만약에
지정되지 않고 현재 작업 디렉토리의 기본값.
옵션 :
-help이 메시지를 보여주고 종료합니다.
Tidyypy의 Bash 완료를 활성화하려면 다음을 쉘에서 실행하거나 Bash 스타트 업 스크립트에 넣습니다).
$ eval "$ (_ tidypy_complete = 소스 tidypy)"
시스템이나 VirtualEnV에 Tidyypy를 로컬로 설치하지 않으려면 게시 된 Docker 이미지를 사용할 수 있습니다.
$ docker run ---rm --tty --volume =`pwd` :/project tidypy/tidypy
위의 명령은 현재 디렉토리의 내용에 대한 tidypy check 실행합니다. 다른 디렉토리에서 실행하려면 `pwd` 를 필요한 경로로 변경하십시오 (프로젝트 디렉토리를 컨테이너 /project 볼륨에 마운트하는 목표).
이러한 방식으로 Tidyypy를 실행하는 몇 가지 제한 사항이 있습니다. 주로 Tidyypy가 자체적으로 실행되기 때문에 Pylint와 같은 도구는 프로젝트를 로컬로 설치 한 패키지를 내성적으로 지정할 수 없으므로 "수입 오류", "No-Nodule", "No-Member"등에 거짓 입지를보고 할 수 있습니다.
check 이외의 명령을 실행하려면 Docker를 호출 할 때 전달하십시오.
$ docker run ---rm --tty --volume =`pwd`
TODO
구성 파일을 통해 도구에서 전체 파일, 도구 또는 특정 문제 유형을 무시할뿐만 아니라 Python 소스 파일에서 주석을 사용하여 특정 줄의 문제를 무시할 수도 있습니다. 일부 도구에는 자체 내장 지원 및이를위한 표기법이 있습니다.
# pylint# nosec# noqa# noqa# pragma: whitelist secret Tidypy는 이러한 도구 별 플래그를 뛰어 넘어 Python 소스 파일을위한 전역 스케일에서 # noqa 구현합니다. 어떤 도구가 문제를 제기하든 # noqa 댓글이있는 줄에 대한 문제를 무시합니다. 라인에서 특정 유형의 문제 만 무시하려면 다음과 같은 구문을 사용할 수 있습니다.
# noqa : code1, code2
또는 특정 코드가 여러 도구에서 사용되는 경우 주석에서 정확한 도구를 지정할 수 있습니다.
# noqa : pycodestyle : code1, pylint : code2
또는 문제를 무시하려면 특정 도구가 한 줄에서 제기되면 도구를 지정할 수 있습니다.
# noqa : @pycodestyle, @pylint
물론 필요한 경우 세 가지 표기법을 단일 주석으로 믹싱하고 일치시킬 수 있습니다.
# noqa : code1, pylint : code2,@pycodestyle
명령 줄에서 --disable-noqa 옵션을 지정하거나 구성 파일에서 false 로 noqa 옵션을 설정하여 Tidyy의 NOQA 동작을 비활성화 할 수 있습니다. 그러나 경고 : 현재 pycodestyle과 pydocstyle 은이 옵션을 존중하지 않으며 항상 그들이 찾은 # noqa 의견을 존중합니다.
상자 밖에서 Tidyypy는 여러 도구에 대한 지원을 포함합니다.
Tidypy에는 프로젝트 분석 결과를 제시 및/또는 수출하는 여러 가지 방법이 포함되어 있습니다. 상자 밖으로 다음을 제공합니다.
filename , line , character , tool , code , message : 다음과 같은 인수를 받게됩니다.Tidypy에는 다른 도구에 연결하는 소수의 플러그인/통합이 포함되어 있습니다.
--tidypy 지정하거나 pytest 구성에 addopts 속성의 일부로 포함시켜야합니다.--with-tidypy 지정하거나 setup.cfg 에서 with-tidypy 속성을 1 로 설정할 수 있습니다.tidypy 테스트를 사용하여 Tidypy는 PBBT 스크립트에 포함될 수 있습니다. 이를 활성화하려면 PBBT를 실행할 때 명령 줄에 --extend=tidypy.plugin.pbbt 지정하거나 setup.cfg 또는 pbbt.yaml 에서 tidypy.plugin.pbbt 로 extend 속성을 설정할 수 있습니다. 점점 더 다른 도구와 기자를 포함하도록 정화를 확장하기위한 간단한 인터페이스가 있습니다. 도구를 추가하려면 tidypy.tool tidypy.tools 확장하고 setup.py entry_point 하는 클래스를 만듭니다.
Entry_Points = {
'tidypy.tools': [
'mycooltool = path.to.model : mycooltoolclassname',
],,
}
리포터를 추가하기 위해 Tidypy.report를 확장하고 tidypy.reports 에 대한 entry_point 선언하는 것을 제외하고 프로세스는 거의 동일합니다.
그래, 그런 일이 일어난다. 내가이 도구를 따르기로 선택한 철학은 내가 나에게서 아무것도 숨기고 싶지 않다는 것입니다. 기본 동작이 가장 독창적 인 설정을 사용하여 제품군의 모든 도구를 실행하기를 원했습니다. 그런 다음 전체 손상 범위를 볼 수 있으면 프로젝트 수준 구성을 통해 특정 도구 또는 문제를 비활성화하기로 결정할 수 있습니다. 누군가가 특정 문제에 대한 수표를 구현하기 위해 시간을 내면 가치가 있다고 생각해야합니다. 내 툴링이 기본적으로 나에게서이를 숨기면 그 혜택을 얻을 수 없습니다.
일반적으로 "완료된"이라고 생각할 때 라이터 나 다른 종류의 정적 분석기를 사용하는 것이 좋습니다. 단위 테스트와 마찬가지로 프로젝트 시작시 작업 플로우에 바로 통합해야합니다. 그렇게하면 일찍 물건을 찾아서 그들로부터 배우거나 비활성화합니다. 점차적으로 해결할 때 다루는 작업은 훨씬 덜 어려운 일입니다.
기부금이 가장 환영합니다. 특히 버그 수정이라면! 이 코드를 해킹하려면 간단히 복제 한 다음 make setup 실행하십시오. 따라서 필요한 모든 도구와 함께 VirtualEnV가 생성됩니다. Makefile 에는 Pytest Suite를 실행하기위한 test 대상과 자체적으로 Tidyy를 실행하기위한 lint 목표가 있습니다.
Tidypy는 MIT 라이센스의 조건에 따라 릴리스됩니다.