diff --git a/third_party/2/google/protobuf/internal/containers.pyi b/third_party/2/google/protobuf/internal/containers.pyi new file mode 100644 index 000000000..46222e28a --- /dev/null +++ b/third_party/2/google/protobuf/internal/containers.pyi @@ -0,0 +1,46 @@ +from google.protobuf.descriptor import Descriptor +from google.protobuf.internal.message_listener import MessageListener +from google.protobuf.message import Message +from typing import Sequence, TypeVar, Generic, Any, Iterator, Iterable, Union, Optional, Callable + +_T = TypeVar('_T') +class BaseContainer(Generic[_T]): + def __init__(self, message_listener: MessageListener) -> None: ... + def __getitem__(self, key: int) -> _T: ... + def __len__(self) -> int: ... + def __ne__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __repr__(self) -> str: ... + def sort(self, *, key: Optional[Callable[[_T], Any]] = ..., reverse: bool = ...) -> None: ... + +class RepeatedScalarFieldContainer(Generic[_T], 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: Sequence[_T]) -> None: ... + def MergeFrom(self, other: RepeatedScalarFieldContainer[_T]) -> None: ... + def remove(self, elem: _T) -> None: ... + def pop(self, key: int = ...) -> _T: ... + def __iter__(self) -> Iterator[_T]: ... + def __delitem__(self, key: Union[int, slice]) -> None: ... + def __setitem__(self, key: int, value: _T) -> None: ... + +class RepeatedCompositeFieldContainer(Generic[_T], BaseContainer[_T]): + def __init__(self, message_listener: MessageListener, type_checker: Any) -> None: ... + def add(self, **kwargs: Any) -> _T: ... + def extend(self, elem_seq: Sequence[_T]) -> None: ... + def MergeFrom(self, other: RepeatedCompositeFieldContainer[_T]) -> None: ... + def remove(self, elem: _T) -> None: ... + def pop(self, key: int = ...) -> _T: ... + def __iter__(self) -> Iterator[_T]: ... + def __delitem__(self, key: Union[int, slice]) -> None: ... + +# Classes not yet typed +class Mapping(Any): + pass +class MutableMapping(Mapping): + pass +class ScalarMap(MutableMapping): + pass +class MessageMap(MutableMapping): + pass diff --git a/third_party/2/google/protobuf/internal/message_listener.pyi b/third_party/2/google/protobuf/internal/message_listener.pyi new file mode 100644 index 000000000..e8d33a5a1 --- /dev/null +++ b/third_party/2/google/protobuf/internal/message_listener.pyi @@ -0,0 +1,5 @@ +class MessageListener(object): + def Modified(self) -> None: ... + +class NullMessageListener(MessageListener): + def Modified(self) -> None: ...