Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import inspect
- class WrongParameter(Exception):
- def __init__(self, parameter_name):
- self.parameter_name = parameter_name
- def __str__(self):
- return self.parameter_name
- def get_avalible_args(request):
- return {
- 'request': request,
- 'POST': request.POST,
- 'GET': request.GET,
- 'matchdict': request.matchdict,
- 'db': request.db,
- 'settings': request.registry['settings'],
- 'session': request.session,
- 'user': request.user,
- }
- def get_kwargs(avalible_args, fun_args):
- fun_kwargs = {}
- for key in fun_args:
- try:
- fun_kwargs[key] = avalible_args[key]
- except KeyError:
- raise WrongParameter(key)
- return fun_kwargs
- def UnpackRequest(fun):
- def wraper(request):
- fun_args = inspect.getargspec(fun).args
- avalible_args = get_avalible_args(request)
- fun_kwargs = get_kwargs(avalible_args, fun_args)
- return fun(**fun_kwargs)
- return wraper
Advertisement
Add Comment
Please, Sign In to add comment