a2aproject / a2aproject/a2a-python

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

Aberta
#1,011 3 comentários 1 reação 0 responsáveis Ver no GitHub
maintainers-only
Linguagem predominante
Python
Estrelas
2.1k
Forks
496
Merge médio
4d 17h
PRs com merge (30d)
12

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.