summaryrefslogtreecommitdiff
path: root/dev-python/httpx
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/httpx')
-rw-r--r--dev-python/httpx/Manifest1
-rw-r--r--dev-python/httpx/httpx-0.25.2.ebuild87
2 files changed, 88 insertions, 0 deletions
diff --git a/dev-python/httpx/Manifest b/dev-python/httpx/Manifest
index 1bfa6c4f336e..76a9d4f786aa 100644
--- a/dev-python/httpx/Manifest
+++ b/dev-python/httpx/Manifest
@@ -1 +1,2 @@
DIST httpx-0.25.1.gh.tar.gz 2162706 BLAKE2B f13340d5b051fa2020c12825c31df8f5566c3900baa54267cf0718eaff35b600186cfee5a0db5d7fd1a86fbb94bb0d164c7c9be3d6508cd30fc2fbc75cc0c833 SHA512 ad67f45162e328dba3d74abc75cdae02cc4da1605e21456fbb2023f9f515efa6ec6c5799927a4a4557cf439819f9b05dc2805002e29b97102dadcf934cbd0e2b
+DIST httpx-0.25.2.gh.tar.gz 2162693 BLAKE2B 8ae9fd692341ae3224c73c1f6837489819df1a00e13702a7af72143bf291cfcae23807fd51a6e1092672d0b5595f9557084151f3d07fbdd4e7fce8f5860a879f SHA512 7e62fcea55b7d0710f6d50581c8dd1ff5ae594a673a9b1cea5c03487eb3402ca96d44c311a9bcef14f20a7faa03462a3fab07edfe1ce2b11ecd66e4f7e1a06d5
diff --git a/dev-python/httpx/httpx-0.25.2.ebuild b/dev-python/httpx/httpx-0.25.2.ebuild
new file mode 100644
index 000000000000..d2a7a3f12ceb
--- /dev/null
+++ b/dev-python/httpx/httpx-0.25.2.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Fully-featured HTTP client which provides sync and async APIs"
+HOMEPAGE="
+ https://www.python-httpx.org/
+ https://github.com/encode/httpx/
+ https://pypi.org/project/httpx/
+"
+SRC_URI="
+ https://github.com/encode/httpx/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ dev-python/anyio[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ =dev-python/httpcore-1*[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/sniffio[${PYTHON_USEDEP}]
+ cli? (
+ =dev-python/click-8*[${PYTHON_USEDEP}]
+ =dev-python/pygments-2*[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ test? (
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/h2[${PYTHON_USEDEP}]
+ dev-python/socksio[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/uvicorn[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ if ! use cli; then
+ sed -i -e '/^httpx =/d' pyproject.toml || die
+ fi
+ sed -i -e '/rich/s:,<14::' pyproject.toml || die
+
+ # use brotlicffi instead of brotli in tests
+ sed -i -e 's:import brotli:import brotlicffi as brotli:' \
+ tests/test_decoders.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/client/test_proxies.py::test_async_proxy_close
+ tests/client/test_proxies.py::test_sync_proxy_close
+ )
+
+ use cli || EPYTEST_IGNORE+=(
+ tests/test_main.py
+ )
+
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "HTTP/2 support" dev-python/h2
+ optfeature "SOCKS proxy support" dev-python/socksio
+ optfeature "Decoding for brotli compressed responses" dev-python/brotlicffi
+}