[IPython-user] Feature suggestion: %remember
Fernando.Perez at colorado.edu
Thu Dec 8 12:07:06 CST 2005
Ville Vainio wrote:
> Here's an idea that is rather easy to implement: a new magic called
> %remember. It would store the name & value of the specified variable
> to the same persistent_data structure as bookmarks, and all the values
> in that structure would be loaded to the appropriate variables at
> session startup.
The problem is that pickle is notoriously finicky, and there are many
innocuous-looking things in python which can NOT be pickled, so this function
can fail at any time.
One could certainly write an implementation which tiptoes through the list of
things to remember, tries to pickle each and reports upon exit which ones
failed to write. But I'm not sure how useful such an unreliable tool would
be, and with ipython I always resist putting in the core something which is
too easy to break in everyday use.
On the other hand, this is precisely the kind of thing that you could keep in
your personal config: since you know its limitations, you can use it well.
And I'd be happy to keep a collection of such 'personal toys' in the public
ipython wiki, since they would most likely only be used by more experienced
users, and there would be a message indicating their limitations.
So if you write it for your own purposes, by all means send it and I'll put it
up on the wiki. But until you can convince me that we can have this in the
core and be _reliable_, I'm afraid I'll balk at it.
ps - implementation tips: use shelve, atexit, and in your magic, store the
list of names to be rememberd as a hidden var in the user namespace:
self.shell.user_ns['__magic_remember'] = ....
With these, the actual implementation should be very, very easy (if not robust
due to the problems listed above).
More information about the IPython-user