Add a resolve_types: bool = ? argument to attrs.define() and call resolve_types() on the new class if True is passed.
Why?
According to the Typed Settings issue tracker, people seem to start playing with postponed annotations.
For Typed Settings to work, annotated types need to be resolved.
We try to automatically do this but it is not always possible to do it.
So people need to do sth. like this:
@attrs.resolve_types
@attrs.define
class Settings:
opt: int = 0
It would be a bit nicer if they could write
@attrs.define(resolve_types=True)
class Settings:
opt: int = 0
instead. This would also make it easier to write custom define() partials similar to frozen().
Add a
resolve_types: bool = ?
argument toattrs.define()
and callresolve_types()
on the new class ifTrue
is passed.Why?
According to the Typed Settings issue tracker, people seem to start playing with postponed annotations. For Typed Settings to work, annotated types need to be resolved. We try to automatically do this but it is not always possible to do it. So people need to do sth. like this:
It would be a bit nicer if they could write
instead. This would also make it easier to write custom
define()
partials similar tofrozen()
.I can create a PR if needed.