Add typing for google protobuf mapping containers (#4265)

This commit is contained in:
Nipunn Koorapati
2020-06-30 00:37:50 -07:00
committed by GitHub
parent 6bffc6534b
commit ad8fd9dba7
2 changed files with 41 additions and 9 deletions

View File

@@ -1,10 +1,28 @@
from typing import Any, Callable, Generic, Iterable, Iterator, List, Optional, Sequence, TypeVar, Union, overload
from typing import (
Any,
Callable,
Generic,
Iterable,
Iterator,
List,
Mapping as Mapping,
MutableMapping as MutableMapping,
Optional,
Sequence,
TypeVar,
Union,
overload,
)
from google.protobuf.descriptor import Descriptor
from google.protobuf.internal.message_listener import MessageListener
from google.protobuf.internal.python_message import GeneratedProtocolMessageType
from google.protobuf.message import Message
_T = TypeVar("_T")
_K = TypeVar("_K")
_V = TypeVar("_V")
_M = TypeVar("_M")
class BaseContainer(Sequence[_T]):
def __init__(self, message_listener: MessageListener) -> None: ...
@@ -23,7 +41,7 @@ class RepeatedScalarFieldContainer(BaseContainer[_T]):
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 MergeFrom(self: _M, other: _M) -> None: ...
def remove(self, elem: _T) -> None: ...
def pop(self, key: int = ...) -> _T: ...
@overload
@@ -42,7 +60,7 @@ class RepeatedCompositeFieldContainer(BaseContainer[_T]):
def append(self, value: _T) -> None: ...
def insert(self, key: int, value: _T) -> None: ...
def extend(self, elem_seq: Iterable[_T]) -> None: ...
def MergeFrom(self, other: RepeatedCompositeFieldContainer[_T]) -> None: ...
def MergeFrom(self: _M, other: _M) -> None: ...
def remove(self, elem: _T) -> None: ...
def pop(self, key: int = ...) -> _T: ...
def __getslice__(self, start: int, stop: int) -> List[_T]: ...
@@ -50,10 +68,23 @@ class RepeatedCompositeFieldContainer(BaseContainer[_T]):
def __delslice__(self, start: int, stop: int) -> None: ...
def __eq__(self, other: object) -> bool: ...
# Classes not yet typed
class Mapping(object):
def __getattr__(self, name: str) -> Any: ... # incomplete
class ScalarMap(MutableMapping[_K, _V]):
def __setitem__(self, k: _K, v: _V) -> None: ...
def __delitem__(self, v: _K) -> None: ...
def __getitem__(self, k: _K) -> _V: ...
def __len__(self) -> int: ...
def __iter__(self) -> Iterator[_K]: ...
def MergeFrom(self: _M, other: _M): ...
def InvalidateIterators(self) -> None: ...
def GetEntryClass(self) -> GeneratedProtocolMessageType: ...
class MutableMapping(Mapping): ...
class ScalarMap(MutableMapping): ...
class MessageMap(MutableMapping): ...
class MessageMap(MutableMapping[_K, _V]):
def __setitem__(self, k: _K, v: _V) -> None: ...
def __delitem__(self, v: _K) -> None: ...
def __getitem__(self, k: _K) -> _V: ...
def __len__(self) -> int: ...
def __iter__(self) -> Iterator[_K]: ...
def get_or_create(self, key: _K) -> _V: ...
def MergeFrom(self: _M, other: _M): ...
def InvalidateIterators(self) -> None: ...
def GetEntryClass(self) -> GeneratedProtocolMessageType: ...

View File

@@ -0,0 +1 @@
class GeneratedProtocolMessageType(type): ...