Update type var typing on protobuf message.pyi (#3996)

Add support for message type var generics
This commit is contained in:
Nipunn Koorapati
2020-05-19 06:59:37 +12:00
committed by GitHub
parent 949378fdd9
commit f0927787f0

View File

@@ -2,7 +2,7 @@ import sys
from typing import Any, Sequence, Optional, Tuple, Type, TypeVar, Union
from .descriptor import DescriptorBase, FieldDescriptor
from .descriptor import Descriptor, DescriptorBase, FieldDescriptor
class Error(Exception): ...
class DecodeError(Error): ...
@@ -12,7 +12,7 @@ class _ExtensionDict:
def __getitem__(self, extension_handle: DescriptorBase) -> Any: ...
def __setitem__(self, extension_handle: DescriptorBase, value: Any) -> None: ...
_T = TypeVar("_T")
_M = TypeVar("_M", bound=Message) # message type (of self)
if sys.version_info < (3,):
_Serialized = Union[bytes, buffer, unicode]
@@ -20,12 +20,12 @@ else:
_Serialized = bytes
class Message:
DESCRIPTOR: Any
DESCRIPTOR: Descriptor
def __deepcopy__(self, memo=...): ...
def __eq__(self, other_msg): ...
def __ne__(self, other_msg): ...
def MergeFrom(self, other_msg: Message) -> None: ...
def CopyFrom(self, other_msg: Message) -> None: ...
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: ...
@@ -38,9 +38,10 @@ class Message:
def ClearExtension(self, extension_handle): ...
def ByteSize(self) -> int: ...
@classmethod
def FromString(cls: Type[_T], s: _Serialized) -> _T: ...
def FromString(cls: Type[_M], s: _Serialized) -> _M: ...
@property
def Extensions(self) -> _ExtensionDict: ...
# 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