danielgtaylor / danielgtaylor/python-betterproto
message names with mutliple constants don't generate correctly when used in grpc
- 主要言語
- Python
- スター
- 1.8k
- フォーク
- 234
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Given a message such as this:
```proto
message IDMessage {
string id = 1;
}
```
When it is used in an rpc as th einput message, this is generated
```python
async def get_revision(self) -> "Revision":
"""GetRevision returns a revision"""
request = IdMessage()
return await self._unary_unary(
"/somerpc.Name/GetRevision", request, Revision
)
```
if changed to:
```proto
message IdMessage {
string id = 1;
}
```
The generated prototype is then fixed:
```python
async def get_revision(self, *, id: str = "") ->"Revision":
"""GetRevision returns a revision"""
request = IdMessage()
request.id = id
return await self._unary_unary(
"/somerpc.Name/GetRevision", request, Revision
)
```
コントリビューションガイド
調査の方向性
2つの protobuf メッセージ定義と、そのメッセージを入力として使用する RPC で問題を再現します。まず、生成された非同期 gRPC クライアントメソッドを追跡し、複数の定数の場合と単一の定数の場合を比較します。両方のケースで期待されるメソッドシグネチャとリクエストフィールドの代入が生成されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- grpc, python
- 領域
- api, tooling
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100