통합 HTTP·gRPC 전송 계층, 미들웨어, Protobuf 기반 코드 생성을 제공하는 경량 Go 클라우드 네이티브 마이크로서비스 프레임워크입니다.
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
protobuf 릴리스 페이지에서 protoc(버전 32.0 이상)을 설치합니다
- 2
pip으로 플러그인을 설치합니다
pip3 install mypy-protobuf - 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 통계는 매일 갱신됩니다.
관련 프로젝트
JSON 입력과 서버 reflection 또는 proto 파일을 통한 스키마 탐색을 지원하는 gRPC 서버 호출용 CLI 도구입니다.
gRPC 서버에 요청을 대화형으로 보내는 브라우저 UI를 실행하는 CLI 도구로, REST용 Postman과 비슷합니다.
동시성, 요청률 제한, 출력 형식을 설정해 gRPC 서비스를 벤치마킹하고 부하 테스트하는 CLI 도구입니다.
Google의 언어 및 플랫폼 독립적인 구조화 데이터 직렬화 형식과 도구 체인으로, protoc 컴파일러와 다양한 언어용 런타임을 제공합니다.