diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2021-06-19 13:45:42 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2021-06-19 13:45:42 +0000 |
| commit | ffe910e129da5362318efdc5cc819064aedbce6d (patch) | |
| tree | 3c991cd16609e5641108c178a97152db4531057b /dev-python/aiohttp | |
| parent | a6f084b3ab657c74812bcf9de2d8f84c2a7828a8 (diff) | |
| download | baldeagleos-repo-ffe910e129da5362318efdc5cc819064aedbce6d.tar.gz baldeagleos-repo-ffe910e129da5362318efdc5cc819064aedbce6d.tar.xz baldeagleos-repo-ffe910e129da5362318efdc5cc819064aedbce6d.zip | |
Adding metadata
Diffstat (limited to 'dev-python/aiohttp')
| -rw-r--r-- | dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild (renamed from dev-python/aiohttp/aiohttp-3.7.4.ebuild) | 49 | ||||
| -rw-r--r-- | dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch | 97 |
2 files changed, 127 insertions, 19 deletions
diff --git a/dev-python/aiohttp/aiohttp-3.7.4.ebuild b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild index c93c546dff1b..7aa65be5acf7 100644 --- a/dev-python/aiohttp/aiohttp-3.7.4.ebuild +++ b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild @@ -27,8 +27,8 @@ BDEPEND=" dev-python/cython[${PYTHON_USEDEP}] test? ( !!dev-python/pytest-aiohttp + app-arch/brotli[python,${PYTHON_USEDEP}] dev-python/async_generator[${PYTHON_USEDEP}] - dev-python/brotlipy[${PYTHON_USEDEP}] dev-python/freezegun[${PYTHON_USEDEP}] www-servers/gunicorn[${PYTHON_USEDEP}] dev-python/pytest-forked[${PYTHON_USEDEP}] @@ -40,6 +40,10 @@ BDEPEND=" ) " +PATCHES=( + "${FILESDIR}"/aiohttp-3.7.4-brotli.patch +) + DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) distutils_enable_tests pytest @@ -53,21 +57,6 @@ distutils_enable_sphinx docs \ 'dev-python/sphinx-aiohttp-theme' python_prepare_all() { - # Fails due to a warning - sed -e 's:test_read_boundary_with_incomplete_chunk:_&:' \ - -i tests/test_multipart.py || die - # with py3.7+ - sed -e 's:test_aiohttp_request_coroutine:_&:' \ - -i tests/test_client_functional.py || die - - # Fails due to path mismatch - sed -e 's:test_static:_&:' \ - -i tests/test_route_def.py || die - - # Internet - sed -e 's:test_mark_formdata_as_processed:_&:' \ - -i tests/test_formdata.py || die - # newer chardet works too sed -e 's|chardet>=2.0,<4.0|chardet>=2.0|' \ -i setup.py aiohttp.egg-info/requires.txt || die @@ -79,10 +68,32 @@ python_prepare_all() { } python_test() { + local deselect=( + # fails with a 'runtime warning' + 'tests/test_client_functional.py::test_aiohttp_request_coroutine[pyloop]' + + # fragile to test paths + tests/test_route_def.py::test_static + + # requires Internet + tests/test_formdata.py::test_mark_formdata_as_processed + + # 'Event loop is closed' -- probably broken by old age + 'tests/test_streams.py::TestDataQueue::test_read[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_eof[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_cancelled[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_until_eof[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_exc[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_exception[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_exception_with_data[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_read_exception_on_wait[pyloop]' + 'tests/test_streams.py::TestDataQueue::test_exception_waiter[pyloop]' + ) + pushd "${BUILD_DIR}/lib" >/dev/null || die ln -snf "${S}"/{LICENSE.txt,tests} . || die - pytest -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")" --forked \ - -vv tests || die "Tests fail with ${EPYTHON}" - rm -rf .pytest_cache tests || die + epytest -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")" --forked \ + ${deselect[@]/#/--deselect } tests + rm -rf .hypothesis .pytest_cache tests || die popd >/dev/null || die } diff --git a/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch b/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch new file mode 100644 index 000000000000..1e8add007999 --- /dev/null +++ b/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch @@ -0,0 +1,97 @@ +From a7424ddf490fc51244d427543cc9683b5427102b Mon Sep 17 00:00:00 2001 +From: Felix Yan <felixonmars@archlinux.org> +Date: Fri, 19 Jul 2019 21:32:55 +0800 +Subject: [PATCH] Use Brotli instead of brotlipy (#3803) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +brotlipy is stuck at brotli 0.6 and upstream is inactive. Let's switch +to the official binding which is up-to-date. + +(rebased for 3.7.x by Michał Górny) +--- + aiohttp/http_parser.py | 25 +++++++++++++++++++++---- + docs/client_quickstart.rst | 2 +- + docs/index.rst | 2 +- + setup.py | 2 +- + 4 files changed, 24 insertions(+), 7 deletions(-) + +diff --git a/aiohttp/http_parser.py b/aiohttp/http_parser.py +index 71ba815a..56ecead4 100644 +--- a/aiohttp/http_parser.py ++++ b/aiohttp/http_parser.py +@@ -821,10 +821,27 @@ class DeflateBuffer: + if encoding == "br": + if not HAS_BROTLI: # pragma: no cover + raise ContentEncodingError( +- "Can not decode content-encoding: brotli (br). " +- "Please install `brotlipy`" +- ) +- self.decompressor = brotli.Decompressor() ++ 'Can not decode content-encoding: brotli (br). ' ++ 'Please install `Brotli`') ++ ++ class BrotliDecoder: ++ # Supports both 'brotlipy' and 'Brotli' packages ++ # since they share an import name. The top branches ++ # are for 'brotlipy' and bottom branches for 'Brotli' ++ def __init__(self) -> None: ++ self._obj = brotli.Decompressor() ++ ++ def decompress(self, data: bytes) -> bytes: ++ if hasattr(self._obj, "decompress"): ++ return self._obj.decompress(data) ++ return self._obj.process(data) ++ ++ def flush(self) -> bytes: ++ if hasattr(self._obj, "flush"): ++ return self._obj.flush() ++ return b"" ++ ++ self.decompressor = BrotliDecoder() # type: Any + else: + zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else zlib.MAX_WBITS + self.decompressor = zlib.decompressobj(wbits=zlib_mode) +diff --git a/docs/client_quickstart.rst b/docs/client_quickstart.rst +index 95588cb6..b9146584 100644 +--- a/docs/client_quickstart.rst ++++ b/docs/client_quickstart.rst +@@ -174,7 +174,7 @@ The ``gzip`` and ``deflate`` transfer-encodings are automatically + decoded for you. + + You can enable ``brotli`` transfer-encodings support, +-just install `brotlipy <https://github.com/python-hyper/brotlipy>`_. ++just install `Brotli <https://pypi.org/project/Brotli>`_. + + JSON Request + ============ +diff --git a/docs/index.rst b/docs/index.rst +index 13fe723b..4091c001 100644 +--- a/docs/index.rst ++++ b/docs/index.rst +@@ -52,7 +52,7 @@ Installing speedups altogether + ------------------------------ + + The following will get you ``aiohttp`` along with :term:`chardet`, +-:term:`aiodns` and ``brotlipy`` in one bundle. No need to type ++:term:`aiodns` and ``Brotli`` in one bundle. No need to type + separate commands anymore! + + .. code-block:: bash +diff --git a/setup.py b/setup.py +index 54462ba7..7a184817 100644 +--- a/setup.py ++++ b/setup.py +@@ -137,7 +137,7 @@ args = dict( + extras_require={ + "speedups": [ + "aiodns", +- "brotlipy", ++ "Brotli", + "cchardet", + ], + }, +-- +2.32.0 + |
