-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
bugmypy got something wrongmypy got something wrongtopic-dataclass-transformPEP 681PEP 681topic-stubgen
Description
Bug Report
Stubgen generates mypy-replace
method which makes .pyi
file invalid.
To Reproduce
Minimum example, truncated from Home Assistant codebase:
from typing import dataclass_transform
@dataclass_transform(
field_specifiers=(),
)
class FrozenOrThawed(type):
...
class EntityDescription(metaclass=FrozenOrThawed):
key: str
$ stubgen --include-private test.py
Without --include-private
this method is not generated.
Expected Behavior
Stubgen produces .pyi
file with valid syntax, without mypy-replace
. Probably with __replace__
method:
class FrozenOrThawed(type): ...
class EntityDescription(metaclass=FrozenOrThawed):
key: str
def __init__(self, key) -> None: ...
def __replace__(self, *, key) -> None: ...
Actual Behavior
Stubgen on master generates:
class FrozenOrThawed(type): ...
class EntityDescription(metaclass=FrozenOrThawed):
key: str
def __init__(self, key) -> None: ...
def __mypy-replace(*, key) -> None: ...
Stubgen 1.13.0 generates __replace__
method as well:
class FrozenOrThawed(type): ...
class EntityDescription(metaclass=FrozenOrThawed):
key: str
def __init__(self, key) -> None: ...
def __mypy-replace(*, key) -> None: ...
def __replace__(self, *, key) -> None: ...
Your Environment
- Stubgen version used: master 06a566b and released
1.13.0
. - Stubgen command-line flags:
--include-private
- Python version used: 3.12.6 on MacOS
bramstroker
Metadata
Metadata
Assignees
Labels
bugmypy got something wrongmypy got something wrongtopic-dataclass-transformPEP 681PEP 681topic-stubgen