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.
As discussed yesterday with @dmontagu.
I know this changes the behaviour of
test_model_validator_before
, but I think it's actually more correct.Previously
before
model validators were called when the input is a model, even when validation wasn't being run. Now before validators are called in the same scenarios as the rest of model validation is run:revalidate_instances='always'
revalidate_instances='subclass-instances'
revalidate_instances='never'
As previously,
before
model validators are always called when the input does not passisinstance(input, Model)
.This change does mean the logic for when before validators are called differs from
wrap
andafter
model validators - but honestly I thinkwrap
andafter
model validators are wrong, although I'm not sure that's worth changing.We should probably add tests for:
model_validator(mode='before')
onRootModel
model_validator(mode='before')
ondataclass
Selected Reviewer: @adriangb