Empty list cannot be parsed by `repeated`
まだ誰も着手していません。
評価
調査の方向性
生成された init.py にあるメッセージ解析への呼び出しから始め、次に FromString と parse の周辺にある betterproto/init.py を調べ、提供されている GenerateRequest(messages=[]) の例と protoc コマンドを使って失敗を再現します。空の repeated フィールドが Pydantic のバリデーションエラーなしに正常にデコードされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Versions
betterproto[compiler]==2.0.0b6
grpcio-tools
pydantic==1.10.8
I get the following error on the server side:
023-07-10 15:48:08,980 - 140154842511168 - server.py-server:468 - ERROR: Application error
Traceback (most recent call last):
File "/worker-py/.direnv/python-3.10/lib/python3.10/site-packages/grpclib/server.py", line 446, in request_handler
await method_func(stream)
File "/worker-py/generated/__init__.py", line 157, in __rpc_teamlead_reply
request = await stream.recv_message()
File "/worker-py/.direnv/python-3.10/lib/python3.10/site-packages/grpclib/server.py", line 136, in recv_message
message = await recv_message(self._stream, self._codec, self._recv_type)
File "/worker-py/.direnv/python-3.10/lib/python3.10/site-packages/grpclib/stream.py", line 32, in recv_message
message = codec.decode(message_bin, message_type)
File "/worker-py/.direnv/python-3.10/lib/python3.10/site-packages/grpclib/encoding/proto.py", line 54, in decode
return message_type.FromString(data)
File "/worker-py/.direnv/python-3.10/lib/python3.10/site-packages/betterproto/__init__.py", line 1052, in FromString
return cls().parse(data)
File "pydantic/dataclasses.py", line 286, in pydantic.dataclasses._add_pydantic_validation_attributes.handle_extra_init
File "<string>", line 4, in __init__
File "pydantic/dataclasses.py", line 308, in pydantic.dataclasses._add_pydantic_validation_attributes.new_post_init
File "pydantic/dataclasses.py", line 425, in pydantic.dataclasses._dataclass_validate_values
pydantic.error_wrappers.ValidationError: 1 validation error for GenerateRequest
conversation
value is not a valid list (type=type_error.list)
proto defintion
service ReplyGenerator {
rpc Reply(GenerateRequest) returns (stream StreamReply) {}
}
message GenerateRequest {
repeated Message messages = 2;
}
Calling it like this from client:
async for res in service.teamlead_reply(guided_chat.GenerateRequest(messages=[])):
Compilation was done with:
PROTO_DIR=protos
GEN_DIR=generated
protofiles=$(find "${PROTO_DIR}" -name "*.proto")
python -m grpc_tools.protoc -I "${PROTO_DIR}" --python_betterproto_opt=pydantic_dataclasses --python_betterproto_out="${GEN_DIR}" ${protofiles}
- 主要言語
- Python
- スター
- 1.8k
- フォーク
- 235
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
danielgtaylor/python-betterproto のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
-
bug investigation needed
難易度 3/5 1〜2日 初心者へのやさしさ 42/100
-
bug investigation needed
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
-
bug investigation needed
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
danielgtaylor/python-betterproto#676 · コメント 3 件 ·
danielgtaylor/python-betterproto の issue をすべて見る
似ている issue
-
follow-up
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
Download helper still uses huggingface_hub arguments removed in 1.0: USE_SYMLINKS is silently ignored and every download ends with a WinError 3 line対応中かも @li-lizhe が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
IPv6 node addresses produce an invalid request URL対応中かも @RaphaelFakhri が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
typesense/typesense-python#154 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
elastic/elasticsearch-py#3592 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
developmentseed/titiler-cmr#250 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信