Skip to content

refactor: pilot 순수 유틸 함수 pilot_util로 분리 - #391

Merged
easygap merged 1 commit into
mainfrom
refactor/extract-pilot-util
Jun 4, 2026
Merged

refactor: pilot 순수 유틸 함수 pilot_util로 분리#391
easygap merged 1 commit into
mainfrom
refactor/extract-pilot-util

Conversation

@easygap

@easygap easygap commented Jun 1, 2026

Copy link
Copy Markdown
Owner

요약

target_weight_rotation_pilot.py 모놀리스에서 외부 의존이 전혀 없는(stdlib 전용) 순수 유틸 함수 4개를 tools/pilot_util.py로 분리했습니다. 캘린더 헬퍼 분리(#387)에 이은 2차 정리입니다.

옮긴 함수

  • stable_manifest_hash — dict를 정렬·고정 직렬화 후 SHA-256 (키 순서·공백 무관)
  • numbers_match — 부동소수 오차 허용 비교, 절대 허용오차 옵션
  • coerce_float_or_none — float 변환, NaN/Inf면 None
  • coerce_int_or_zero — int 변환 실패 시 0

호환성

기존 호출부가 쓰던 _접두어 이름을 모놀리스에서 pilot_util로부터 re-import 하므로 동작은 100% 동일합니다. import 정리는 없습니다(hashlib/json/math는 모놀리스 다른 곳에서 계속 사용).

테스트

  • 분리한 함수들은 그동안 전용 테스트가 없어서 tests/test_pilot_util.py로 15케이스 추가
  • 전체 스위트 1407 passed (기존 1392 + 신규 15), 회귀 없음
  • 모놀리스 13458 -> 13425줄

target_weight_rotation_pilot.py 모놀리스에서 외부 의존이 없는 stdlib 전용
헬퍼 4개를 tools/pilot_util.py로 추출했다.

- stable_manifest_hash: dict 정렬·고정 직렬화 후 SHA-256
- numbers_match: 부동소수 오차 허용 비교(절대 허용오차 옵션)
- coerce_float_or_none: float 변환, NaN/Inf는 None
- coerce_int_or_zero: int 변환 실패 시 0

기존 호출부 호환을 위해 모놀리스에서 _접두어 별칭으로 re-import 하므로
동작은 100% 동일하다. 분리 전 전용 테스트가 없던 함수들이라
tests/test_pilot_util.py로 커버리지도 추가했다(15케이스).

calendar 헬퍼 분리(#387)에 이은 2차 정리. 모놀리스 13458 -> 13425줄.
@easygap
easygap merged commit efa4a14 into main Jun 4, 2026
1 check passed
easygap added a commit that referenced this pull request Jul 6, 2026
refactor: pilot 순수 유틸 함수 pilot_util로 분리
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant