Add __slots__ to third-party packages using stubdefaulter (#14619)

This commit is contained in:
Jelle Zijlstra
2025-08-21 15:38:13 -07:00
committed by GitHub
parent 573b57d8da
commit ca44e4c45d
135 changed files with 675 additions and 25 deletions
@@ -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): ...