Make cudf.pandas
proxy types explictly call our custom pickling logic
#17929
+7
−19
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.
Description
Apart of #17490.
We employ custom pickling logic for our cudf.pandas wrapped types. The logic lets us serialize and de-serialize wrapped types by serializing and de-serializing the underlying wrapped types (ie. the type of
_fsproxy_wrapped
). This pickling logic is defined in_FinalProxy
, which is the base class of all of our "final" proxy types.The failures in the integration tests occurred because this pickling logic wasn't used for the proxy numpy array type. This is because the "final" proxy array type inherits from an additional base class:
ProxyNDarrayBase
(which contains logic to inherit fromnp.ndarray
). And it comes before_FinalProxy
in the classes MRO, so the custom pickling is not used.Note: This may be a bug for any other proxy type with multiple base classes.
Checklist