Message400868
I believe [`bpo-44806: Fix __init__ in subclasses of protocols`](https://github.com/python/cpython/pull/27545) has caused a regression when using a Dataclass.
In Python `3.9.7`, a `dataclass` that inherits from a subclass of `typing.Protocol` (i.e., a user-defined protocol), does not have the correct `__init__`.
### Demonstration
```python
from dataclasses import dataclass
from typing import Protocol
class P(Protocol):
pass
@dataclass
class B(P):
value: str
print(B("test"))
```
In `3.9.7`:
```shell
Traceback (most recent call last):
File "test.py", line 11, in <module>
print(B("test"))
TypeError: B() takes no arguments
```
In `3.9.6`:
```shell
B(value='test')
```
### Affected Projects
- [dbt](https://github.com/dbt-labs/dbt/issues/3843) |
|
Date |
User |
Action |
Args |
2021-09-01 21:06:11 | julianfortune | set | recipients:
+ julianfortune |
2021-09-01 21:06:11 | julianfortune | set | messageid: <1630530371.11.0.748962218101.issue45081@roundup.psfhosted.org> |
2021-09-01 21:06:11 | julianfortune | link | issue45081 messages |
2021-09-01 21:06:11 | julianfortune | create | |
|