mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-08-03 22:48:29 +08:00
Add __slots__ to third-party packages using stubdefaulter (#14619)
This commit is contained in:
@@ -31,3 +31,7 @@ google.protobuf.descriptor.OneofDescriptor
|
||||
|
||||
# Runtime does not have __iter__ (yet...): hack in spirit of https://github.com/python/typeshed/issues/7813
|
||||
google.protobuf.internal.well_known_types.ListValue.__iter__
|
||||
|
||||
# It's a list at runtime, but if we do that pyright complains about incompatible overrides
|
||||
# in subclasses that use a tuple for __slots__.
|
||||
google.protobuf.message.Message.__slots__
|
||||
|
||||
@@ -18,6 +18,7 @@ class _ValueChecker(Protocol[_T]):
|
||||
def DefaultValue(self) -> _T: ...
|
||||
|
||||
class BaseContainer(Sequence[_T]):
|
||||
__slots__ = ["_message_listener", "_values"]
|
||||
def __init__(self, message_listener: MessageListener) -> None: ...
|
||||
def __len__(self) -> int: ...
|
||||
def __ne__(self, other: object) -> bool: ...
|
||||
@@ -30,6 +31,7 @@ class BaseContainer(Sequence[_T]):
|
||||
def __getitem__(self, key: slice) -> list[_T]: ...
|
||||
|
||||
class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]):
|
||||
__slots__ = ["_type_checker"]
|
||||
def __init__(self, message_listener: MessageListener, type_checker: _ValueChecker[_ScalarV]) -> None: ...
|
||||
def append(self, value: _ScalarV) -> None: ...
|
||||
def insert(self, key: int, value: _ScalarV) -> None: ...
|
||||
@@ -45,6 +47,7 @@ class RepeatedScalarFieldContainer(BaseContainer[_ScalarV]):
|
||||
def __eq__(self, other: object) -> bool: ...
|
||||
|
||||
class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]):
|
||||
__slots__ = ["_message_descriptor"]
|
||||
def __init__(self, message_listener: MessageListener, message_descriptor: Descriptor) -> None: ...
|
||||
def add(self, **kwargs: Any) -> _MessageV: ...
|
||||
def append(self, value: _MessageV) -> None: ...
|
||||
@@ -57,6 +60,7 @@ class RepeatedCompositeFieldContainer(BaseContainer[_MessageV]):
|
||||
def __eq__(self, other: object) -> bool: ...
|
||||
|
||||
class ScalarMap(MutableMapping[_K, _ScalarV]):
|
||||
__slots__ = ["_key_checker", "_value_checker", "_values", "_message_listener", "_entry_descriptor"]
|
||||
def __init__(
|
||||
self,
|
||||
message_listener: MessageListener,
|
||||
@@ -82,6 +86,7 @@ class ScalarMap(MutableMapping[_K, _ScalarV]):
|
||||
def GetEntryClass(self) -> GeneratedProtocolMessageType: ...
|
||||
|
||||
class MessageMap(MutableMapping[_K, _MessageV]):
|
||||
__slots__ = ["_key_checker", "_values", "_message_listener", "_message_descriptor", "_entry_descriptor"]
|
||||
def __init__(
|
||||
self,
|
||||
message_listener: MessageListener,
|
||||
|
||||
@@ -7,6 +7,7 @@ from typing_extensions import TypeAlias
|
||||
from google.protobuf import struct_pb2
|
||||
|
||||
class Any:
|
||||
__slots__ = ()
|
||||
type_url: str
|
||||
value: Incomplete
|
||||
def Pack(self, msg, type_url_prefix: str = "type.googleapis.com/", deterministic=None) -> None: ...
|
||||
@@ -15,6 +16,7 @@ class Any:
|
||||
def Is(self, descriptor) -> bool: ...
|
||||
|
||||
class Timestamp:
|
||||
__slots__ = ()
|
||||
def ToJsonString(self) -> str: ...
|
||||
seconds: int
|
||||
nanos: int
|
||||
@@ -32,6 +34,7 @@ class Timestamp:
|
||||
def FromDatetime(self, dt: datetime) -> None: ...
|
||||
|
||||
class Duration:
|
||||
__slots__ = ()
|
||||
def ToJsonString(self) -> str: ...
|
||||
seconds: int
|
||||
nanos: int
|
||||
@@ -48,6 +51,7 @@ class Duration:
|
||||
def FromTimedelta(self, td: timedelta) -> None: ...
|
||||
|
||||
class FieldMask:
|
||||
__slots__ = ()
|
||||
def ToJsonString(self) -> str: ...
|
||||
def FromJsonString(self, value: tAny) -> None: ...
|
||||
def IsValidForDescriptor(self, message_descriptor: tAny): ...
|
||||
@@ -63,6 +67,7 @@ _StructValue: TypeAlias = struct_pb2.Struct | struct_pb2.ListValue | str | float
|
||||
_StructValueArg: TypeAlias = _StructValue | Mapping[str, _StructValueArg] | Sequence[_StructValueArg]
|
||||
|
||||
class Struct:
|
||||
__slots__: tuple[()] = ()
|
||||
def __getitem__(self, key: str) -> _StructValue: ...
|
||||
def __setitem__(self, key: str, value: _StructValueArg) -> None: ...
|
||||
def __delitem__(self, key: str) -> None: ...
|
||||
@@ -76,6 +81,7 @@ class Struct:
|
||||
def update(self, dictionary: SupportsItems[str, _StructValueArg]) -> None: ...
|
||||
|
||||
class ListValue:
|
||||
__slots__: tuple[()] = ()
|
||||
def __len__(self) -> int: ...
|
||||
def append(self, value: _StructValue) -> None: ...
|
||||
def extend(self, elem_seq: Iterable[_StructValue]) -> None: ...
|
||||
|
||||
@@ -12,6 +12,7 @@ class DecodeError(Error): ...
|
||||
class EncodeError(Error): ...
|
||||
|
||||
class Message:
|
||||
__slots__: tuple[()] = ()
|
||||
DESCRIPTOR: Descriptor | _upb_Descriptor
|
||||
def __deepcopy__(self, memo: Any = None) -> Self: ...
|
||||
def __eq__(self, other_msg): ...
|
||||
|
||||
Reference in New Issue
Block a user