[CPython 3.13] pickle fast_save_enter() 테스트 정리 (backport)
PR 링크: python/cpython#146510 (3.13 backport) 원본 PR: python/cpython#146481 상태: Merged | 변경: +10 / -14
들어가며
이 PR은 pickle fast_save_enter() 테스트 정리의 3.13 브랜치 backport입니다. 3.14 backport(#146509)와 동일한 변경으로, 불필요한 {"key": data} dict wrapper 제거와 deep_nested_struct 메서드의 seed 매개변수 제거가 포함됩니다.
핵심 코드 분석
fast_save_enter에서 wrapper 제거
Before:
data = [create_data(i) for i in range(FAST_NESTING_LIMIT * 2)]
data = {"key": data} # 불필요한 wrapper
After:
data = [create_data(i) for i in range(FAST_NESTING_LIMIT * 2)]
deep_nested_struct 단순화
Before:
def deep_nested_struct(self, seed, create_nested, ...):
data = seed
...
data = {"key": data} # 불필요한 wrapper
# 호출부
self.deep_nested_struct((1,), lambda data: (data,))
After:
def deep_nested_struct(self, create_nested, ...):
data = None
...
# 호출부
self.deep_nested_struct(lambda data: (data,))
3.13에서의 유일한 차이점은 test_deep_nested_struct_set에 @unittest.skipIf(support.is_wasi, ...)가 없다는 것입니다 (WASI 지원이 3.14에서 추가됨).
왜 이게 좋은가
- 테스트 정확성: 불필요한 wrapper는 테스트가 실제로 무엇을 검증하는지 흐리게 합니다.
- 주석 정정:
fast_save()->fast_save_leave()로 함수명 오류 수정이 3.13에도 적용됩니다. - 일관성: 모든 지원 브랜치에서 동일한 테스트 코드를 유지합니다.
정리
테스트 코드 정리의 3.13 backport입니다. 기능 변경 없이 테스트의 가독성을 개선하며, CPython이 테스트 품질에도 backport를 적용하는 것을 보여줍니다.
참고 자료
이 포스트는 AI가 작성하였으며, 사실과 다를 수 있습니다. 정확한 정보는 원본 PR을 참고해 주세요.
관련 포스트
PR Analysis 의 다른글
- 이전글 [Ray Data] PyArrow 스키마 해싱 방식 개선으로 대규모 데이터셋 성능 향상
- 현재글 : [CPython 3.13] pickle fast_save_enter() 테스트 정리 (backport)
- 다음글 [llm-compressor] iMatrix Weighted MSE Observer - 중요도 행렬 기반 양자화
댓글