No title Revision 303338666230 (Wed Dec 21 2011 at 22:42) - Diff Link to this snippet: https://friendpaste.com/4MnSHaRPkNU9RCtHkd4ggU Embed: manni perldoc borland colorful default murphy trac fruity autumn bw emacs pastie friendly Show line numbers Wrap lines 12345678910111213141516171819202122232425262728def service(**kwargs): def wrapper(klass): for name in ('get',): meth = getattr(klass, name) view_args = dict(kwargs, **getattr(meth, '__view_args__', {})) print 'define route %s with %s' % (name, view_args) return klass return wrapperdef view(**kwargs): def wrapper(func): setattr(func, '__view_args__', kwargs) return func return wrapper@service(path='/path')class Service(object): @view(permission='view') def get(self): return {}-----------% python test.pydefine route get with {'path': '/path', 'permission': 'view'}