Allow using pydantic for from_dict, schema for FastList #479
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.
Allow utilizing pydantic validaiton in
from_dict
via a new boolean flag. Add a core schema for the FastList to work with pydantic.Running some simple benchmarks, it seems that the default
to_dict
andto_json
for csp Structs are significantly faster than going the pydantic route. While pydantic does allow for custom serialization and deserialization, the callbacks into_dict
andto_json
allow that flexibility as well. Thus, for most use-cases, I believe those are probably preferred.However, going through pydantic for
from_dict
is faster and more correct than the current csp implementation (more correct as in respects the type annotations more strictly). Thus, it should be preferred. However, this might cause breaking changes for users, so I propose we introduce it as an optional flag in thefrom_dict
function, and then later down the road switch the default to beTrue
to use pydantic validation for constructing csp Structs from dicts. Here are some plots noting the benchmark results