From ffe910e129da5362318efdc5cc819064aedbce6d Mon Sep 17 00:00:00 2001 From: "Liguros - Gitlab CI/CD [develop]" Date: Sat, 19 Jun 2021 13:45:42 +0000 Subject: Adding metadata --- dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild | 99 ++++++++++++++++++++++ dev-python/aiohttp/aiohttp-3.7.4.ebuild | 88 ------------------- .../aiohttp/files/aiohttp-3.7.4-brotli.patch | 97 +++++++++++++++++++++ 3 files changed, 196 insertions(+), 88 deletions(-) create mode 100644 dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild delete mode 100644 dev-python/aiohttp/aiohttp-3.7.4.ebuild create mode 100644 dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch (limited to 'dev-python/aiohttp') diff --git a/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild new file mode 100644 index 000000000000..7aa65be5acf7 --- /dev/null +++ b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8,9,10} ) + +inherit distutils-r1 multiprocessing + +DESCRIPTION="http client/server for asyncio" +HOMEPAGE="https://pypi.org/project/aiohttp/" +SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86" + +RDEPEND=" + >=dev-python/async_timeout-3.0.0[${PYTHON_USEDEP}] + >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] + dev-python/chardet[${PYTHON_USEDEP}] + >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] + >=dev-python/yarl-1.0[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] +" +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/freezegun[${PYTHON_USEDEP}] + www-servers/gunicorn[${PYTHON_USEDEP}] + dev-python/pytest-forked[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/re-assert[${PYTHON_USEDEP}] + dev-python/trustme[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}"/aiohttp-3.7.4-brotli.patch +) + +DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) + +distutils_enable_tests pytest +distutils_enable_sphinx docs \ + '>=dev-python/alabaster-0.6.2' \ + 'dev-python/sphinxcontrib-asyncio' \ + 'dev-python/sphinxcontrib-blockdiag' \ + 'dev-python/sphinxcontrib-newsfeed' \ + 'dev-python/sphinxcontrib-spelling' \ + 'dev-python/sphinx' \ + 'dev-python/sphinx-aiohttp-theme' + +python_prepare_all() { + # newer chardet works too + sed -e 's|chardet>=2.0,<4.0|chardet>=2.0|' \ + -i setup.py aiohttp.egg-info/requires.txt || die + + # takes a very long time, then fails + rm tests/test_pytest_plugin.py || die + + distutils-r1_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 + 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/aiohttp-3.7.4.ebuild b/dev-python/aiohttp/aiohttp-3.7.4.ebuild deleted file mode 100644 index c93c546dff1b..000000000000 --- a/dev-python/aiohttp/aiohttp-3.7.4.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8,9,10} ) - -inherit distutils-r1 multiprocessing - -DESCRIPTION="http client/server for asyncio" -HOMEPAGE="https://pypi.org/project/aiohttp/" -SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86" - -RDEPEND=" - >=dev-python/async_timeout-3.0.0[${PYTHON_USEDEP}] - >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] - dev-python/chardet[${PYTHON_USEDEP}] - >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] - >=dev-python/yarl-1.0[${PYTHON_USEDEP}] - dev-python/typing-extensions[${PYTHON_USEDEP}] -" -BDEPEND=" - dev-python/cython[${PYTHON_USEDEP}] - test? ( - !!dev-python/pytest-aiohttp - 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}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-timeout[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/re-assert[${PYTHON_USEDEP}] - dev-python/trustme[${PYTHON_USEDEP}] - ) -" - -DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) - -distutils_enable_tests pytest -distutils_enable_sphinx docs \ - '>=dev-python/alabaster-0.6.2' \ - 'dev-python/sphinxcontrib-asyncio' \ - 'dev-python/sphinxcontrib-blockdiag' \ - 'dev-python/sphinxcontrib-newsfeed' \ - 'dev-python/sphinxcontrib-spelling' \ - 'dev-python/sphinx' \ - '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 - - # takes a very long time, then fails - rm tests/test_pytest_plugin.py || die - - distutils-r1_python_prepare_all -} - -python_test() { - 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 - 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 +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 `_. ++just install `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 + -- cgit v1.3.1