Repolode
nipunn1313

nipunn1313/mypy-protobuf

Protocol Buffer 정의에서 Python .pyi 타입 스텁 파일을 생성하고, 타입이 지정된 HasField, ClearField 및 gRPC 스텁을 제공하는 protoc 플러그인입니다.

스타
711
포크
81
열린 이슈
31
마지막 커밋
4일 전

어떤 프로젝트인가요?

mypy-protobuf는 .proto 정의에서 mypy와 호환되는 .pyi 스텁 파일을 생성하는 protoc 플러그인입니다. Python protobuf 코드에 정적 타입 정보를 제공해 mypy나 pyright 같은 타입 검사기가 런타임이 아닌 타입 검사 시점에 오류를 찾아낼 수 있도록 합니다.

protoc 내장 옵션인 --pyi_out으로 생성한 스텁과 비교하면, 생성된 파일에는 필드 존재 여부를 반영하는 생성자 타입, 타입이 지정된 HasField, WhichOneof 및 ClearField 메서드, 그리고 해당 메서드 인수의 타입 별칭이 추가됩니다. .proto 파일의 주석은 스텁의 docstring으로 포함되며, enum 값은 NewType으로 감싸 서로 맞지 않는 enum 값이 사용되면 오류로 표시됩니다. 사용 중단된 요소에는 @warnings.deprecated를 표시할 수 있습니다.

이 플러그인은 동기 및 비동기 버전의 gRPC 서비스와 클라이언트 스텁도 생성하며, 스칼라 및 map 필드 타입을 감싸는 casttype 및 keytype/valuetype 옵션을 지원합니다. protoc 32 이상과 python-protobuf 6.32 이상이 필요하며, 버전 2.10 이후에는 Python 2 대상 지원이 제거되었습니다.

핵심 기능

  • 01필드 존재 여부를 반영하는 생성자 타입을 포함한 .pyi 스텁을 생성합니다.
  • 02타입이 지정된 HasField, WhichOneof 및 ClearField 메서드를 제공합니다.
  • 03.proto 주석을 docstring으로 스텁에 포함합니다.
  • 04enum 값을 NewType으로 감싸 타입 검사기가 서로 맞지 않는 값을 찾아내도록 합니다.
  • 05동기 및 비동기 gRPC 서비스와 클라이언트 스텁을 생성합니다.
  • 06스칼라 및 map 필드에 사용자 지정 타입 래퍼를 지원합니다.

활용 사례

  • protobuf 메시지를 사용하는 Python 프로젝트에 mypy 또는 pyright 정적 타입 검사를 추가할 때.
  • Python 서비스용 타입 지정 gRPC 클라이언트 및 servicer 스텁을 생성할 때.
  • 생성된 protobuf 클래스의 IDE 자동 완성과 docstring을 개선할 때.

빠른 시작

  1. 1

    protobuf 릴리스 페이지에서 protoc(버전 32.0 이상)을 설치합니다

  2. 2

    pip으로 플러그인을 설치합니다

    pip3 install mypy-protobuf
  3. 3

    protoc으로 Python 코드와 함께 mypy 스텁을 생성합니다

    protoc --python_out=output/location --mypy_out=output/location

사용 전 알아둘 점

  • protoc 32.0 이상과 python-protobuf 6.32 이상이 필요합니다. 이전 버전은 테스트되지 않았습니다.

포함된 컬렉션

토픽

자주 묻는 질문

mypy-protobuf은(는) 무엇인가요?
Protocol Buffer 정의에서 Python .pyi 타입 스텁 파일을 생성하고, 타입이 지정된 HasField, ClearField 및 gRPC 스텁을 제공하는 protoc 플러그인입니다. mypy-protobuf는 .proto 정의에서 mypy와 호환되는 .pyi 스텁 파일을 생성하는 protoc 플러그인입니다. Python protobuf 코드에 정적 타입 정보를 제공해 mypy나 pyright 같은 타입 검사기가 런타임이 아닌 타입 검사 시점에 오류를 찾아낼 수 있도록 합니다.
mypy-protobuf은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
mypy-protobuf은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
mypy-protobuf은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. mypy-protobuf의 마지막 커밋은 2026년 11월 2일입니다.
mypy-protobuf은(는) 어디에 사용할 수 있나요?
protobuf 메시지를 사용하는 Python 프로젝트에 mypy 또는 pyright 정적 타입 검사를 추가할 때. Python 서비스용 타입 지정 gRPC 클라이언트 및 servicer 스텁을 생성할 때. 생성된 protobuf 클래스의 IDE 자동 완성과 docstring을 개선할 때.
mypy-protobuf는 어떻게 설치하나요?
protobuf 릴리스 페이지에서 protoc(버전 32.0 이상)을 설치합니다 pip으로 플러그인을 설치합니다: pip3 install mypy-protobuf protoc으로 Python 코드와 함께 mypy 스텁을 생성합니다: protoc --python_out=output/location --mypy_out=output/location
mypy-protobuf은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/nipunn1313/mypy-protobuf

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

관련 프로젝트