import sys from typing import Any, ByteString, Sequence, Tuple, Type, TypeVar, Union from .descriptor import Descriptor, FieldDescriptor from .internal.extension_dict import _ExtensionDict, _ExtensionFieldDescriptor class Error(Exception): ... class DecodeError(Error): ... class EncodeError(Error): ... _M = TypeVar("_M", bound=Message) # message type (of self) if sys.version_info >= (3, 0): _Serialized = ByteString else: _Serialized = Union[bytes, buffer, unicode] class Message: DESCRIPTOR: Descriptor def __deepcopy__(self, memo=...): ... def __eq__(self, other_msg): ... def __ne__(self, other_msg): ... def MergeFrom(self: _M, other_msg: _M) -> None: ... def CopyFrom(self: _M, other_msg: _M) -> None: ... def Clear(self) -> None: ... def SetInParent(self) -> None: ... def IsInitialized(self) -> bool: ... def MergeFromString(self, serialized: _Serialized) -> int: ... def ParseFromString(self, serialized: _Serialized) -> int: ... def SerializeToString(self, deterministic: bool = ...) -> bytes: ... def SerializePartialToString(self, deterministic: bool = ...) -> bytes: ... def ListFields(self) -> Sequence[Tuple[FieldDescriptor, Any]]: ... def HasExtension(self: _M, extension_handle: _ExtensionFieldDescriptor[_M, Any]) -> bool: ... def ClearExtension(self: _M, extension_handle: _ExtensionFieldDescriptor[_M, Any]) -> None: ... def ByteSize(self) -> int: ... @classmethod def FromString(cls: Type[_M], s: _Serialized) -> _M: ... @property def Extensions(self: _M) -> _ExtensionDict[_M]: ... # Intentionally left out typing on these three methods, because they are # stringly typed and it is not useful to call them on a Message directly. # We prefer more specific typing on individual subclasses of Message # See https://github.com/dropbox/mypy-protobuf/issues/62 for details def HasField(self, field_name: Any) -> bool: ... def ClearField(self, field_name: Any) -> None: ... def WhichOneof(self, oneof_group: Any) -> Any: ... # TODO: check kwargs def __init__(self, **kwargs) -> None: ...