github.com/anuvu/tyk@v2.9.0-beta9-dl-apic+incompatible/coprocess/python/tyk/decorators.py (about) 1 from inspect import getargspec 2 3 4 class HandlerDecorator(object): 5 def __init__(self, f): 6 self.name = f.__name__ 7 self.f = f 8 9 def __call__(self, req, sess, spec): 10 self.f 11 12 13 class Hook(object): 14 def __init__(self, f): 15 self.name = f.__name__ 16 self.f = f 17 self.arg_count = len(getargspec(f)[0]) 18 19 def __call__(self, *args, **kwargs): 20 if self.arg_count == 3: 21 return self.f(args[0], args[1], args[2]) 22 if self.arg_count == 4: 23 return self.f(args[0], args[1], args[2], args[3]) 24 25 26 class Pre(HandlerDecorator): 27 def __call__(self, req, sess, spec): 28 return self.f(req, sess, spec) 29 30 31 class Post(HandlerDecorator): 32 def __call__(self, req, sess, spec): 33 return self.f(req, sess, spec) 34 35 36 class PostKeyAuth(HandlerDecorator): 37 def __call__(self, req, sess, spec): 38 return self.f(req, sess, spec) 39 40 41 class CustomKeyCheck(): 42 def __init__(self, f): 43 self.f = f 44 self.name = f.__name__ 45 46 def __call__(self, req, sess, metadata, spec): 47 return self.f(req, sess, metadata, spec) 48 49 50 class Event(object): 51 def __init__(self, f): 52 self.name = f.__name__ 53 self.f = f 54 55 def __call__(self, event, spec): 56 self.f(event, spec) 57 58 59 def ThisIsNotADecorator(): 60 pass