A while back, I was involved in the Reinteract project , which had the same
goal as you with a different mechanism. Reinteract provided a notebook-like
interface, but it recorded the state in which each expression was executed.
When you went back to a previous line, it would rewind the state and execute in
the appropriate historical state.
That was the goal at least. To avoid copying the whole state every step, it
relied on heuristics at the syntax level to guess whether code would modify
objects. Reinteract would then only copy things that changed. This worked 98%
of the time, which was enough for me, but it still produced a few odd corner
cases where its behavior was incomprehensible to those who didn't know its
I'm happy to talk more about Reinteract if you're interested, but I've already
bored this mailing list once about it.
On Feb 22 2018, at 2:39 am, Jayme Bird <jayme.b...@cwi.nl> wrote:
> Dear all,
> I would appreciate your feedback with a potential research area, specifically
> within Jupyter - and perhaps more generally in Python.
> Interactive data analysis in frameworks like jupyter notebooks has a common
> issue - the modification of potentially large datasets within an interactive
> session. Unintentional modification is frequent, and the common solution is
> to re-run the steps that were required to get from a data file to the point
> in question. This reduces the usability of the analysis tools, makes
> “what-if” exploration difficult, and creates a lot of unnecessary overhead
> for either manually saving state or re-running scripts to recreate it.
> I'm investigating a proposed project focused on the use of relational
> Multi-Version Concurrency Control (MVCC) techniques from database systems for
> these interactive workloads. In essence allowing a control z undo
> functionality to return to the previous state after running a particular step
> of an interactive script.
> I would appreciate knowing if any development of this has been discussed - as
> well as ideas or useful feedback in general?
> Kind regards
> Jayme Bird
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jupyter+unsubscr...@googlegroups.com.
> To post to this group, send email to firstname.lastname@example.org.
> To view this discussion on the web visit
> For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email
To post to this group, send email to email@example.com.
To view this discussion on the web visit
For more options, visit https://groups.google.com/d/optout.