Skip to content

Commit 64beb03

Browse files
authored
[protobuf] Update annotations in internal/containers.pyi (#15117)
1 parent 6c1587c commit 64beb03

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

stubs/protobuf/google/protobuf/internal/containers.pyi

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from collections.abc import Callable, Iterable, Iterator, MutableMapping, Sequence
1+
from collections.abc import Callable, Iterable, Iterator, MutableMapping, MutableSequence, Sequence
22
from typing import Any, Protocol, SupportsIndex, TypeVar, overload, type_check_only
33
from typing_extensions import Self
44

@@ -25,12 +25,13 @@ class BaseContainer(Sequence[_T]):
2525
def __hash__(self) -> int: ...
2626
# Same as list.sort, the extra sort_function kwarg errors in Python 3
2727
def sort(self, *, key: Callable[[_T], Any] | None = None, reverse: bool = False) -> None: ...
28+
def reverse(self) -> None: ...
2829
@overload
2930
def __getitem__(self, key: SupportsIndex) -> _T: ...
3031
@overload
3132
def __getitem__(self, key: slice) -> list[_T]: ...
3233

33-
class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]):
34+
class RepeatedScalarFieldContainer(BaseContainer[_ScalarV], MutableSequence[_ScalarV]):
3435
__slots__ = ["_type_checker"]
3536
def __init__(self, message_listener: MessageListener, type_checker: _ValueChecker[_ScalarV]) -> None: ...
3637
def append(self, value: _ScalarV) -> None: ...
@@ -46,7 +47,7 @@ class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]):
4647
def __delitem__(self, key: int | slice) -> None: ...
4748
def __eq__(self, other: object) -> bool: ...
4849

49-
class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]):
50+
class RepeatedCompositeFieldContainer(BaseContainer[_MessageV], MutableSequence[_MessageV]):
5051
__slots__ = ["_message_descriptor"]
5152
def __init__(self, message_listener: MessageListener, message_descriptor: Descriptor) -> None: ...
5253
def add(self, **kwargs: Any) -> _MessageV: ...
@@ -56,6 +57,10 @@ class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]):
5657
def MergeFrom(self, other: Self | Iterable[_MessageV]) -> None: ...
5758
def remove(self, elem: _MessageV) -> None: ...
5859
def pop(self, key: int = -1) -> _MessageV: ...
60+
@overload
61+
def __setitem__(self, key: int, value: _MessageV) -> None: ...
62+
@overload
63+
def __setitem__(self, key: slice, value: Iterable[_MessageV]) -> None: ...
5964
def __delitem__(self, key: int | slice) -> None: ...
6065
def __eq__(self, other: object) -> bool: ...
6166

0 commit comments

Comments
 (0)