문제가 있는 영역을 식별하기 위해 Python 코드를 분석하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/100298

문제

여러 프로젝트에 분산된 대규모 소스 저장소가 있습니다.해결해야 할 문제 영역을 식별하여 소스 코드의 상태에 대한 보고서를 작성하고 싶습니다.

특히 순환 복잡성이 높은 루틴을 호출하고, 반복을 식별하고, 보푸라기 같은 정적 분석을 실행하여 의심스러운(따라서 오류가 있을 수 있는) 구성을 찾아내고 싶습니다.

그러한 보고서를 작성하려면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

순환적 복잡성을 측정하기 위해 사용할 수 있는 유용한 도구가 있습니다. Traceback.org.이 페이지는 또한 결과를 해석하는 방법에 대한 좋은 개요를 제공합니다.

+1 필린트.코딩 표준 준수 여부를 확인하는 데 적합합니다. PEP8 또는 조직의 변형), 이는 결국 순환적 복잡성을 줄이는 데 도움이 될 수 있습니다.

다른 팁

순환 복잡성의 경우 다음을 사용할 수 있습니다. radon: https://github.com/rubik/radon

(사용 pip 설치하려면: pip install radon)

추가적으로 다음과 같은 기능도 있습니다:

  • 원시 측정항목(여기에는 SLOC, 주석 줄, 빈 줄 등이 포함됩니다.)
  • Halstead 측정항목(모두)
  • 유지 관리 가능성 지수(Visual Studio에서 사용되는 지수)

정적 분석에는 다음이 있습니다. 필린트 그리고 파이체커.개인적으로 저는 pychecker보다 더 포괄적인 것 같아서 pylint를 사용합니다.

순환 복잡성의 경우 시도해 볼 수 있습니다. 이 펄 프로그램, 아니면 이거 기사 동일한 작업을 수행하는 Python 프로그램을 소개합니다.

Pycana는 새로운 프로젝트를 이해해야 할 때 매력적으로 작동합니다!

파이카나 (Python Code Analyzer)는 코드를 실행 한 후 클래스 다이어그램을 만드는 Python 용 간단한 코드 분석기의 멋진 이름입니다.

작동 방식을 확인하세요.http://pycana.sourceforge.net/

산출:

대체 텍스트 http://pycana.sourceforge.net/relations.png

덕분에 파이데프, 당신은 할 수 있습니다 필린트 통합 에서 이클립스 IDE 매우 쉽게 수정된 파일을 저장할 때마다 코드 보고서를 얻을 수 있습니다.

사용 플레이크8, 하나의 도구에서 pep8, pyflakes 및 순환적 복잡성 분석을 제공하는

라는 도구가 있습니다.클론디거 유사한 코드 조각을 찾는 데 도움이 됩니다.

순환 복잡도를 확인하기 위해서는 물론 다음과 같은 방법이 있습니다. mccabe 패키지.

설치:

$ pip install --upgrade mccabe

용법:

$ python -m mccabe --min=6 path/to/myfile.py

위의 임계값은 6입니다.당 이 답변, 점수 >5는 아마도 단순화되어야 할 것입니다.

샘플 출력 --min=3:

68:1: 'Fetcher.fetch' 3
48:1: 'Fetcher._read_dom_tag' 3
103:1: 'main' 3

선택적으로 다음을 통해 사용할 수도 있습니다. pylint-mccabe 또는 pytest-mccabe, 등.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top