[protobuf] Update annotations in internal/containers.pyi (#15117)

This commit is contained in:
Nikita Paniukhin
2025-12-09 17:29:31 +01:00
committed by GitHub
parent 6c1587c46e
commit 64beb030c0
@@ -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: ...