Exemple #1
0
def on_valid(valid_content_type, on_invalid=json):
    """Renders as the specified content type only if no errors are found in the provided data object"""
    invalid_kwargs = introspect.generate_accepted_kwargs(
        on_invalid, 'request', 'response')
    invalid_takes_response = introspect.takes_all_arguments(
        on_invalid, 'response')

    def wrapper(function):
        valid_kwargs = introspect.generate_accepted_kwargs(
            function, 'request', 'response')
        valid_takes_response = introspect.takes_all_arguments(
            function, 'response')

        @content_type(valid_content_type)
        @wraps(function)
        def output_content(content, response, **kwargs):
            if type(content) == dict and 'errors' in content:
                response.content_type = on_invalid.content_type
                if invalid_takes_response:
                    kwargs['response'] = response
                return on_invalid(content, **invalid_kwargs(kwargs))

            if valid_takes_response:
                kwargs['response'] = response
            return function(content, **valid_kwargs(kwargs))

        return output_content

    return wrapper
Exemple #2
0
    def wrapper(function):
        valid_kwargs = introspect.generate_accepted_kwargs(function, 'request', 'response')
        valid_takes_response = introspect.takes_all_arguments(function, 'response')

        @content_type(valid_content_type)
        @wraps(function)
        def output_content(content, response, **kwargs):
            if type(content) == dict and 'errors' in content:
                response.content_type = on_invalid.content_type
                if invalid_takes_response:
                    kwargs['response'] = response
                return on_invalid(content, **invalid_kwargs(kwargs))

            if valid_takes_response:
                kwargs['response'] = response
            return function(content, **valid_kwargs(kwargs))
        return output_content
Exemple #3
0
    def wrapper(function):
        valid_kwargs = introspect.generate_accepted_kwargs(function, 'request', 'response')
        valid_takes_response = introspect.takes_all_arguments(function, 'response')

        @content_type(valid_content_type)
        @wraps(function)
        def output_content(content, response, **kwargs):
            if type(content) == dict and 'errors' in content:
                response.content_type = on_invalid.content_type
                if invalid_takes_response:
                    kwargs['response'] = response
                return on_invalid(content, **invalid_kwargs(kwargs))

            if valid_takes_response:
                kwargs['response'] = response
            return function(content, **valid_kwargs(kwargs))
        return output_content
Exemple #4
0
def on_valid(valid_content_type, on_invalid=json):
    """Renders as the specified content type only if no errors are found in the provided data object"""
    invalid_kwargs = introspect.generate_accepted_kwargs(on_invalid, 'request', 'response')
    invalid_takes_response = introspect.takes_all_arguments(on_invalid, 'response')

    def wrapper(function):
        valid_kwargs = introspect.generate_accepted_kwargs(function, 'request', 'response')
        valid_takes_response = introspect.takes_all_arguments(function, 'response')

        @content_type(valid_content_type)
        @wraps(function)
        def output_content(content, response, **kwargs):
            if type(content) == dict and 'errors' in content:
                response.content_type = on_invalid.content_type
                if invalid_takes_response:
                    kwargs['response'] = response
                return on_invalid(content, **invalid_kwargs(kwargs))

            if valid_takes_response:
                kwargs['response'] = response
            return function(content, **valid_kwargs(kwargs))
        return output_content
    return wrapper
        self.start = time.time()

    def __exit__(self, *args):
        print("{0} took {1}".format(self.name, time.clock() - self.start))


def my_method(name, request=None):
    pass


def my_method_with_kwargs(name, request=None, **kwargs):
    pass


with Timer('generate_kwargs'):
    accept_kwargs = generate_accepted_kwargs(my_method, ('request', 'response', 'version'))

    for test in range(100000):
        my_method(test, **accept_kwargs(DATA))


with Timer('auto_kwargs'):
    wrapped_method = auto_kwargs(my_method)

    for test in range(100000):
        wrapped_method(test, **DATA)


with Timer('native_kwargs'):
    for test in range(100000):
        my_method_with_kwargs(test, **DATA)
        self.start = time.time()

    def __exit__(self, *args):
        print("{0} took {1}".format(self.name, time.clock() - self.start))


def my_method(name, request=None):
    pass


def my_method_with_kwargs(name, request=None, **kwargs):
    pass


with Timer("generate_kwargs"):
    accept_kwargs = generate_accepted_kwargs(my_method, ("request", "response", "version"))

    for test in range(100000):
        my_method(test, **accept_kwargs(DATA))


with Timer("auto_kwargs"):
    wrapped_method = auto_kwargs(my_method)

    for test in range(100000):
        wrapped_method(test, **DATA)


with Timer("native_kwargs"):
    for test in range(100000):
        my_method_with_kwargs(test, **DATA)
Exemple #7
0
        self.start = time.time()

    def __exit__(self, *args):
        print("{0} took {1}".format(self.name, time.clock() - self.start))


def my_method(name, request=None):
    pass


def my_method_with_kwargs(name, request=None, **kwargs):
    pass


with Timer('generate_kwargs'):
    accept_kwargs = generate_accepted_kwargs(
        my_method, ('request', 'response', 'version'))

    for test in range(100000):
        my_method(test, **accept_kwargs(DATA))

with Timer('auto_kwargs'):
    wrapped_method = auto_kwargs(my_method)

    for test in range(100000):
        wrapped_method(test, **DATA)

with Timer('native_kwargs'):
    for test in range(100000):
        my_method_with_kwargs(test, **DATA)

with Timer('no_kwargs'):