Python implementations of the Gang of Four Design Patterns