diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /dev-python/httpx | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Diffstat (limited to 'dev-python/httpx')
| -rw-r--r-- | dev-python/httpx/Manifest | 1 | ||||
| -rw-r--r-- | dev-python/httpx/files/httpx-0.27.0-opt-trio.patch | 17 | ||||
| -rw-r--r-- | dev-python/httpx/files/httpx-0.28.1-httptools-test.patch | 13 | ||||
| -rw-r--r-- | dev-python/httpx/httpx-0.28.1-r1.ebuild | 101 | ||||
| -rw-r--r-- | dev-python/httpx/metadata.xml | 17 |
5 files changed, 149 insertions, 0 deletions
diff --git a/dev-python/httpx/Manifest b/dev-python/httpx/Manifest new file mode 100644 index 000000000000..b734a193e3e7 --- /dev/null +++ b/dev-python/httpx/Manifest @@ -0,0 +1 @@ +DIST httpx-0.28.1.gh.tar.gz 4118011 BLAKE2B 76c24a3b3618798d5b65aaaa87ee583f9debf8cb7866204a3e12c151179d9f69a6ad23198c9ee7df61058f73b6ca84f453c3bced25a60f583d7b3ad7681839bb SHA512 5571957a3516533f1c1e76f311316811f6365e192d19ebae10c9ab0d0c4094d811063fd2be2995f3b6a41d6899a7882f27265badecf238a4f7903f976136d3ba diff --git a/dev-python/httpx/files/httpx-0.27.0-opt-trio.patch b/dev-python/httpx/files/httpx-0.27.0-opt-trio.patch new file mode 100644 index 000000000000..6c2c9e67255f --- /dev/null +++ b/dev-python/httpx/files/httpx-0.27.0-opt-trio.patch @@ -0,0 +1,17 @@ +diff --git a/tests/concurrency.py b/tests/concurrency.py +index a8ed558..d5ce803 100644 +--- a/tests/concurrency.py ++++ b/tests/concurrency.py +@@ -5,11 +5,11 @@ Async environment-agnostic concurrency utilities that are only used in tests. + import asyncio + + import sniffio +-import trio + + + async def sleep(seconds: float) -> None: + if sniffio.current_async_library() == "trio": ++ import trio + await trio.sleep(seconds) # pragma: no cover + else: + await asyncio.sleep(seconds) diff --git a/dev-python/httpx/files/httpx-0.28.1-httptools-test.patch b/dev-python/httpx/files/httpx-0.28.1-httptools-test.patch new file mode 100644 index 000000000000..2170c3674647 --- /dev/null +++ b/dev-python/httpx/files/httpx-0.28.1-httptools-test.patch @@ -0,0 +1,13 @@ +diff --git a/tests/conftest.py b/tests/conftest.py +index 970c353..1ea3aa9 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -304,7 +304,7 @@ def serve_in_thread(server: Server): + + @pytest.fixture(scope="session") + def server() -> typing.Iterator[TestServer]: +- config = Config(app=app, lifespan="off", loop="asyncio") ++ config = Config(app=app, lifespan="off", loop="asyncio", http="h11") + server = TestServer(config=config) + yield from serve_in_thread(server) + diff --git a/dev-python/httpx/httpx-0.28.1-r1.ebuild b/dev-python/httpx/httpx-0.28.1-r1.ebuild new file mode 100644 index 000000000000..d6fb6cac33f7 --- /dev/null +++ b/dev-python/httpx/httpx-0.28.1-r1.ebuild @@ -0,0 +1,101 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{13..14} ) + +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 ~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}] + cli? ( + =dev-python/click-8*[${PYTHON_USEDEP}] + =dev-python/pygments-2*[${PYTHON_USEDEP}] + dev-python/rich[${PYTHON_USEDEP}] + ) +" +# httptools cause tests to fail +# https://github.com/encode/httpx/discussions/3429 +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/trustme[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + dev-python/uvicorn[${PYTHON_USEDEP}] + >=dev-python/zstandard-0.18.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/trio[${PYTHON_USEDEP}] + ' 3.{11..13}) + ) +" + +distutils_enable_tests pytest + +src_prepare() { + local PATCHES=( + "${FILESDIR}/${PN}-0.27.0-opt-trio.patch" + # fix test failures when httptools are installed + # https://github.com/encode/httpx/discussions/3429 + # https://gitlab.archlinux.org/archlinux/packaging/packages/python-httpx/-/blob/main/uvicorn-test-server-use-h11.diff + "${FILESDIR}/${PN}-0.28.1-httptools-test.patch" + ) + + if ! use cli; then + sed -i -e '/^httpx =/d' pyproject.toml || die + fi + sed -i -e '/rich/s:,<14::' pyproject.toml || die + + distutils-r1_src_prepare +} + +python_test() { + local args=() + 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 + ) + + if ! has_version "dev-python/trio[${PYTHON_USEDEP}]"; then + args+=( -o filterwarnings= -k "not trio" ) + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p anyio "${args[@]}" +} + +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 +} diff --git a/dev-python/httpx/metadata.xml b/dev-python/httpx/metadata.xml new file mode 100644 index 000000000000..2cc843063be6 --- /dev/null +++ b/dev-python/httpx/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <stabilize-allarches /> + <upstream> + <bugs-to>https://github.com/encode/httpx/issues</bugs-to> + <remote-id type="cpe">cpe:/a:encode:httpx</remote-id> + </upstream> + <use> + <flag name="cli">Install the CLI "httpx" client.</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
