python-attrs / attrs

Python Classes Without Boilerplate
https://www.attrs.org/
MIT License
5.22k stars 364 forks source link

Using `typing.Annotated` #1275

Closed AdrianSosic closed 1 month ago

AdrianSosic commented 5 months ago

Hi, I'm not sure if this has been already discussed in some other context (and please just close if this is a duplicate) but I was wondering if there is already some debate on whether or not it makes sense to also support using typing.Annotated for attrs. For example, I've seen that pydantic uses the mechanism to allow binding validation to types instead of attributes, which I think is a neat concept that allows reusing the same semantic meaning across different contexts/classes. And I've already had several situations in my code where such a mechanism would have been useful, e.g. when attributes of different classes should undergo the exact same conversion/validation logic.

Are there any plans for this in attrs already?

hynek commented 4 months ago

There's no plans underway, no. The whole field seems also a bit in flux tbh but @Tinche might have opinions.

AdrianSosic commented 3 months ago

We've just added another module to our code where the same combination of type hint + field definition is repeated all over the place, which again reminded me of how useful the typing.Annotated could be in many situations. Just wanted to ask again if the two of you already could make your minds about whether you see this on the roadmap or not. I think it would also help many people transition from pydantic to attrs, who are already used to that syntax, in fact ...

dlax commented 3 months ago

Duplicate of https://github.com/python-attrs/attrs/issues/775

AdrianSosic commented 3 months ago

Hi @dlax, thanks for tagging!

hynek commented 1 month ago

closing in favor of #775