ENH: Use pydantic models to represent ESPEI datasets#269
Draft
bocklund wants to merge 14 commits intoPhasesResearchLab:masterfrom
Draft
ENH: Use pydantic models to represent ESPEI datasets#269bocklund wants to merge 14 commits intoPhasesResearchLab:masterfrom
bocklund wants to merge 14 commits intoPhasesResearchLab:masterfrom
Conversation
Currently we just pass through the models and dump them out to dicts to put in the PickleableTinyDB
Activity-specific checks weren't done at all and it's all subsumed by equilibrium
…tic models Added some new tests that were previously uncovered
- Add __all__ for datasets - implement to_Dataset - deprecate check_dataset
…implement a value and the validators
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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]])