implement ser_json_temporal configuration option #12068
Open
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.
Change Summary
Following work on the pydantic-core branch, this PR implements the config hooks to allow
ser_json_temporal
to be passed in.Related issue number
Fixes #10454
Fixes #7940
Performance improvements
The main reason we wanted this was to improve performance when we want to serialize a datetime as a millisecond timestamp. Below is a small script using this branch:
I've run this over a few different number of dts to try gauge performance. A note is that im not 100% sure how this is being built for me when im installing, i doubt its using PGO and not sure if its the dev or prod profile, so i'd guess performance will improve from these results.
For the second conversion:
and for the millisecond conversion:
So for us, this is a great improvement, esspecially for when we need to return large timeseries.
NOTE: currently based against a branch of pydantic-core, because theres no pydantic core release yet.
Checklist