Rust 기반 멀티언어 CLI로, 하나의 도구와 설정 파일에서 린터, 자동 포매터, 보안 스캐너, 유지보수성 검사를 실행합니다.
tonybaloney/wily
Git 기록을 따라가며 Python 코드의 복잡도와 코드 메트릭이 시간에 따라 어떻게 변하는지 추적하는 커맨드라인 도구입니다.
- 스타
- 1,336
- 포크
- 73
- 열린 이슈
- 43
- 마지막 커밋
- 11일 전
어떤 프로젝트인가요?
Wily는 시간에 따른 Python 코드를 측정하는 커맨드라인 애플리케이션입니다. git으로 브랜치의 각 리비전을 차례로 살펴보고, 모든 커밋에서 파일의 복잡도 및 코드 분석 메트릭을 실행한 뒤 결과를 .wily/ 디렉터리의 로컬 캐시에 저장합니다.
이 캐시를 사용하면 순환 복잡도, 유지보수성 지수, Halstead 메트릭, 코드 줄 수와 같은 메트릭이 리비전 사이에서 어떻게 달라졌는지 확인하고, 메트릭별로 파일 순위를 매기거나, 브라우저에서 추세 그래프를 열 수 있습니다. diff 명령은 현재 파일을 선택한 git ref와 비교하므로 pre-commit 훅이나 CI 검사로 사용할 수 있습니다.
메트릭은 연산자(cyclomatic, cognitive, maintainability, halstead, raw)별로 그룹화되며 wily.cfg 파일에서 설정할 수 있습니다. Jupyter 노트북은 기본적으로 검사하며, 셀별로 결과를 표시하는 옵션도 있습니다.
핵심 기능
- 01브랜치의 git 커밋을 따라가며 메트릭 캐시를 생성합니다.
- 02wily report로 리비전 간 메트릭 차이를 확인합니다.
- 03선택한 메트릭을 기준으로 디렉터리의 파일 순위를 매깁니다.
- 04wily graph로 브라우저에서 메트릭 추세를 시각화합니다.
- 05wily diff로 현재 코드를 임의의 git ref와 비교합니다.
- 06.ipynb 노트북 안의 Python 코드를 검사하며, 셀별 검사도 지원합니다.
활용 사례
- 커밋 기록 전반에서 Python 코드베이스의 복잡도가 높아지는지 추적합니다.
- 변경 사항으로 이전 리비전보다 복잡도가 높아지면 CI 또는 pre-commit 검사를 실패하게 합니다.
- 리팩터링 우선순위를 정하기 위해 프로젝트에서 가장 복잡한 파일을 찾습니다.
- Jupyter 노트북을 사용하는 데이터 과학 프로젝트의 코드 품질 추세를 모니터링합니다.
빠른 시작
- 1
pip으로 PyPI에서 wily를 설치합니다
pip install wily - 2
git 저장소 안의 소스 폴더에 대해 wily 캐시를 빌드합니다
wily build src/ - 3
분석한 파일의 복잡도 변화를 보고합니다
wily report src/
사용 전 알아둘 점
- Python 코드만 분석합니다.
- 기록을 추적하려면 git 저장소가 필요하며, 캐시를 빌드할 때 작업 복사본이 깨끗한 상태여야 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- wily은(는) 무엇인가요?
- Git 기록을 따라가며 Python 코드의 복잡도와 코드 메트릭이 시간에 따라 어떻게 변하는지 추적하는 커맨드라인 도구입니다. Wily는 시간에 따른 Python 코드를 측정하는 커맨드라인 애플리케이션입니다. git으로 브랜치의 각 리비전을 차례로 살펴보고, 모든 커밋에서 파일의 복잡도 및 코드 분석 메트릭을 실행한 뒤 결과를 .wily/ 디렉터리의 로컬 캐시에 저장합니다.
- wily은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- wily은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- wily은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. wily의 마지막 커밋은 2026년 10월 28일입니다.
- wily은(는) 어디에 사용할 수 있나요?
- 커밋 기록 전반에서 Python 코드베이스의 복잡도가 높아지는지 추적합니다. 변경 사항으로 이전 리비전보다 복잡도가 높아지면 CI 또는 pre-commit 검사를 실패하게 합니다. 리팩터링 우선순위를 정하기 위해 프로젝트에서 가장 복잡한 파일을 찾습니다. Jupyter 노트북을 사용하는 데이터 과학 프로젝트의 코드 품질 추세를 모니터링합니다.
- wily는 어떻게 설치하나요?
- pip으로 PyPI에서 wily를 설치합니다: pip install wily git 저장소 안의 소스 폴더에 대해 wily 캐시를 빌드합니다: wily build src/ 분석한 파일의 복잡도 변화를 보고합니다: wily report src/
- wily은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/tonybaloney/wily
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
함수의 McCabe 순환 복잡도를 계산하고, 지나치게 복잡한 코드를 표시하는 flake8 플러그인으로 실행되는 Python 도구입니다.
코드를 실행하지 않고 오류와 코드 냄새를 찾아내며 코딩 표준을 적용하는 Python 정적 분석 도구입니다.
일관되고 간결한 Python 스타일을 적용하고 복잡한 코드 패턴을 찾아내는 엄격하고 주관이 뚜렷한 flake8 플러그인입니다.
코드를 import하지 않고 파싱해 오류를 찾으며 스타일 검사는 하지 않는 Python 린터입니다.
프로젝트별로 설정할 수 있는 200개 이상의 규칙으로 Swift 스타일과 규칙을 검사하는 린터입니다.