Thoughts on mutable tensor tables "rewinding"

I had a thought a couple days ago about a feature in mutable-world that may be nice for interactive data exploration – a rewind method that undoes operations.

e.g.

mt.annotate_rows(x = ...something wrong...)
mt.show()
mt.rewind() # undoes the annotate rows

we’ll need to make it possible to bundle things like variantqc into one step:

hl.variant_qc(mt)
mt.show()
mt.rewind() # undoes the variant qc, not the single last annotate statement in it

It should be possible to rewind multiple steps:

mt.rewind(3)

It seems like we can add some of the ideas from Jackie’s work on “history” here!

mt.history()
????
1 Like

We could also add “tags” –

mt.tag('foo')
...
do some work
...
mt.rewind('foo')