HTTPとgRPCの統一トランスポート、ミドルウェア、Protobufベースのコード生成を備えた、クラウドネイティブなマイクロサービス構築向けの軽量Goフレームワーク。
nipunn1313/mypy-protobuf
Protocol Buffer定義から、型付きHasField、ClearField、gRPCスタブを含むPythonの.pyi型スタブを生成するprotocプラグイン。
- スター
- 711
- フォーク
- 81
- 未解決の Issue
- 31
- 最終コミット
- 5 日前
これは何?
mypy-protobufは、.proto定義からmypy互換の.pyiスタブを生成するprotocプラグインです。Pythonのprotobufコードに静的な型情報を付与し、mypyやpyrightなどの型チェッカーが実行時ではなく型チェック時にエラーを検出できるようにします。
protoc標準の--pyi_outが生成するスタブと比べて、生成ファイルにはフィールドの存在を考慮したコンストラクターの型、型付きのHasField、WhichOneof、ClearFieldメソッド、および各メソッドの引数の型エイリアスが追加されます。.protoファイル内のコメントはdocstringとしてスタブに引き継がれ、列挙値はNewTypeでラップされるため、列挙値の型の不一致を検出できます。非推奨の要素には@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としてスタブに引き継ぎます。
- 04列挙値をNewTypeでラップし、型チェッカーが値の不一致を検出できるようにします。
- 05同期・非同期のgRPCサービスとクライアントのスタブを生成します。
- 06スカラー型やmapフィールドにカスタム型ラッパーを指定できます。
ユースケース
- protobufメッセージを使うPythonプロジェクトに、mypyやpyrightによる静的型チェックを導入する。
- Pythonサービス向けに、型付きのgRPCクライアントおよびサーバー実装用スタブを生成する。
- 生成された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定義から、型付きHasField、ClearField、gRPCスタブを含むPythonの.pyi型スタブを生成する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クライアントおよびサーバー実装用スタブを生成する。 生成された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 の数値は毎日更新されます。
関連プロジェクト
Goサービス向けに、RESTfulなJSON HTTP呼び出しをgRPCリクエストへ変換するリバースプロキシサーバーを生成するprotocプラグイン。
JSON入力でgRPCサーバーを呼び出す、curlのようなコマンドラインツール。server reflectionやprotoファイルからスキーマを取得できます。
gRPCサーバーにリクエストを対話的に送信するブラウザベースのUIを起動するCLIツール。REST向けのPostmanに相当します。
gRPCサービスのベンチマークや負荷テストに使えるCLIツール。並行数、リクエストレート、出力形式を設定できます。
Googleが提供する、構造化データのシリアライズに使える言語・プラットフォーム非依存の形式とツールチェーン。protocコンパイラと多言語向けランタイムを備えています。