Fwd: Pull request #3188 - Void scalar pickling behavior.

Hello, Do any core developers or uses have guidance on how to resolve PR #3188 ( https://github.com/numpy/numpy/pull/3188) in relation to the pickling behavior of array scalar objects? To summarize, pickling array scalars with object fields, which are produced when indexing record arrays with object fields, stores the object address instead of pickling the referenced object. This behavior, obviously, results in invalid references on unpickling. Two current options are to: A) Raise an exception on pickling scalars with object fields. B) Transparently convert scalars to zero-rank arrays on pickling, which pickle properly. Unless there are objections or opinions on potential solutions, I am inclined to implement A. Thanks, Alex Ford

On Sat, Apr 6, 2013 at 8:03 PM, Alex Ford <fordas@uw.edu> wrote:
Hello,
Do any core developers or uses have guidance on how to resolve PR #3188 (https://github.com/numpy/numpy/pull/3188) in relation to the pickling behavior of array scalar objects?
To summarize, pickling array scalars with object fields, which are produced when indexing record arrays with object fields, stores the object address instead of pickling the referenced object. This behavior, obviously, results in invalid references on unpickling.
Two current options are to: A) Raise an exception on pickling scalars with object fields. B) Transparently convert scalars to zero-rank arrays on pickling, which pickle properly.
Unless there are objections or opinions on potential solutions, I am inclined to implement A.
Option (A) would certainly be an improvement over silently saving corrupted data! I guess the best would be to implement proper pickling -- which might be as simple as writing a pickle function that casts to a zero-rank array and saves that, and an unpickler that casts back. But I don't know if it's worth spending much effort on -- people haven't exactly been clamoring for this functionality that I've noticed. -n
participants (2)
-
Alex Ford
-
Nathaniel Smith