[IPython-dev] disabling history
Fri Jul 20 23:56:07 CDT 2012
On Fri, Jul 20, 2012 at 10:45 PM, Jason Grout
> In our Sage Cell server , we'd like to disable the IPython history
> (since it arguably doesn't make much sense there anyway; only a single
> cell is executing, after all, so we don't want the extra disk writes or
> time it takes to deal with a history). However, we need commands
> executed with silent=False because we need to see output, etc.
> I can see several ways of doing this (below). Can I get some comments
> about which way is the most IPythonic?
> 1. applying a small patch which decouples the silent and store_history
> attributes , and then in every kernel execute message set
> store_history to False and silent to False. I don't like this because
> it leaves the history storing in the (potentially untrusted) user's
> hands, and it takes up bandwidth where it really should be a server-wide
I think it makes good sense for store_history and silent to be separate
keys in the execute_request.
For that matter, execute_request keys should probably match directly to
args in run_cell, since it really is an RPC message.
> 2. Set the history file to ':memory:', like in
> parallel/engine/engine.py. I suppose this doesn't actually eliminate
> the history, but it does eliminate the disk writes, and makes the
> history go away as soon as the process is done, right?
Correct - this is the easiest way to do it with no changes - with disk
involvement at all. You can do this one for now, while we get 1. and/or 2.
into IPython itself.
> 3. It would be great if I could, instead of (2), just set the history db
> to the DummyDB class in the core/history file. But since sqlite3 exists
> in Sage's python, that looks like it would take a patch somewhere.
I think this also might make sense, though there aren't significant
advantages to using DummyDB over regular history with :memory:.
>  We just announced our beta of the new cell server, version 2, this
> time fully based on IPython 0.13 (plus some very small patches, like
> part of gh-2051). You can test it out here: aleph2.sagemath.org. We
> use SockJS to do the websocket/fallback connections, and it seems to
> work quite well. We hope to clean up and contribute back our
> ForkingKernelManager and various other classes that you may want
> sometime before the end of the year.
Very cool! I look forward to some pull requests.
If the SockJS stuff is clean, we may well want that in IPython itself as
well, because websockets can still be a headache.
>  https://gist.github.com/3154504
> IPython-dev mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the IPython-dev