Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.22 KB

File metadata and controls

34 lines (25 loc) · 1.22 KB

Python Guardrails

기본값

  • 패키지와 실행 환경은 uv를 우선한다.
  • 타입 검사기는 ty를 우선한다.
  • 테스트는 pytest를 기본 후보로 둔다.
  • 린트/포맷은 프로젝트가 정한 도구를 따르되, 새 프로젝트는 ruff를 기본 후보로 둔다.

코드 기준

  • 경계 타입은 dataclass, TypedDict, Pydantic 모델 중 프로젝트 패턴에 맞게 명시한다.
  • 동적 딕셔너리를 내부 도메인 전체에 퍼뜨리지 않는다.
  • 파일 경로는 pathlib.Path를 우선한다.
  • 전역 mutable state를 피한다.
  • I/O, 파싱, 정책 판단, 순수 계산을 분리한다.
  • 예외를 삼키지 않는다. 복구하거나, 맥락을 붙여 다시 던진다.

테스트 기준

  • 정책 판단과 파싱은 순수 함수 테스트로 고정한다.
  • 파일/네트워크/프로세스 호출은 fixture와 임시 디렉토리로 격리한다.
  • 버그 수정에는 실패 입력을 그대로 남긴 회귀 테스트를 추가한다.

선호 명령

uv run pytest
uv run ty check
uv run ruff check
uv run ruff format --check

프로젝트가 ty를 아직 도입하지 않았으면 새 의존성을 추가하기 전에 사용자 확인을 받는다.