a2aproject / a2aproject/a2a-python
[Task]: Replace deprecated `FieldDescriptor.label` with `is_repeated` in `proto_utils`
- 主要言語
- Python
- スター
- 2.1k
- フォーク
- 496
- 平均マージ
- 4日 17時間
- マージ済み PR(30日)
- 12
説明
## Summary
`src/a2a/utils/proto_utils.py` currently uses the deprecated `FieldDescriptor.label` property to check whether a protobuf field is repeated. The non-deprecated alternative is `FieldDescriptor.is_repeated`, but adopting it requires a newer minimum version of `protobuf` than we currently declare, which would be a breaking change for downstream consumers.
## Locations
All occurrences are in `src/a2a/utils/proto_utils.py`:
- `src/a2a/utils/proto_utils.py:177` — `_populate_message_from_params` (or similar)
- `src/a2a/utils/proto_utils.py:211` — `_check_required_field_violation`
- `src/a2a/utils/proto_utils.py:252` — `_recurse_validation`
Each site is marked with a `TODO` comment referencing this issue.
## Proposed change
1. Bump the minimum required `protobuf` version in `pyproject.toml` to one that exposes `FieldDescriptor.is_repeated` as a stable, non-deprecated API.
2. Replace all `field.label == FieldDescriptor.LABEL_REPEATED` checks with `field.is_repeated`.
3. Replace all `field.label != FieldDescriptor.LABEL_REPEATED` checks with `not field.is_repeated`.
4. Remove the `TODO` comments and unused `LABEL_REPEATED` import if no longer needed.
5. Schedule the change as part of the next breaking release.
コントリビューションガイド
評価
この issue はまだ評価されていません。