def __new__(metacls, name, bases, dct): for method_name in ['before', 'after', 'after_finish']: if method_name in dct: dct[method_name] = callback_engine(dct[method_name]) return type.__new__(metacls, name, bases, dct)
def __new__(metacls, name, bases, dct): middleware = dct.get('middleware', []) for base in bases: base_middleware = getattr(base, 'middleware', []) middleware = base_middleware + middleware dct['middleware'] = middleware for _n in ['get', 'post', 'head', 'put', 'delete']: if _n in dct: dct[_n] = callback_engine(dct[_n]) cls = type.__new__(metacls, name, bases, dct) return cls