Spectate 1.0.1

A library that can track changes to mutable data types. With Spectate complicated protocols for managing updates, don’t need to be the outward responsibility of a user, and can instead be done automagically in the background.

At A Glance

If you’re using Python 3.6 and above, create a spectate.mvc object

from spectate import mvc

l = mvc.List()

Register a view function to it that observes changes

@mvc.view(l)
def printer(l, events):
    for e in events:
        print(e)

Then modify your object and watch the view function react

l.append(0)
l[0] = 1
l.extend([2, 3])
{'index': 0, 'old': Undefined, 'new': 0}
{'index': 0, 'old': 0, 'new': 1}
{'index': 1, 'old': Undefined, 'new': 2}
{'index': 2, 'old': Undefined, 'new': 3}