Design Patterns for python