From b14db9a0ae09c2eca2d6d5862d6dedda576e86af Mon Sep 17 00:00:00 2001 From: Joe Kaufeld Date: Tue, 29 Oct 2024 22:43:54 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20run=20black?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spiderweb/middleware/gzip.py | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/spiderweb/middleware/gzip.py b/spiderweb/middleware/gzip.py index cdf55a1..1f956a1 100644 --- a/spiderweb/middleware/gzip.py +++ b/spiderweb/middleware/gzip.py @@ -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.request import Request from spiderweb.response import HttpResponse - import gzip class GzipMiddleware(SpiderwebMiddleware): - + algorithm = "gzip" minimum_length = 500 - def post_process(self, request: Request, response: HttpResponse, rendered_response: str) -> str: - - #right status, length > 500, instance string (because FileResponse returns list of bytes , + def post_process( + self, request: Request, response: HttpResponse, rendered_response: str + ) -> str: + + # right status, length > 500, instance string (because FileResponse returns list of bytes, # not already compressed, and client accepts gzip - if not (200 <= response.status_code < 300) or \ - len(rendered_response) < self.minimum_length or \ - not isinstance(rendered_response, str) or \ - self.algorithm in response.headers.get("Content-Encoding", "") or \ - self.algorithm not in request.headers.get("Accept-Encoding", ""): - return rendered_response - - zipped = gzip.compress(rendered_response.encode('UTF-8')) + if ( + not (200 <= response.status_code < 300) + or len(rendered_response) < self.minimum_length + or not isinstance(rendered_response, str) + or self.algorithm in response.headers.get("Content-Encoding", "") + or self.algorithm not in request.headers.get("Accept-Encoding", "") + ): + return rendered_response + + zipped = gzip.compress(rendered_response.encode("UTF-8"), compresslevel=6) response.headers["Content-Encoding"] = self.algorithm response.headers["Content-Length"] = str(len(zipped)) - - return zipped - + + return zipped.decode("UTF-8")