Source code for flask_zipper.decorators

from functools import wraps

from flask import after_this_request

from flask_zipper.compressor import *
from flask_zipper.exceptions import *
from flask_zipper.util import get_zipper


[docs]def _get_decorator(kwargs_dict): """ A function to make specific decorator :param kwargs_dict: encode_response argument :return: specific decorator """ def decorator(fn): @wraps(fn) def wrapper(*args, **kwargs): @after_this_request def zipper(response): kwargs_dict['response'] = response return get_zipper().encode_response(**kwargs_dict) return fn(*args, **kwargs) return wrapper return decorator
encode_brotli = _get_decorator({ 'accept_encoding_string': 'br', 'compressor': encode_response_with_brotli, 'error_class': BrotliCompressionError }) #: brotli encoder decorator encode_deflate = _get_decorator({ 'accept_encoding_string': 'deflate', 'compressor': encode_response_with_deflate, 'error_class': DeflateCompressionError }) #: deflate encoder decorator encode_gzip = _get_decorator({ 'accept_encoding_string': 'gzip', 'compressor': encode_response_with_gzip, 'error_class': GzipCompressionError }) #: gzip encoder decorator