danielgtaylor / danielgtaylor/python-betterproto

message names with mutliple constants don't generate correctly when used in grpc

オープン
#147 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。