Skip to content

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

@sokoliva

Description

@sokoliva

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions