python middleware pattern