🎨 run black

This commit is contained in:
Joe Kaufeld 2024-10-29 22:43:54 -04:00
parent f1d1aebc96
commit b14db9a0ae

View file

@ -1,36 +1,36 @@
""" """
Source code inspiration :https://github.com/colour-science/flask-compress/blob/master/flask_compress/flask_compress.py Source code inspiration: https://github.com/colour-science/flask-compress/blob/master/flask_compress/flask_compress.py
""" """
from spiderweb.middleware import SpiderwebMiddleware from spiderweb.middleware import SpiderwebMiddleware
from spiderweb.request import Request from spiderweb.request import Request
from spiderweb.response import HttpResponse from spiderweb.response import HttpResponse
import gzip import gzip
class GzipMiddleware(SpiderwebMiddleware): class GzipMiddleware(SpiderwebMiddleware):
algorithm = "gzip" algorithm = "gzip"
minimum_length = 500 minimum_length = 500
def post_process(self, request: Request, response: HttpResponse, rendered_response: str) -> str: def post_process(
self, request: Request, response: HttpResponse, rendered_response: str
#right status, length > 500, instance string (because FileResponse returns list of bytes , ) -> str:
# right status, length > 500, instance string (because FileResponse returns list of bytes,
# not already compressed, and client accepts gzip # not already compressed, and client accepts gzip
if not (200 <= response.status_code < 300) or \ if (
len(rendered_response) < self.minimum_length or \ not (200 <= response.status_code < 300)
not isinstance(rendered_response, str) or \ or len(rendered_response) < self.minimum_length
self.algorithm in response.headers.get("Content-Encoding", "") or \ or not isinstance(rendered_response, str)
self.algorithm not in request.headers.get("Accept-Encoding", ""): or self.algorithm in response.headers.get("Content-Encoding", "")
return rendered_response or self.algorithm not in request.headers.get("Accept-Encoding", "")
):
zipped = gzip.compress(rendered_response.encode('UTF-8')) return rendered_response
zipped = gzip.compress(rendered_response.encode("UTF-8"), compresslevel=6)
response.headers["Content-Encoding"] = self.algorithm response.headers["Content-Encoding"] = self.algorithm
response.headers["Content-Length"] = str(len(zipped)) response.headers["Content-Length"] = str(len(zipped))
return zipped return zipped.decode("UTF-8")