Allow pydantic model validation via Annotated
metadata
#1924
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.
Hi - this is an attempt to add preliminary schema validation via
Annotated
metadata (#1333). This PR, in it's current form, alters the__get_pydantic_core_schema__
method ofDataFrameModel
to allow for metadata validation in a pydantic context. For example:The benefit of this approach is that
AnnotatedDataframe(df=df)
anddf.dropna()
pass type checkers without resorting to a (mypy-only) plugin.Note that this PR, currently, does not address changes to
check_types
. If there is interest in this PR being merged, I would be happy to contribute additional changes tocheck_types
. My idea was to use the information already available inpandera.typing.AnnotationInfo
and create a support forAnnotated[DataFrame, Schema]
in additional to the currentDataFrame[Schema]
. Either way, just let me know - Thanks!