feature request: pickle-ability

I'm kind of surprised no-one else has requested this: how

    > about making all matplotlib objects picklable?

It has been requested before. I remember Prabhu once asking whether
matplotlib supports this. He uses xmgrace, and relies heavily on the
ability to dump the figure objects to file and pick up where he left
off. Not having this feature is a show-stopper for him.

    > The ability to save a plot to disk as a python object and
    > recall it at a later date, or send a live matplotlib figure
    > over a network socket would be really useful. I often have
    > plots I need to make small changes to at a later date.

Would it suffice to send over the data and the matplotlib commands
needed to operate on it -- or perhaps to send the image buffer as a
string. What is the use case where sending the actual figure object
is preferred?

    > Getting the pickling of all the C-objects right might be
    > tricky, I guess.

I don't think the extension code part would be too bad. Extension
code is mainly called at draw time and thus stores little data -- eg
the image and agg backend extension modules. There are some
exceptions to this, eg the transformation functions and axes limits
are stored in extension code. Although the amount of data is small,
it would be tricky to get this part right, basically because of the
way lazy values work -- see
http://matplotlib.sf.net/matplotlib.transforms.html. But this could
be worked around with a little thought.

This is not a paradigm I need or use much in my own work -- perhaps if
it existed I would use it more. So I probably won't take the lead on
this one, but would be happy to work with and help you or someone else
who is, and provide helper methods for the extension code, etc.

JDH