https://docs.python.org/3/library/sys.html#sys.settrace (via How do I print functions as they are called?)
It would be cool to be able to do something like this:
with pout.trace():
# do a bunch of stuff
and have pout print everything it traced while in the context manager.