a2aproject / a2aproject/a2a-python

[Task]: Replace deprecated `FieldDescriptor.label` with `is_repeated` in `proto_utils`

Offen
#1,011 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
maintainers-only
Vorherrschende Sprache
Python
Sterne
2.1k
Forks
496
Ø Merge
4 T. 17 Std.
Gemergte PRs (30 T.)
12

Beschreibung

## 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.