parse_params()   A
last analyzed

Complexity

Conditions 4

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 17
rs 9.2
cc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A parse() 0 11 3
A resource_verb() 0 8 2
1
"""
2
Wrap parameters parsing
3
As it's quite ugly and messy
4
"""
5
from functools import wraps
6
from flask.ext.restful import reqparse
7
8
9
def parse_params(*arguments):
10
    """
11
    Parse the parameters
12
    Forward them to the wrapped function as named parameters
13
    """
14
    def parse(func):
15
        """ Wrapper """
16
        @wraps(func)
17
        def resource_verb(*args, **kwargs):
18
            """ Decorated function """
19
            parser = reqparse.RequestParser()
20
            for argument in arguments:
21
                parser.add_argument(argument)
22
            kwargs.update(parser.parse_args())
23
            return func(*args, **kwargs)
24
        return resource_verb
25
    return parse
26