위키득계정 ↗
기술

Cattrs

Cattrs기술
대상 언어
Python
주요 역할
객체 변환과 검증
주요 변환
structure와 unstructure
규칙 배치
자료 모델과 분리
Cattrs는 Python의 사전 같은 자료와 구조화된 클래스 객체 사이를 변환하고 검증하는 라이브러리다. 변환 규칙을 모델과 분리해 정의하며 Attrs 클래스와 데이터클래스 및 중첩 자료를 다룬다.

구조를 만들고 해제하는 변환

structure는 자료와 대상 형식을 받아 클래스나 지정한 컬렉션 구조로 변환한다. unstructure는 객체를 사전이나 튜플처럼 직렬화에 연결하기 쉬운 표현으로 바꾼다. 중첩된 자료에도 변환을 재귀적으로 적용할 수 있다.

모델과 변환 규칙의 분리

자료 모델에 직렬화 세부사항을 모두 넣는 대신 변환기에서 규칙을 관리한다. 같은 모델에 여러 변환 규칙을 연결하거나 수정할 수 없는 외부 모델을 다룰 수 있다. 사용자 정의 훅으로 특정 형식의 변환도 등록한다.

지원 형식과 직렬화 연결

Attrs 클래스와 데이터클래스 및 목록과 집합과 사전 등의 형식을 지원한다. JSON과 MessagePack 등 여러 직렬화 라이브러리에 맞춘 사전 구성 변환기도 제공한다. 객체의 구조 변환과 실제 바이트 표현의 인코딩을 구분해 조합한다.

관련 문서

Attrs / Pydantic / Msgspec / Python / JSON / 직렬화