- tests BR: python3-freezegun
[packages/python3-aiohttp.git] / python3-aiohttp-brotli.patch
CommitLineData
de491045
JB
1From 9afc44b052643213da15c9583ecbd643ca999601 Mon Sep 17 00:00:00 2001
2From: Felix Yan <felixonmars@archlinux.org>
3Date: Fri, 19 Jul 2019 21:32:55 +0800
4Subject: [PATCH] Use Brotli instead of brotlipy (#3803)
5
6brotlipy is stuck at brotli 0.6 and upstream is inactive. Let's switch
7to the official binding which is up-to-date.
8---
9 CHANGES/3803.feature | 1 +
10 CONTRIBUTORS.txt | 1 +
11 aiohttp/http_parser.py | 22 ++++++++++++++++++++--
12 docs/client_quickstart.rst | 2 +-
13 docs/index.rst | 2 +-
14 requirements/ci-wheel.txt | 2 +-
15 setup.py | 2 +-
16 tox.ini | 2 +-
17 8 files changed, 27 insertions(+), 7 deletions(-)
18 create mode 100644 CHANGES/3803.feature
19
20--- aiohttp-3.7.3/aiohttp/http_parser.py.orig 2021-02-06 22:03:16.853983452 +0100
21+++ aiohttp-3.7.3/aiohttp/http_parser.py 2021-02-06 22:22:29.544405459 +0100
22@@ -810,9 +810,26 @@
23 if not HAS_BROTLI: # pragma: no cover
24 raise ContentEncodingError(
25 "Can not decode content-encoding: brotli (br). "
26- "Please install `brotlipy`"
27- )
28- self.decompressor = brotli.Decompressor()
29+ "Please install `Brotli`")
30+
31+ class BrotliDecoder:
32+ # Supports both 'brotlipy' and 'Brotli' packages
33+ # since they share an import name. The top branches
34+ # are for 'brotlipy' and bottom branches for 'Brotli'
35+ def __init__(self) -> None:
36+ self._obj = brotli.Decompressor()
37+
38+ def decompress(self, data: bytes) -> bytes:
39+ if hasattr(self._obj, "decompress"):
40+ return self._obj.decompress(data)
41+ return self._obj.process(data)
42+
43+ def flush(self) -> bytes:
44+ if hasattr(self._obj, "flush"):
45+ return self._obj.flush()
46+ return b""
47+
48+ self.decompressor = BrotliDecoder() # type: Any
49 else:
50 zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else zlib.MAX_WBITS
51 self.decompressor = zlib.decompressobj(wbits=zlib_mode)
52diff --git a/docs/client_quickstart.rst b/docs/client_quickstart.rst
53index f58eb7166f..1d5d2fb448 100644
54--- a/docs/client_quickstart.rst
55+++ b/docs/client_quickstart.rst
56@@ -171,7 +171,7 @@ The ``gzip`` and ``deflate`` transfer-encodings are automatically
57 decoded for you.
58
59 You can enable ``brotli`` transfer-encodings support,
60-just install `brotlipy <https://github.com/python-hyper/brotlipy>`_.
61+just install `Brotli <https://pypi.org/project/Brotli>`_.
62
63 JSON Request
64 ============
65diff --git a/docs/index.rst b/docs/index.rst
66index aa20a78fe9..56aa7389f6 100644
67--- a/docs/index.rst
68+++ b/docs/index.rst
69@@ -52,7 +52,7 @@ Installing speedups altogether
70 ------------------------------
71
72 The following will get you ``aiohttp`` along with :term:`chardet`,
73-:term:`aiodns` and ``brotlipy`` in one bundle. No need to type
74+:term:`aiodns` and ``Brotli`` in one bundle. No need to type
75 separate commands anymore!
76
77 .. code-block:: bash
78--- aiohttp-3.7.3/setup.py.orig 2021-02-06 22:24:15.207166368 +0100
79+++ aiohttp-3.7.3/setup.py 2021-02-06 22:24:45.976999674 +0100
80@@ -137,7 +137,7 @@
81 extras_require={
82 "speedups": [
83 "aiodns",
84- "brotlipy",
85+ "Brotli",
86 "cchardet",
87 ],
88 },
This page took 0.057648 seconds and 4 git commands to generate.