Python Design Patterns For Data Engineering