From 60826add91b01e638c67054da02e5ec268ea8b29 Mon Sep 17 00:00:00 2001 From: Nikita Paniukhin Date: Tue, 9 Dec 2025 03:15:24 +0100 Subject: [PATCH] [protobuf] Update containers from source --- .../protobuf/google/protobuf/internal/containers.pyi | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/stubs/protobuf/google/protobuf/internal/containers.pyi b/stubs/protobuf/google/protobuf/internal/containers.pyi index bdcd5208b9d6..6fa55546e9ae 100644 --- a/stubs/protobuf/google/protobuf/internal/containers.pyi +++ b/stubs/protobuf/google/protobuf/internal/containers.pyi @@ -1,4 +1,4 @@ -from collections.abc import Callable, Iterable, Iterator, MutableMapping, Sequence +from collections.abc import Callable, Iterable, Iterator, MutableMapping, MutableSequence, Sequence from typing import Any, Protocol, SupportsIndex, TypeVar, overload, type_check_only from typing_extensions import Self @@ -25,12 +25,13 @@ class BaseContainer(Sequence[_T]): def __hash__(self) -> int: ... # Same as list.sort, the extra sort_function kwarg errors in Python 3 def sort(self, *, key: Callable[[_T], Any] | None = None, reverse: bool = False) -> None: ... + def reverse(self) -> None: ... @overload def __getitem__(self, key: SupportsIndex) -> _T: ... @overload def __getitem__(self, key: slice) -> list[_T]: ... -class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]): +class RepeatedScalarFieldContainer(BaseContainer[_ScalarV], MutableSequence[_ScalarV]): __slots__ = ["_type_checker"] def __init__(self, message_listener: MessageListener, type_checker: _ValueChecker[_ScalarV]) -> None: ... def append(self, value: _ScalarV) -> None: ... @@ -46,7 +47,7 @@ class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]): def __delitem__(self, key: int | slice) -> None: ... def __eq__(self, other: object) -> bool: ... -class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]): +class RepeatedCompositeFieldContainer(BaseContainer[_MessageV], MutableSequence[_MessageV]): __slots__ = ["_message_descriptor"] def __init__(self, message_listener: MessageListener, message_descriptor: Descriptor) -> None: ... def add(self, **kwargs: Any) -> _MessageV: ... @@ -56,6 +57,10 @@ class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]): def MergeFrom(self, other: Self | Iterable[_MessageV]) -> None: ... def remove(self, elem: _MessageV) -> None: ... def pop(self, key: int = -1) -> _MessageV: ... + @overload + def __setitem__(self, key: int, value: _MessageV) -> None: ... + @overload + def __setitem__(self, key: slice, value: Iterable[_MessageV]) -> None: ... def __delitem__(self, key: int | slice) -> None: ... def __eq__(self, other: object) -> bool: ...