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.
Closes #5818
The main change here is that I've reworked the signature of
model_construct
forRootModel
subclasses in such a way thatmodel_construct
assumes the first positional argument is actually the root value, letting you not specify the keyword argument if you prefer not to. (The fields_set can still be passed as the now-second positional argument.)@commonism I think the other issues you raised were related to the fact that you still need to perform validation to convert a
str
to aRootModel[str]
, and that doesn't happen automatically when you callmodel_construct
(since skipping validation is the whole point ofmodel_construct
). But I've added tests in this PR that document the current behavior and show it works if you do do the construction all the way down.@commonism I won't merge until we've discussed whether you feel this addresses your issues.
Selected Reviewer: @hramezani