Practical Python Design Patterns: Pythonic Solutions to Common Problems