4MnSHaRPkNU9RCtHkd4ggU changeset

Changeset303338666230 (b)
ParentNone (a)
ab
0+def service(**kwargs):
0+    def wrapper(klass):
0+        for name in ('get',):
0+            meth = getattr(klass, name)
0+            view_args = dict(kwargs, **getattr(meth, '__view_args__', {}))
0+            print 'define route %s with %s' % (name, view_args)
0+        return klass
0+    return wrapper
0+
0+
0+def view(**kwargs):
0+    def wrapper(func):
0+        setattr(func, '__view_args__', kwargs)
0+        return func
0+    return wrapper
0+
0+
0+@service(path='/path')
0+class Service(object):
0+
0+    @view(permission='view')
0+    def get(self):
0+        return {}
0+
0+-----------
0+
0+% python test.py
0+define route get with {'path': '/path', 'permission': 'view'}
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--- 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'}