Repolode
agronholm

agronholm/typeguard

함수, 임의의 객체, 지역 변수에 지정된 PEP 484 주석을 검증하는 Python 런타임 타입 검사기입니다.

스타
1,793
포크
154
열린 이슈
59
마지막 커밋
9일 전

어떤 프로젝트인가요?

Typeguard는 프로그램 실행 중 Python 타입 주석을 검사해 mypy 같은 정적 검사기로는 잡아내지 못하는 위반을 찾아냅니다. 임의의 타입 힌트를 이해하는 더 강력한 isinstance() 대안으로 사용하거나, 값을 실제로 검증하는 cast() 대체제로 사용할 수 있습니다.

자동 검사를 위해 Typeguard는 두 가지 계측 방식을 제공합니다. @typechecked 데코레이터는 개별 함수를 다시 컴파일하고, 인수와 반환값, 주석이 지정된 지역 변수의 대입, 제너레이터의 yield 및 send 값에 대한 검사를 삽입합니다. install_import_hook()으로 설치하는 import hook은 대상 모듈을 가져올 때 소스 코드를 변경하지 않고 계측하지만, 해당 모듈이 로드되기 전에 설치해야 합니다.

또한 라이브러리는 더 간단하고 디버거 친화적인 방식으로 check_argument_types()와 check_return_type()을 제공합니다. 단, 중첩 함수에 정의된 힌트처럼 동적으로 정의된 힌트에는 신뢰성이 떨어질 수 있습니다. 계측하려면 모듈의 원본 소스 코드에 접근할 수 있어야 합니다.

핵심 기능

  • 01실행 중 함수 인수와 반환값이 PEP 484 주석에 부합하는지 검사합니다.
  • 02임의의 타입 주석을 지원해 isinstance()나 cast()의 더 강력한 대안으로 사용할 수 있습니다.
  • 03@typechecked 데코레이터로 개별 함수를 계측합니다.
  • 04소스 코드를 변경하지 않고 지정한 모듈을 검사하는 import hook을 제공합니다.
  • 05일반 제너레이터와 비동기 제너레이터의 yield 및 send 값을 검사합니다.

활용 사례

  • 정적 타입 검사기와 함께 Python 코드에 추가적인 타입 안전성을 더할 때.
  • 타입 주석만으로 올바른 타입이 보장되지 않는 경계에서 데이터를 검증할 때.
  • 실행 중에만 나타나는 타입 불일치를 디버깅할 때.
  • 테스트 스위트나 스테이징 환경에서 타입 힌트를 강제할 때.

빠른 시작

  1. 1

    PyPI에서 패키지를 설치합니다

    pip install typeguard
  2. 2

    런타임에 값을 검증하려면 check_type을 사용합니다

사용 전 알아둘 점

  • README에는 라이선스가 명시되어 있지 않습니다. 메타데이터에는 NOASSERTION으로 표시되어 있으므로 사용 전에 라이선스 파일을 확인하세요.
  • 코드 계측을 수행하려면 계측 대상 모듈의 원본 소스 코드에 액세스할 수 있어야 합니다.
  • 가져오기 훅이 다른 가져오기 훅과 충돌할 수 있습니다.

포함된 컬렉션

토픽

#python#type-checking#type-hints#pep-484#runtime-validation#testing

자주 묻는 질문

typeguard은(는) 무엇인가요?
함수, 임의의 객체, 지역 변수에 지정된 PEP 484 주석을 검증하는 Python 런타임 타입 검사기입니다. Typeguard는 프로그램 실행 중 Python 타입 주석을 검사해 mypy 같은 정적 검사기로는 잡아내지 못하는 위반을 찾아냅니다. 임의의 타입 힌트를 이해하는 더 강력한 isinstance() 대안으로 사용하거나, 값을 실제로 검증하는 cast() 대체제로 사용할 수 있습니다.
typeguard은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
typeguard은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
typeguard은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. typeguard의 마지막 커밋은 2026년 10월 29일입니다.
typeguard은(는) 어디에 사용할 수 있나요?
정적 타입 검사기와 함께 Python 코드에 추가적인 타입 안전성을 더할 때. 타입 주석만으로 올바른 타입이 보장되지 않는 경계에서 데이터를 검증할 때. 실행 중에만 나타나는 타입 불일치를 디버깅할 때. 테스트 스위트나 스테이징 환경에서 타입 힌트를 강제할 때.
typeguard는 어떻게 설치하나요?
PyPI에서 패키지를 설치합니다: pip install typeguard 런타임에 값을 검증하려면 check_type을 사용합니다
typeguard은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/agronholm/typeguard

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

실행하지 않고도 PEP 484 타입 힌트를 바탕으로 Python 코드의 타입 오류를 찾아내는 정적 타입 검사기입니다.

개발 도구#python#static-typing#type-checker
2.1만+3 이번 주3.4천PythonOther활발히 관리됨업데이트 어제