Python decorators (live edition) by Reuven M. Lerner