a collection of design pattern written in python