위키득계정 ↗
기술

Typeguard

Typeguard기술
대상 언어
Python
검사 시점
프로그램 실행 중
주요 인터페이스
check_type와 typechecked
확장 적용
가져오기 훅
Typeguard는 Python 형식 주석을 실행 중의 실제 값과 대조하는 라이브러리다. 개별 값 검사와 함수 계측 및 가져오기 훅을 제공해 정적 형식 검사만으로 확인하기 어려운 위반을 찾도록 돕는다.

실제 값과 형식 주석

인자와 반환값의 형식 주석을 실제 실행에서 확인한다. check_type은 개별 객체가 지정한 형식에 맞는지 검사하는 인터페이스다. 정적 검사와 함께 사용해 코드 분석 시점과 실행 시점의 확인을 보완할 수 있다.

검사 코드를 넣는 계측

함수나 모듈을 다시 컴파일하면서 검사 코드를 주입한다. 함수 인자와 반환값 및 주석이 있는 지역 변수의 대입을 검사할 수 있다. 생성기에서는 yield와 send의 값도 확인한다. 계측하려는 코드의 원본 소스에 접근할 수 있어야 한다.

적용 범위의 선택

typechecked를 개별 함수에 적용하거나 가져오기 훅으로 대상 모듈을 계측한다. 훅은 대상 모듈을 가져오기 전에 설치해야 한다. 다른 가져오기 훅과 충돌할 수 있어 적용 시점과 대상 범위를 함께 구성하는 방식이다.

관련 문서

Beartype / Pydantic / Python / 소프트웨어 테스트 / API / 디버깅