You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
stubgen with attrs class not producing expected __init__.py output #9327
When I generate stubs using mypy's stubgen I find that I am forced to use the attrib = attr.ib(...) to get the stub for init to have the attributes in them. Even then the typing information for the attributes are wrong.
When I do
@attr.s(auto_attribs = True)
class Dummy:
var: str
and run stubgen against it.
The stub I get looks like
def __init__(self)->None
I expect
def __init__(self, var: str)->None
If I do
@attr.s()
class Dummy:
var: str = attr.ib()
var2 = attr.ib(type:str)
I get closer to the expected output, but it is missing the type information
Hm, this looks like a bug. But maybe a better behavior would be to preserve the class decorator completely, since attrs are treated in quite special way by mypy.
Activity
ilevkivskyi commentedon Sep 8, 2020
Hm, this looks like a bug. But maybe a better behavior would be to preserve the class decorator completely, since
attrsare treated in quite special way by mypy.cdce8p commentedon Jan 8, 2025
This was fixed in #18418 (Included in the next release.) and will be further improved by #18430.
Note that you cannot use the shorthand since mypy doesn't resolve it. It will work with
attr.attrs/attrs.defineandattr.attrib/attrs.field.