ENH: Use pydantic models to represent ESPEI datasets #269
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.
Implements pydantic models for the currently supported datasets. This should make it easier to implement new types of datasets that conform to normal expectations, make the datasets more usable when implementing residual functions, and provide a sane path for refactoring/removing/deprecating dataset types if that's ever needed*.
In this PR, we only use pydantic for validation within the dataset loader (rather than
check_datasetandclean_datasetwhich are now deprecated to be removed in ESPEI 0.11 and those validations were migrated to the pydantic models). For now, we don't use the pydantic objects anywhere else in the code. New code should use the pydantic objects instead of the arbitrary dictionary representations, and existing code should migrate as they are updated.Some things to do before merging:
Field(..., description="...")help at all?*Eventually I'd like to:
list[list[float | list[float]]to justlist[list[list[float]])