Closed
Description
Bug report
Bug description:
The __weakref__
slot is not set for classes that have a Generic[T]
base.
from typing import Generic, TypeVar
from dataclasses import dataclass
T = TypeVar("T")
@dataclass(slots=True, weakref_slot=True)
class Token(Generic[T]):
ctx: T
print(f"{Token.__slots__=!r}")
print(f"{hasattr(Token, '__weakref__')=}")
Output on 3.12.2:
Token.__slots__=('ctx', '__weakref__')
hasattr(Token, '__weakref__')=True
On 3.12.3:
Token.__slots__=('ctx',)
hasattr(Token, '__weakref__')=False
CPython versions tested on:
3.12
Operating systems tested on:
Linux, macOS, Windows
Linked PRs
Metadata
Metadata
Assignees
Labels
only security fixesonly security fixesbugs and security fixesbugs and security fixesPython modules in the Lib dirPython modules in the Lib dirAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error