-
-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recursive Attrs class generation #299
Comments
Interesting, I wasn't aware attributes could be annotates as We don't support it yet, so I'll leave this open as an enhancement request. Your annotation is a little incorrect though, it should be Until we fix the issue, you can use a stringified annotation instead, like this: from attrs import define
from cattrs import structure
@define
class Bar:
baz: "Bar | None" = None
@define
class Foo:
bar: Bar
structure({"bar": {"baz": {"baz": None}}}, Foo) This should work. |
Related discussion about the |
Sounds good. I don't use cattrs anymore, but I'm happy that this feature is getting looked at. |
Description
I would like an easy way to recursively generate
attrs
classes that have attributes of their type (egFoo.foo: Foo
). Obviously, you can't directly annotate attributes as being of the same type of the class, as the class is not yet generated when specifying attrs attributes. However, Python 3.11 introducestyping.Self
, a shortcut to annotating the class. Cattrs could implement this, allowing users to avoid using__attrs_post_init__
to achieve this.What I Did
The text was updated successfully, but these errors were encountered: