Skip to content

Commit 4f0d8c5

Browse files
authored
Delete EnumMeta.__setattr__ and EnumMeta.__delattr__ (#7388)
1 parent 2d6ab4d commit 4f0d8c5

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

stdlib/builtins.pyi

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,17 @@ class object:
9191
def __class__(self, __type: type[object]) -> None: ... # type: ignore # noqa: F811
9292
def __init__(self) -> None: ...
9393
def __new__(cls: type[Self]) -> Self: ...
94+
# N.B. `object.__setattr__` and `object.__delattr__` are heavily special-cased by type checkers.
95+
# Overriding them in subclasses has different semantics, even if the override has an identical signature.
9496
def __setattr__(self, __name: str, __value: Any) -> None: ...
97+
def __delattr__(self, __name: str) -> None: ...
9598
def __eq__(self, __o: object) -> bool: ...
9699
def __ne__(self, __o: object) -> bool: ...
97100
def __str__(self) -> str: ... # noqa Y029
98101
def __repr__(self) -> str: ... # noqa Y029
99102
def __hash__(self) -> int: ...
100103
def __format__(self, __format_spec: str) -> str: ...
101104
def __getattribute__(self, __name: str) -> Any: ...
102-
def __delattr__(self, __name: str) -> None: ...
103105
def __sizeof__(self) -> int: ...
104106
# return type of pickle methods is rather hard to express in the current type system
105107
# see #6661 and https://docs.python.org/3/library/pickle.html#object.__reduce__

stdlib/enum.pyi

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,6 @@ class EnumMeta(ABCMeta):
9595
def __members__(self: type[_EnumMemberT]) -> types.MappingProxyType[str, _EnumMemberT]: ...
9696
def __len__(self) -> int: ...
9797
def __bool__(self) -> Literal[True]: ...
98-
def __setattr__(self, name: str, value: Any) -> None: ...
99-
def __delattr__(self, name: str) -> None: ...
10098
if sys.version_info >= (3, 11):
10199
# Simple value lookup
102100
@overload # type: ignore[override]

0 commit comments

Comments
 (0)