Add missing protobuf container methods (#2254)

Implementation of the methods is here:

https://github.com/google/protobuf/blob/master/python/google/protobuf/internal/containers.py
This commit is contained in:
Jukka Lehtosalo
2018-06-19 15:52:54 +01:00
committed by Ivan Levkivskyi
parent a5b7ddd96c
commit a88d942f91

View File

@@ -2,7 +2,7 @@ from google.protobuf.descriptor import Descriptor
from google.protobuf.internal.message_listener import MessageListener
from google.protobuf.message import Message
from typing import (
MutableSequence, Sequence, TypeVar, Generic, Any, Iterator, Iterable,
Sequence, TypeVar, Generic, Any, Iterator, Iterable,
Union, Optional, Callable, overload, List
)
@@ -19,14 +19,33 @@ class BaseContainer(Sequence[_T]):
@overload
def __getitem__(self, key: slice) -> List[_T]: ...
class RepeatedScalarFieldContainer(Generic[_T], BaseContainer[_T]):
class RepeatedScalarFieldContainer(BaseContainer[_T]):
def __init__(self, message_listener: MessageListener, message_descriptor: Descriptor) -> None: ...
def append(self, value: _T) -> None: ...
def insert(self, key: int, value: _T) -> None: ...
def extend(self, elem_seq: Optional[Iterable[_T]]) -> None: ...
def MergeFrom(self, other: RepeatedScalarFieldContainer[_T]) -> None: ...
def remove(self, elem: _T) -> None: ...
def pop(self, key: int = ...) -> _T: ...
@overload
def __setitem__(self, key: int, value: _T) -> None: ...
@overload
def __setitem__(self, key: slice, value: Iterable[_T]) -> None: ...
def __getslice__(self, start: int, stop: int) -> List[_T]: ...
def __setslice__(self, start: int, stop: int, values: Iterable[_T]) -> None: ...
def __delitem__(self, key: Union[int, slice]) -> None: ...
def __delslice__(self, start: int, stop: int) -> None: ...
class RepeatedCompositeFieldContainer(Generic[_T], BaseContainer[_T]):
class RepeatedCompositeFieldContainer(BaseContainer[_T]):
def __init__(self, message_listener: MessageListener, type_checker: Any) -> None: ...
def add(self, **kwargs: Any) -> _T: ...
def extend(self, elem_seq: Iterable[_T]) -> None: ...
def MergeFrom(self, other: RepeatedCompositeFieldContainer[_T]) -> None: ...
def remove(self, elem: _T) -> None: ...
def pop(self, key: int = ...) -> _T: ...
def __getslice__(self, start: int, stop: int) -> List[_T]: ...
def __delitem__(self, key: Union[int, slice]) -> None: ...
def __delslice__(self, start: int, stop: int) -> None: ...
# Classes not yet typed
class Mapping(Any):