Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📒 Description
This makes a modification to #848 to make the
dataclass.compat.FieldInfo
type a bit more accurate. In #848, the return type was changed to aNamedTuple
, but that named tuple wasn't actually used anywhere, instead, a regulardataclasses.Field
is returned (as it was before) but it's justcast
to theFieldInfo
to satisfy type checkers. This means that all downstream users now get a typing error unless they also import yourFieldInfo
object and use a cast as well, even though they technically are returning the sameField
object that you are returning internally.🔗 What I've Done
I used a
Protocol
that matches the subset of dataclasses.Field that you are using, rather than the combination ofNamedTuple
andyield from cast(List[FieldInfo], fields(obj))
💬 Comments
🛫 Checklist