--- Revision None +++ Revision 303338666230 @@ -0,0 +1,28 @@ +def 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 wrapper + + +def 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.py +define route get with {'path': '/path', 'permission': 'view'}