BUG: Fix metadata not roundtripping when pickling datetime (#29555) #29563
+31
−22
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.
Backport of #29555.
Fixes #29344.
It seems that for datetime dtypes,
arraydescr_reduce
was initializing a new mapping instead of setting toPy_None
, and thenarraydescr_setstate
just read it in. I set the metadata to and then checked forPy_None
and refactored some of the logic to be clearer hopefully.Adding a test. Thanks for reviewing!
BUG: fix metadata not roundtripping for datetime pickles
STYLE: Remove unnecessary newline
REF: Simplify metadata handling in arraydescr_setstate function
TST: add test to ensure datetime dtype metadata round-trips on pickling
REF: clearer operation order
TST: add new regression test (BUG: Fix metadata not roundtripping when pickling datetime #29555)
BUG: don't steal reference to Py_None
REF: move metadata variable declarations below for clarity