summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-10-29 18:45:52 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-10-29 18:45:52 +0000
commit58c8951ee77c28ff7d3d58184001ed15782da935 (patch)
tree5e09d4b31e4857cf9a0b0d2e21d5c7d1d26e3d84 /dev-python
parentd3370d7cdabf6e1c29fb51a1d48511564c02acc6 (diff)
downloadbaldeagleos-repo-58c8951ee77c28ff7d3d58184001ed15782da935.tar.gz
baldeagleos-repo-58c8951ee77c28ff7d3d58184001ed15782da935.tar.xz
baldeagleos-repo-58c8951ee77c28ff7d3d58184001ed15782da935.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/Manifest1
-rw-r--r--dev-python/aiohttp/aiohttp-3.10.10.ebuild2
-rw-r--r--dev-python/aiohttp/aiohttp-3.11.0_beta0.ebuild128
-rw-r--r--dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild2
-rw-r--r--dev-python/black/black-24.10.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.35.50.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.35.50.ebuild67
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.18.2.ebuild70
-rw-r--r--dev-python/clang-python/Manifest1
-rw-r--r--dev-python/clang-python/clang-python-20.0.0_pre20241029.ebuild53
-rw-r--r--dev-python/coverage/coverage-7.6.2.ebuild2
-rw-r--r--dev-python/croniter/Manifest1
-rw-r--r--dev-python/croniter/croniter-4.0.0.ebuild31
-rw-r--r--dev-python/cryptg/Manifest6
-rw-r--r--dev-python/cryptg/cryptg-0.5.0_p0.ebuild87
-rw-r--r--dev-python/fakeredis/Manifest1
-rw-r--r--dev-python/fakeredis/fakeredis-2.26.1.ebuild97
-rw-r--r--dev-python/google-api-core/Manifest1
-rw-r--r--dev-python/google-api-core/google-api-core-2.22.0.ebuild63
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-20.0.0_pre20241029.ebuild45
-rw-r--r--dev-python/mpxj/Manifest2
-rw-r--r--dev-python/mpxj/mpxj-13.5.1.ebuild (renamed from dev-python/mpxj/mpxj-13.5.0.ebuild)0
-rw-r--r--dev-python/propcache/propcache-0.2.0.ebuild2
-rw-r--r--dev-python/pyarrow/Manifest3
-rw-r--r--dev-python/pyarrow/pyarrow-18.0.0.ebuild111
-rw-r--r--dev-python/pycups/pycups-2.0.4.ebuild2
-rw-r--r--dev-python/pydevd/Manifest1
-rw-r--r--dev-python/pydevd/pydevd-3.2.2.ebuild142
-rw-r--r--dev-python/pygccxml/files/pygccxml-2.5.0-fix-test-flags.patch10
-rw-r--r--dev-python/pygccxml/pygccxml-2.5.0.ebuild5
-rw-r--r--dev-python/pymdown-extensions/Manifest1
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-10.12.ebuild37
-rw-r--r--dev-python/pyrr/pyrr-0.10.3-r1.ebuild23
-rw-r--r--dev-python/pytest-httpx/Manifest1
-rw-r--r--dev-python/pytest-httpx/pytest-httpx-0.33.0.ebuild33
-rw-r--r--dev-python/python-tests/python-tests-3.13.0.ebuild2
-rw-r--r--dev-python/qtconsole/Manifest1
-rw-r--r--dev-python/qtconsole/qtconsole-5.6.1.ebuild65
-rw-r--r--dev-python/rich-click/Manifest1
-rw-r--r--dev-python/rich-click/metadata.xml21
-rw-r--r--dev-python/rich-click/rich-click-1.8.3.ebuild34
-rw-r--r--dev-python/rq/Manifest1
-rw-r--r--dev-python/rq/rq-2.0.0.ebuild73
-rw-r--r--dev-python/simpleeval/Manifest1
-rw-r--r--dev-python/simpleeval/simpleeval-1.0.1.ebuild28
-rw-r--r--dev-python/simsimd/Manifest1
-rw-r--r--dev-python/simsimd/simsimd-5.9.3.ebuild64
-rw-r--r--dev-python/tqdm/Manifest1
-rw-r--r--dev-python/tqdm/tqdm-4.66.6.ebuild45
-rw-r--r--dev-python/virtualenv/Manifest1
-rw-r--r--dev-python/virtualenv/virtualenv-20.27.1.ebuild118
-rw-r--r--dev-python/waitress/Manifest1
-rw-r--r--dev-python/waitress/waitress-3.0.1.ebuild32
-rw-r--r--dev-python/yarl/Manifest1
-rw-r--r--dev-python/yarl/yarl-1.14.0.ebuild2
-rw-r--r--dev-python/yarl/yarl-1.17.0.ebuild66
60 files changed, 1618 insertions, 31 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 818572e6336d..b9d572d51c99 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -3,3 +3,4 @@ DIST aiohttp-3.10.5.tar.gz 7524360 BLAKE2B 57ca70d1a075ae7f9ba9b86a19be52e05e885
DIST aiohttp-3.10.6.tar.gz 7538429 BLAKE2B 55df48ae6321aa9d18ecf02ea16a34a328ad36ec87b0af77291c89684cd8de1fe35617187a700229c056f062ea50e8bd2249c2adb4e39a0899cab6fcd5521ac4 SHA512 9f5a989db03a1c9ae7a67c2888259466a4e9d3926f6e7bd8c31bb7981b7378dd8712a839e9c746e3502cbcdaef03b5c9dfe5fd65d0fde0af938bfbf4c7341327
DIST aiohttp-3.10.8.tar.gz 7540022 BLAKE2B 8407815a0f65035032c9c59174642784a9ad5845d6655c32f29369d3a7ffdd63d52310ec61ed3a106122a4aeb22ed0db5264a353b7e483bb63021cdd9526b5b6 SHA512 f19a58e698908faf164592037d57f1d133e064616b5552df26639a9a7248e90a960cb1b070dbbb90c058579cbdcc4edb72b2846bd20ab2867b4b0c670ddd177f
DIST aiohttp-3.10.9.tar.gz 7541983 BLAKE2B 3bcfcd09c537fbd2a976f95b5c8387280ec0256bbc231b2bc5a07a1524e6926bfdebd182b1365d950b5a1465f44c4db004a645af7490c57cd4637978595fa6d4 SHA512 0b52ba3ff2c78113117f56818ab177791f2764b2e5ce6531ce5b0481ab9d22b4fe621d70c1c2067eab8cfdd423a2cf0fdaefd8b13231aecf0491326bdf12d1a0
+DIST aiohttp-3.11.0b0.tar.gz 7587019 BLAKE2B 7391adbb55819deaf4a70f6b8a6a55bb5ded9a0b932ed5597585f3c1ae669575ecd4050df8757f7ada42cedb1301027f4aa1b6c027d6f7140bb5612d4268b926 SHA512 9754c51e63b20ff4df28d04897e630165bb0da6bc2924cd43a610d5679b3a87f82d9c0eebc0c2d6eb82c82c37b4908e7ff73ed801df7956846ac1a260219e61d
diff --git a/dev-python/aiohttp/aiohttp-3.10.10.ebuild b/dev-python/aiohttp/aiohttp-3.10.10.ebuild
index 914fa3e8ddad..f32d658c9f08 100644
--- a/dev-python/aiohttp/aiohttp-3.10.10.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.10.10.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+native-extensions test-rust"
RDEPEND="
diff --git a/dev-python/aiohttp/aiohttp-3.11.0_beta0.ebuild b/dev-python/aiohttp/aiohttp-3.11.0_beta0.ebuild
new file mode 100644
index 000000000000..e8fd2ddee404
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.11.0_beta0.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="HTTP client/server for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/aiohttp/
+ https://pypi.org/project/aiohttp/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions test-rust"
+
+RDEPEND="
+ >=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ <dev-python/async-timeout-5[${PYTHON_USEDEP}]
+ >=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ www-servers/gunicorn[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ test-rust? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # increase the timeout a little
+ sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
+ # xfail_strict fails on py3.10
+ sed -i -e '/--cov/d' -e '/xfail_strict/d' setup.cfg || die
+ sed -i -e 's:-Werror::' Makefile || die
+
+ distutils-r1_src_prepare
+}
+
+python_configure() {
+ if [[ ! -d tools && ${EPYTHON} != pypy3 ]] && use native-extensions
+ then
+ # workaround missing files
+ mkdir tools || die
+ > requirements/cython.txt || die
+ > tools/gen.py || die
+ chmod +x tools/gen.py || die
+ # force rehashing first
+ emake requirements/.hash/cython.txt.hash
+ > .update-pip || die
+ > .install-cython || die
+ emake cythonize
+ fi
+}
+
+python_compile() {
+ # implicitly disabled for pypy3
+ if ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # proxy is not packaged
+ tests/test_proxy_functional.py
+ # python_on_whales is not packaged
+ tests/autobahn/test_autobahn.py
+ # benchmarks
+ tests/test_benchmarks_client_request.py
+ tests/test_benchmarks_cookiejar.py
+ tests/test_benchmarks_http_websocket.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_client_session.py::test_client_session_timeout_zero
+ # broken by irrelevant deprecation warnings
+ tests/test_circular_imports.py::test_no_warnings
+ )
+
+ # upstream unconditionally blocks building C extensions
+ # on PyPy3 but the test suite needs an explicit switch
+ if [[ ${EPYTHON} == pypy3 ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
+ rm -rf aiohttp || die
+ epytest -m "not internal and not dev_mode" \
+ -p rerunfailures --reruns=5
+}
diff --git a/dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild b/dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild
index e964a007945e..cbe24e868219 100644
--- a/dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild
+++ b/dev-python/bcrypt/bcrypt-4.2.0-r2.ebuild
@@ -64,7 +64,7 @@ LICENSE="Apache-2.0"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
BDEPEND="
>=dev-python/setuptools-rust-1.7.0[${PYTHON_USEDEP}]
diff --git a/dev-python/black/black-24.10.0.ebuild b/dev-python/black/black-24.10.0.ebuild
index 803f9828a61d..957a0b935523 100644
--- a/dev-python/black/black-24.10.0.ebuild
+++ b/dev-python/black/black-24.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
RDEPEND="
>=dev-python/click-8.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 1b508319d192..01769b952541 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.35.39.gh.tar.gz 872172 BLAKE2B 1baad362b9bfcf68ea89c9ba9ea473fcf2451a71be8121a443830622114b3577ae83500aaa0cbef86115e24d276ffa5660fa6e9c08d2358fa493367405fc8dd4 SHA512 4244e71a3773d9abfa419c34220fa2c44c90a93b11b8338535582aee8fe9cd788672d6833ae97f1b32fb6479b9be97f1b2db953f24b403b07f2ee3153bc833aa
DIST boto3-1.35.44.gh.tar.gz 875230 BLAKE2B 68c4fa6739a5d9cb720670a1bc14079ffac4b23101bd27367ec81675a34d717341c87257864a658c60d8a0c5fdea298f73db979b6aa64f65e9ea54479005d33b SHA512 6ff24f42088ae9f77b5e1ff033fab34c6a0c0f7fc46cf9cbe172b3151cf259e48c3804981afbc8de893dc2541105a04bc00d6becd3220c18243bda7ed206740b
DIST boto3-1.35.49.gh.tar.gz 878577 BLAKE2B 8f9ddf29eaad2f91a9ba670b268ac987f7f813dea52427a559b245111042f84b8593158bf1f3dbec353b9fb92116be39e739326dbdd70366589ee507a994da4d SHA512 3a1aa9bb8c8aa384abdc2a139273364c49f608921ff9c4ce9e96b4b93d11bb145a45ac65df6245912ba3be6d4e8f0df86e407d74610837b149f81712529b3152
+DIST boto3-1.35.50.gh.tar.gz 878776 BLAKE2B 23b43830c16657e688bec46b65ae784fa8f70c5849f809bf71a4ab73533d43efd76a56bf0694d99a488bffed42896f034fe0b4680705093bd59d0dd86904c721 SHA512 91b66821f5698f09ef61851fe8419cfbe2b85f1a586858a490d12ef63ef2309af76b5393aeeb3a6b31a74a1d2dc46712750fe4b75dc627dc55fd681a5b019edf
diff --git a/dev-python/boto3/boto3-1.35.50.ebuild b/dev-python/boto3/boto3-1.35.50.ebuild
new file mode 100644
index 000000000000..d91ce27598cf
--- /dev/null
+++ b/dev-python/boto3/boto3-1.35.50.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index c75f10108d82..06ccba1c0a6d 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.35.39.gh.tar.gz 13458607 BLAKE2B 631b16d9a4acf1a2c594318f20fb9755aebb5f4b390388e1c4348874948b08a8ae3b571378383fee55d9228983f89f334d208fedd2fbe3e233d9b546490ac204 SHA512 642e5c82c22c0186addcd527985132790a046f7388ab2d0fb5219476d610a65bec2d7a6e3b0123328601f91f570ae4050449b58d0ec61f5e4291abbd7407d12e
DIST botocore-1.35.44.gh.tar.gz 13472693 BLAKE2B a38fd45888ee1e77d7dec3fbd5aeb9f94cd825d1d54bd11a467ef9938753724958fc28eae4316d1802c729f02874113b028a929afb3de64400723c144d5d0eef SHA512 52f6c507efe175deef4e824c038f2db620f35f53f62a1372815b9c75a3638e371d89a8aa19f481f4ee29e58e5c30e5f9083fe14eb08048f80cd0f9aa1730841c
DIST botocore-1.35.49.gh.tar.gz 13473579 BLAKE2B 0b1a0e8ec76ad0d4ec677532626c4f34383828415ae6a6dc318a8e7864f2756c5618e0086a02f29726844e585895492b0e80d5e944e67fa5c233122a35a75eab SHA512 abcbcd3e8c5c4704755f83290aa8c65ee703c5f75cecab45d58451e2960f341e73042b61c28fd42a671562b25795255392d13db60c6c9d2f944f04ede6d3e78d
+DIST botocore-1.35.50.gh.tar.gz 13480380 BLAKE2B c75e98122762a9f061006019c3e8b12b3b374dc98236943e7d566a12faf791606e15e90cabd80e7ebe1b0b8f7cec8f39ca4d0852c80b95347bf5953cfbcdbd15 SHA512 41af923db98efcf885661ee9fc7debdd659df66a56b6bacda3aee5aeaa5eb774668e3617485c06eace75b7aa71f04abf7c6481c7d5a5a0c170f9add37ca8a8db
diff --git a/dev-python/botocore/botocore-1.35.50.ebuild b/dev-python/botocore/botocore-1.35.50.ebuild
new file mode 100644
index 000000000000..7816e9efeb52
--- /dev/null
+++ b/dev-python/botocore/botocore-1.35.50.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 66a418114a25..e4431f1cd23b 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -3,3 +3,4 @@ DIST cfn_lint-1.15.2.tar.gz 2444882 BLAKE2B bb1e47da23087a667cfc3a1a36af962ad0db
DIST cfn_lint-1.16.1.tar.gz 2328621 BLAKE2B 034738d924ac720a1e85569d65afd47c4cf0cf81b8187f03de48e968872b0c993d40a56b7a6b5c751e252461ebe29b750cdc6405ebc4733020bcc28f8c6887be SHA512 4348ef8b9cc125c71b62ced41ecc16d6aaba7c194a95e28bc99a1cc49e4a931f1e6726286a9f31fd7f0a4692861e62efb9cde4482762f230aea963866aa8081a
DIST cfn_lint-1.17.2.tar.gz 2526962 BLAKE2B 76feefa1bcce6a0957ce028d6041ac49b475cf25bd843e7de30b1d05d797e55d4189d9deba087f569f94f2f8fc40b11c3ecddcab1593432abf0da1bd26db6da9 SHA512 79fa133244cfe1239648209da9e8bbb2e50435bc5c18b6f998c90eb09536a760dfae62507123c22295098bf0866b1ef0ed05853debb00e651b75651921401530
DIST cfn_lint-1.18.1.tar.gz 2553280 BLAKE2B 9dbe580c17a542e21f3d262dc531dff048d9c67bd1d5c04a5545aa0ea9d5169b5b9ed29622a07d15418c706bef39883418762a5e45beee35e19270bfc385e8e7 SHA512 31a800114c8e8f7e469bbc64a43000f63de092532171a419bf4a0c1ceaf6eb76c1c58d741b86d7a762320de2a89bb6796cf52c4d5edb83dcdf88d6a8ef0abbfe
+DIST cfn_lint-1.18.2.tar.gz 2742664 BLAKE2B e83933f8b9af6fefef84d9905be35772d7a62eebe86e75e4fae680b39588ec0e11dac418ddd41a7ac9d716a0e62c8e16671240d5d7971520e9d552d6dd1dce41 SHA512 c6eeaa7a7ce847233adcd6edde5166d304870ca01dc5b84bb5b9c5c1730fe820c7c33195ef34a3db581a66a0976b359f8f15a8c4677a8a37b5f11c2d2feea526
diff --git a/dev-python/cfn-lint/cfn-lint-1.18.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.18.2.ebuild
new file mode 100644
index 000000000000..d9b997205f33
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.18.2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.91.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+ # TODO: it looks as if AWS_DEFAULT_REGION didn't work
+ test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
+ test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_template_config
+ # different graphviz version?
+ test/unit/module/template/test_template.py::TestTemplate::test_build_graph
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/clang-python/Manifest b/dev-python/clang-python/Manifest
index 7a26c33b5453..92f66bf18f2f 100644
--- a/dev-python/clang-python/Manifest
+++ b/dev-python/clang-python/Manifest
@@ -9,4 +9,5 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
+DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba
diff --git a/dev-python/clang-python/clang-python-20.0.0_pre20241029.ebuild b/dev-python/clang-python/clang-python-20.0.0_pre20241029.ebuild
new file mode 100644
index 000000000000..0cb38ead605a
--- /dev/null
+++ b/dev-python/clang-python/clang-python-20.0.0_pre20241029.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for sys-devel/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=sys-devel/clang-${PV}:*
+ !sys-devel/llvm:0[clang(-),python(-)]
+ !sys-devel/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ sys-devel/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/coverage/coverage-7.6.2.ebuild b/dev-python/coverage/coverage-7.6.2.ebuild
index 8e5219fa4cd3..5187eaf847a2 100644
--- a/dev-python/coverage/coverage-7.6.2.ebuild
+++ b/dev-python/coverage/coverage-7.6.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-python/croniter/Manifest b/dev-python/croniter/Manifest
index 7ebc3da3d4f0..cfe47ffb3129 100644
--- a/dev-python/croniter/Manifest
+++ b/dev-python/croniter/Manifest
@@ -1,2 +1,3 @@
DIST croniter-3.0.3.tar.gz 53088 BLAKE2B 258eff623e0017dcc1fd1d1b3a0ac8e1e67c387afba15fbb04a077dad9e5c72d4d2d68541e06ac85897857ce2bdb36fe0ddb59812368b9e89e58f6322fe61034 SHA512 4fe703544fd899c80766e6a867d96e655b5269b8798562ad4396b9819072acfd22c69fe72d52e911807acfbabe65b131ca4b6f1311b62e5b99f7d1cd1de39068
DIST croniter-3.0.4.tar.gz 54500 BLAKE2B caba8dd5efda4d56787130d43416ce79d2183e481ae5b4524542a353d40b765112c54961d1aeb0f9c99e0f3d319c31812a866dbaa5c2ee597fbc139eb079963a SHA512 e46e0ac27ed2dd30c5239565b7d9a926b2451febf047f96573699b50baf83157bf30e22f5f7f9be4fc66bb1a6b2eb0b5245a810542dbe808294eefba31af1d8a
+DIST croniter-4.0.0.tar.gz 55312 BLAKE2B 7733eb55b53e0921a37b4084bf815f3f2032041154083681a6d69a7be23ad48fc84e581af948acb8d7a1505f2a25240cd0cf09eaea14418da8f1a14466604575 SHA512 086cb137589514daf7e996c824c7e2d2e46615ae3150ea9060a21cb6577fa5c2a0132c7d169d38f500642325005be19ea2e9604a76906b0d7d62757e0f88ded9
diff --git a/dev-python/croniter/croniter-4.0.0.ebuild b/dev-python/croniter/croniter-4.0.0.ebuild
new file mode 100644
index 000000000000..f8bda937f684
--- /dev/null
+++ b/dev-python/croniter/croniter-4.0.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python module to provide iteration for datetime object"
+HOMEPAGE="
+ https://github.com/kiorky/croniter/
+ https://pypi.org/project/croniter/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/tzlocal[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/cryptg/Manifest b/dev-python/cryptg/Manifest
index 4e6a1a6c2812..bbab2cc9dcb2 100644
--- a/dev-python/cryptg/Manifest
+++ b/dev-python/cryptg/Manifest
@@ -13,6 +13,7 @@ DIST core2-0.4.0.crate 37075 BLAKE2B 89ad26bf5eb5ee48dff32d3b6b11e0a84b68e4f29c3
DIST cpufeatures-0.2.14.crate 13165 BLAKE2B 45521d1a4bf2ddc03c6cdb9ceacb900806a03748fd122dd4431f6927d06cbf8608f9830e312b5728dd55b5084476280669129ea80477432fd04fdd68a0e50fb0 SHA512 402c0d6497c65882415841b9eb5953b1dcc1cb35b9fb4512801f3d0e2a056ca95bd32fdf70b6e65a18b048d7df8892c95fef1de975b56b63cfe45460783d5867
DIST cpufeatures-0.2.5.crate 11251 BLAKE2B 2724be40d3bc0e2fda957f645e1cd6472450dee68db3592ab607bdac444283f571f3c904e47981a3fdaa06cab4032734a54470e3dd6e1b67fd856daf010e1277 SHA512 d02327a27ca9fc3c587dcbd10da6b1370671cd7b1df8dfc9078b47180744d0572ef41a7ec205ae9f1c571e5b7f4bc81278ab4c6b076c6ccac0167100e346e74e
DIST cryptg-0.4.gh.tar.gz 35413 BLAKE2B ae9e0ab79ba2251cb244818a7f0b9109283870499bc384c09185dadcb2a53be902370437a44f0168403705306cda3a1a26923bc8ff63d2c25fc519179607035d SHA512 04d19768ae2a0c6bb1ba1ccd28a7a7a42c9cf1079acbc5b2a828648e3c84bd5af10dcefb424ec9090552a4d95fa891a0aeffb904bb56b47d76d8a7280f7c0124
+DIST cryptg-0.5.0.post0.tar.gz 13395 BLAKE2B 511ed190704d639214223c42faccfe8b462945e8c9e772cbb9e9a48725fae672e4a6de8e9f8c32d60a9978f17576d8a266e20678cc6d7637a490c2371b1f0a31 SHA512 6a8eb1db7a4b00eb55fe7c89fe3fdb54f714fe954692e3b96e0786b60bb724ffd058de6d9552210791ee4671198a30c6b3b2cc8d718359f1fe5a4d07ee5785db
DIST cryptg-0.5.0.tar.gz 13343 BLAKE2B 4fc6cbb7365d56c4a060fcd250a8fbdb81d801a76e1de5d66e5d1fd980c822a2cb20de7fca5b63c3e9a6ae7408158f5d0532773b878cc579b8307d21bdef1ef8 SHA512 3297c8ee9ea6ad282512201f3ec681650b8e11730ea7fe7e30e88950bdd180a07aa9476f18cbcad9fd0d350680f530415b2bf75cbf0d8a459e88a8ad48a23fd2
DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
DIST crypto-mac-0.11.1.crate 9551 BLAKE2B 81140107f394d969d85b77050447e7d4dbfe7b2df8164293fe9a2cca04c1ed3cd245988482a232103c2ed9d35601ec6332669bd8598d903d305935dfc09af887 SHA512 3090a7a3fdb7d94b2b14841e37733d863f2e4d24d7da3c63df1726612abdd1c1df7179bba4e344eb63a94053e59a93b0988ecd1e2e5a5db0e18a4b602be4aaa9
@@ -60,14 +61,19 @@ DIST proc-macro2-1.0.47.crate 41955 BLAKE2B dbfc20b61443225130d08b05deeba56e63e7
DIST proc-macro2-1.0.87.crate 49121 BLAKE2B 4a5136e28b5174c1382037d294dfec51cd7211eb7876c06a98600768d071915e76c81a7958a780cb7b843b98d9df4bd4e01d4f280db226d241bf84de348593f2 SHA512 32ce9c8b5bad55cfae537882c3fffc4d56824f6214ea97aede89ad460e3f66956b52af4a268496fc95c2c0eda0baeaaed4b12cd98df2efab24837e23b48b1f0e
DIST pyo3-0.17.2.crate 405417 BLAKE2B d59b138de6af6eeaf41043a8a07c3a3763f2338b13716c9259d9dd821cd01d299a95b50946c93e222563fe202e2e7a2958114de47955d9d96872b98a452d226b SHA512 5b33a75c968460c538b49fb687900e313626d8e2228b36f31fc9d5838eedf6628a4124cead1037cdf6a07978ff39f98e3ec110d8ccbbb409fd6eb9339cba5245
DIST pyo3-0.22.3.crate 542516 BLAKE2B 26607f4455a58ea704cc2d01dfe3857147e03ff891ab0aadab73c7eef2ecb4445097b369d8986c18bdd5efa3ba767b9f41411d5a8f10d6d06851634d07d42642 SHA512 17940627701b0d3c401ccb4221241e7bc727d2b89cc26bbb231aec597cda1c04f07d4315b617d4e9f85623a6fff0031f83c6b7afcaf442c50e694785b07022ad
+DIST pyo3-0.22.4.crate 546534 BLAKE2B 48294620651db49b04655289ff6481897b9d3fc7faff3c0c2514c93ad636fe6d819e87349c2c4f946009b42bfc99020f58f96bcf206210a1fe508d6c184cf921 SHA512 58dc4ccde8f534f1b70019d4e3d4d0834b7698acdbbcba0d5c470c9ccbe257f251df9664b918a34784b2fb76ede2758ec8c168bb2603750f3b53ed9de2d195b7
DIST pyo3-build-config-0.17.2.crate 29231 BLAKE2B f9f82117c3107767ddca53e0aba1c5c751ef807fcb7712c79b39d6d5248de7087a2ae9178e05ae206bf7f831d906965f75cdab4d677fbcc659a4152ce7de28c1 SHA512 d547f5e260ee513797afc7284788aed8207f3d460f1b86b6784bfb5eef0b703c3081363f0d4826afc87d3df5277827ce5174391b2224bf59793e4c554c474798
DIST pyo3-build-config-0.22.3.crate 31297 BLAKE2B dbac8f03e96ba1bfef9b31b3e28e7f81a79f24a9596ae786f602633dc18dbccb583380d324e3e2ccdc2909c57a23d1e488f300ac123c7f8309e052fc97c9fe28 SHA512 42265d570b07b23603783903181c49c4a8bfef1a67055510d9c8c9a504c8e0435b8bae9a352740be791c5562e0abdc48f97ea1d7c03cfc270e821e643dbadea2
+DIST pyo3-build-config-0.22.4.crate 31296 BLAKE2B 8a1b8e3f1ee7b7943b4c420c99cf5cc6bd53136c343a2755558dd80dcec8fe848a005b3ae58757c00bda6bda8c2b96b79c44457a5acb61b2826df7ae21ca391d SHA512 fd3015260b399729724eed802d1f67a338e12d275b9ba49cd03a413a9f951c3a68e681cbe756f394f7d901ad88654af9ea30d6a76da34ed261285125f43f95dc
DIST pyo3-ffi-0.17.2.crate 62850 BLAKE2B fdfc6d4d3f745307eecc7e7380d5320a956c07f2339c32e087472348cf3c4ad377cad957c36aa4ad8bd87a9aea509001d5b12573d64a5181fcc9b64fea19fb25 SHA512 e3b2aa5796c40ac43e101b14c0e1fecd0308e88b204543f74596ae999f586ad4b8fb55c24ef07a505badd9bba151a8af6b0b910cac62f561f6a1d47b3b38b981
DIST pyo3-ffi-0.22.3.crate 69099 BLAKE2B c085c9485f585ab8c2a636385dcf90dc70fe854285b223a298283803c98ff21d3c3623a2cc8a00b61950ac07c123efa7c244d4c924eb0945b4a6c6023cd7e4d5 SHA512 f964b6b0ed17f968a06106f5396a23c5162f66bcf36e897ecf7b37cbd059f28093400c602b51d9a28dfdcfc8af6ff21c4fd68c6627b049a319c85096bf6024cd
+DIST pyo3-ffi-0.22.4.crate 69360 BLAKE2B d04de2726cc3a17c185d4a0b305501cd44ae02276599ef3e28457ca902bb0d503e31342ae6b72432c7cffdbd2443eeb460d192b834fd6a8b1cc19359a059214b SHA512 c81e76aa58672cc894188980db073c81bd9c091e89e281313e81c14ef5573940c114fcf110d1a4c923249db5a1a45cd1732621395edf6f5ea6d29b4f81d81eeb
DIST pyo3-macros-0.17.2.crate 7260 BLAKE2B 22460513594774dc487ad70d7ef15f6837c10a5b8b324bc9dc233266dc49e7bd2fc1710d116fd4613b71294267ae2c2994660345cc838166b985da53eb55d259 SHA512 2f13df0639283f80af89f461f1cc8109ef8fe8dcb09349cbc57913e72e1063a35b30ad8f8cc11f1e089b6c19415b1f55dcc6b695c091e6a9a93f6d45143bb7b5
DIST pyo3-macros-0.22.3.crate 8183 BLAKE2B 5ef8297c67f2910580caa349951580b4d962329f1324eb3a53ef946cc5f41ffe10f4af1d7184904621cd0f318a94618af43cf785f3a3ef57fc4747c47db02820 SHA512 c0ad8480ef7f7ac5287a3bbd363136c63668b2cb77f475d5a6cd5921aa9dcf0336baf6a464b4d2a0068fb21724184785faa79d75b588f90359e8aa250a17e85f
+DIST pyo3-macros-0.22.4.crate 8188 BLAKE2B a422fd908b36bff6ba6489832259aa74f40008c4776f178eaf7ed4b401b1898c3043c78d8476cc2e7b28cc1f24d0e0235e94b6c1e951938d3f557822067a6738 SHA512 b5065bd8de680621fc868d4a030904af1378b14d424c890477efb0988dafa2b711a0da61b03b3fdfa7b2a03cb7fbe087b48cee8b9c674d820f3a088fb9c386e8
DIST pyo3-macros-backend-0.17.2.crate 49990 BLAKE2B aaccd4e2d616e153ef2e8f31fa838e133883d032d002f744327faffea4c03925570aefb2a1e070e2e539c178949d6f891e163a3cb5816f78a1451bb236dde577 SHA512 a465fbf7abcfa123af333c7184c86e6956719748314302381c24dc3c26e8a5ea0523d0a23783be55fa5f84103ab2f6ef63bb8953fa5f6c1f793261a89a23ebd0
DIST pyo3-macros-backend-0.22.3.crate 66032 BLAKE2B 33c2e8cae9b44e4a4806833f780e03f553ef0e6dbac733e9232e406fb64757691fbdfb65fd864280e14e8af8a4bb9c485a3c02227e8d1286ce11f1d4dbd61c28 SHA512 7b52977e02aca9bf4754d60957e69d47f9f447fe8bda40f146bbbd31eb7ebf2fc01c600c9b279f97cdf203e2cc66d96c1617c08041bc1215a02a80a90244417c
+DIST pyo3-macros-backend-0.22.4.crate 66307 BLAKE2B 90eaea7f01757a8b51b4b3f4839d80d889f2b3551fdb65858bc5840dacab244b16990eeeb045ea6353f8d4f5053ada910c69977faa8c0cc0bd19facb638e68cb SHA512 8b31f7c0471540d5b500bfc21bfe433fda257cb23e61cc125a2d516b99923e17a5b250f02e63eaf7ad4b244eb44f798d0db2800699f85730755c16a19a892de3
DIST quote-1.0.21.crate 28030 BLAKE2B 547344ba9272874f5fbb4bd27a69ef5be99823e10e1318afe71971b18f37e9c73d54168f16efb82c53a332e4874c80a82ea951fb2c85fad50cdfe783622b79fc SHA512 0728eb4df7e1f7c4d32ab08c901c2c969db8eb46b03bcec3e4956a4f6b360939d32abc6b6ebd7a31058e8e9b69c3d995a24cb484f93656f05b4ee963be1c74fc
DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
diff --git a/dev-python/cryptg/cryptg-0.5.0_p0.ebuild b/dev-python/cryptg/cryptg-0.5.0_p0.ebuild
new file mode 100644
index 000000000000..9c172856072f
--- /dev/null
+++ b/dev-python/cryptg/cryptg-0.5.0_p0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.13.3
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+CRATES="
+ aes@0.8.4
+ autocfg@1.4.0
+ block-buffer@0.10.4
+ cfg-if@1.0.0
+ cipher@0.4.4
+ core2@0.4.0
+ cpufeatures@0.2.14
+ crypto-common@0.1.6
+ digest@0.10.7
+ generic-array@0.14.7
+ getrandom@0.2.15
+ glass_pumpkin@1.7.0
+ grammers-crypto@0.7.0
+ heck@0.5.0
+ hmac@0.12.1
+ indoc@2.0.5
+ inout@0.1.3
+ libc@0.2.159
+ memchr@2.7.4
+ memoffset@0.9.1
+ num-bigint@0.4.6
+ num-integer@0.1.46
+ num-traits@0.2.19
+ once_cell@1.20.2
+ pbkdf2@0.12.2
+ portable-atomic@1.9.0
+ proc-macro2@1.0.87
+ pyo3-build-config@0.22.4
+ pyo3-ffi@0.22.4
+ pyo3-macros-backend@0.22.4
+ pyo3-macros@0.22.4
+ pyo3@0.22.4
+ quote@1.0.37
+ rand@0.8.5
+ rand_core@0.6.4
+ sha1@0.10.6
+ sha2@0.10.8
+ subtle@2.6.1
+ syn@2.0.79
+ target-lexicon@0.12.16
+ typenum@1.17.0
+ unicode-ident@1.0.13
+ unindent@0.2.3
+ version_check@0.9.5
+ wasi@0.11.0+wasi-snapshot-preview1
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Cryptographic utilities for Telegram"
+HOMEPAGE="
+ https://pypi.org/project/cryptg/
+ https://github.com/cher-nov/cryptg/
+"
+SRC_URI+=" ${CARGO_CRATE_URIS}"
+
+LICENSE="CC0-1.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="dev-python/setuptools-rust[${PYTHON_USEDEP}]"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+QA_FLAGS_IGNORED=".*"
+
+distutils_enable_tests import-check
+
+src_unpack() {
+ cargo_src_unpack
+}
diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest
index f8067aecb5bc..9dfb10c3cab8 100644
--- a/dev-python/fakeredis/Manifest
+++ b/dev-python/fakeredis/Manifest
@@ -1,2 +1,3 @@
DIST fakeredis-2.25.1.tar.gz 149463 BLAKE2B a96c54cbbb221cfcf3d2a096fce90807a92f6cbc6ec474c3705058f47db8d37f7f957321c0ea631a116269068618fcbb1e9168fd17404a49611e37c423c2a08c SHA512 999113bb7c2a15ef16d51dc8c8eea906786eaaa102ed8d9d639423852a070c837504e8926bfa32fe7f4b2481d9e8fb0c588c3fe29347642e8984b46f0b2783ca
DIST fakeredis-2.26.0.tar.gz 150240 BLAKE2B a0813dd0e4bf2bb788fdef3651f9419b5e0dcaecc2b8ebcd3f3774f59b498c90aedbd65aba7779d1eb16580c32e7625e481658f162cb01c3e0680562280b0675 SHA512 708256e08722ea61b8677d1d7299364582e279cd5d69b9551b037968652e361a93832696fd31c6255dae5d5ab2d6cda0b0f4c05c398bb4434b8d846f1feeab9b
+DIST fakeredis-2.26.1.tar.gz 150240 BLAKE2B 4a3416731ba1c4d96b0a7fe4d1a4382fa4de6eac1f029a00bd84e8fbbb2fa2142ad3efe6140c062f19ed9d806899fadfa584ddd453df63ef30400d93863ea19e SHA512 04ba6ec80cf2b9b2bb80b4da37286b5751b1565458727ea116625b4599e6343be11db472a793f859c29c22d09c03f9ec6adc40f2a3204cd9803bc08cfe01e63b
diff --git a/dev-python/fakeredis/fakeredis-2.26.1.ebuild b/dev-python/fakeredis/fakeredis-2.26.1.ebuild
new file mode 100644
index 000000000000..66ddc0c117fd
--- /dev/null
+++ b/dev-python/fakeredis/fakeredis-2.26.1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 2020-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Fake implementation of redis API for testing purposes"
+HOMEPAGE="
+ https://github.com/cunla/fakeredis-py/
+ https://pypi.org/project/fakeredis/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.3[${PYTHON_USEDEP}]
+ <dev-python/sortedcontainers-3[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # https://github.com/cunla/fakeredis-py/issues/320
+ sed -i -e '/LICENSE/d' pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # also lupa
+ test/test_aioredis2.py::test_failed_script_error
+ # TODO
+ "test/test_fakeredis.py::test_set_get_nx[StrictRedis]"
+ "test/test_fakeredis.py::test_lpop_count[StrictRedis]"
+ "test/test_fakeredis.py::test_rpop_count[StrictRedis]"
+ "test/test_fakeredis.py::test_zadd_minus_zero[StrictRedis]"
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_channels[StrictRedis]"
+ test/test_mixins/test_set_commands.py::test_smismember_wrong_type
+ # new redis-server?
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[StrictRedis]"
+ # json ext
+ test/test_json/test_json.py
+ test/test_json/test_json_arr_commands.py
+ # tdigest ext?
+ 'test/test_mixins/test_server_commands.py::test_command[FakeStrictRedis]'
+ )
+ local EPYTEST_IGNORE=(
+ # these tests fail a lot...
+ test/test_hypothesis.py
+ )
+ local args=(
+ # tests requiring lupa (lua support)
+ -k 'not test_eval and not test_lua and not test_script'
+ )
+ # Note: this package is not xdist-friendly
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio -p pytest_mock "${args[@]}"
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6390
+
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1
+ EOF
+
+ # Run the tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/google-api-core/Manifest b/dev-python/google-api-core/Manifest
index 01d97e28b488..4282e9614e57 100644
--- a/dev-python/google-api-core/Manifest
+++ b/dev-python/google-api-core/Manifest
@@ -1 +1,2 @@
DIST python-api-core-2.21.0.gh.tar.gz 223405 BLAKE2B 696489182ece170ab955193e8940a2235cc07892b5bcc319abe482bf7b673545b95dadeb5c1b49624d772dc36c9bcf19d28a91ad6aae07ef3215002eabfe6d5e SHA512 f1517c2ed4027013bdd7c11c4dda0c5ee67450c78247907422b3bcdd8d2f83958fb3ee6c65749056b2eeb734b05d584f4e9a9d0d133e220e3779602ef22e5527
+DIST python-api-core-2.22.0.gh.tar.gz 222827 BLAKE2B f6098dce83c01f47c81e9348794f4015e3c9a82ce6b1b8d6292f3e55f69eb490544e8f1831f4e50aead2308c5490c9cb954a39f8565244bccd2a9bd5771e1015 SHA512 b5b6f2cd2ced4e74b50f93efe74bc2027f2761aee55aac1c4421d68aaf785550caf14343b4f92df9b17a6207ecbdefc5625fefc3fc5cd6ef006d79cdde4da119
diff --git a/dev-python/google-api-core/google-api-core-2.22.0.ebuild b/dev-python/google-api-core/google-api-core-2.22.0.ebuild
new file mode 100644
index 000000000000..b50f69f9e652
--- /dev/null
+++ b/dev-python/google-api-core/google-api-core-2.22.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2020-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+MY_P=python-api-core-${PV}
+DESCRIPTION="Core Library for Google Client Libraries"
+HOMEPAGE="
+ https://github.com/googleapis/python-api-core/
+ https://pypi.org/project/google-api-core/
+ https://googleapis.dev/python/google-api-core/latest/index.html
+"
+SRC_URI="
+ https://github.com/googleapis/python-api-core/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="grpc"
+
+RDEPEND="
+ >=dev-python/googleapis-common-protos-1.56.2[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.25.0[${PYTHON_USEDEP}]
+ >=dev-python/proto-plus-1.25.0[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-python-3.19.5[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.18.0[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ grpc? (
+ >=dev-python/grpcio-1.49.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.49.1[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/grpcio-1.49.1[${PYTHON_USEDEP}]
+ >=dev-python/grpcio-status-1.49.1[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/rsa[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # The grpc_gcp module is missing to perform a stress test
+ tests/unit/test_grpc_helpers.py
+)
+
+python_test() {
+ rm -rf google || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p asyncio tests
+}
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index 7a26c33b5453..92f66bf18f2f 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -9,4 +9,5 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
+DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba
diff --git a/dev-python/lit/lit-20.0.0_pre20241029.ebuild b/dev-python/lit/lit-20.0.0_pre20241029.ebuild
new file mode 100644
index 000000000000..ab099932bcf2
--- /dev/null
+++ b/dev-python/lit/lit-20.0.0_pre20241029.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ sys-devel/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from sys-devel/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/mpxj/Manifest b/dev-python/mpxj/Manifest
index 6feebfec768a..d5a83e2cfedc 100644
--- a/dev-python/mpxj/Manifest
+++ b/dev-python/mpxj/Manifest
@@ -1 +1 @@
-DIST mpxj-13.5.0-py3-none-any.whl 26172447 BLAKE2B 4e7b5b482972197dba717a06320a5bf2c4ab4ebe89ed29b1b9fd83724af71b4e3dbe49c19050099d7273d8d4d8fcfb5d361f7d2d5cd5e01c60720b416f628949 SHA512 dd423cd45d92a1275b5cd89d81d3f61349238065d17ce507e5e52b8eb507542e195d0d73f5b48964b0300874481184785cb7c403c614c22f429d61d3a8df7ed3
+DIST mpxj-13.5.1-py3-none-any.whl 26172521 BLAKE2B 10a24a8bd53fdb822d56eac60640c656a63ca5bb5674a3e64f5574a32f5d6256d8633796bac2cae3e391e9fcc161337aed847e3128de50da298239bbc81cc201 SHA512 bc02596f2fdcbeb6da865cbad5b51f8139369ed076ff085c1ff7656cc37af4ccac08244d751624df96bf3f9ea4a1ea56b68a64f5f24508fe35dc16d95fddea85
diff --git a/dev-python/mpxj/mpxj-13.5.0.ebuild b/dev-python/mpxj/mpxj-13.5.1.ebuild
index f510428e73bc..f510428e73bc 100644
--- a/dev-python/mpxj/mpxj-13.5.0.ebuild
+++ b/dev-python/mpxj/mpxj-13.5.1.ebuild
diff --git a/dev-python/propcache/propcache-0.2.0.ebuild b/dev-python/propcache/propcache-0.2.0.ebuild
index 0154a0717473..097927dce655 100644
--- a/dev-python/propcache/propcache-0.2.0.ebuild
+++ b/dev-python/propcache/propcache-0.2.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/pyarrow/Manifest b/dev-python/pyarrow/Manifest
index b4f800fff015..e24747c7a77d 100644
--- a/dev-python/pyarrow/Manifest
+++ b/dev-python/pyarrow/Manifest
@@ -1,2 +1,5 @@
DIST apache-arrow-16.1.0.tar.gz 21707079 BLAKE2B 5541c364351e59e8164f2461546bce3ddc834d70b3a03b815b681187674bdd89ccfb7eb113bf9010c821845b0c1fa51f5321bfea5b20927e6364f6452ec980d2 SHA512 28975f59e1fdde2dba4afaf4a5ba934b63db3a7f27656e2aa0af0f0d2a046c9dbfa9a6082de94629c36d03809b296566a37ea65ec5a2fc17fedac7d21e272d31
DIST apache-arrow-17.0.0.tar.gz 21822331 BLAKE2B 64f9321cbf13fafae5938f26840d3ef642d6f5b40386315030bc70fe8703786ee394c8483d2bde7961cf2b5c15470ffebd7c66029e116b05cfbf5524e9fe51f1 SHA512 4e2a617b8deeb9f94ee085653a721904a75696f0827bcba82b535cc7f4f723066a09914c7fa83c593e51a8a4031e8bf99e563cac1ebb1d89604cb406975d4864
+DIST apache-arrow-18.0.0.tar.gz 19113236 BLAKE2B c358f8e61155432540a4002c6dfba7a3763d934a43eddae0a9a6f98bb26879df51e3cdcc64db6dd684ffde2ef8ef6dcff8906355b5769f71afae907aa1e920c5 SHA512 4df30ab5561da695eaa864422626b9898555d86ca56835c3b8a8ca93a1dbaf081582bb36e2440d1daf7e1dd48c76941f1152a4f25ce0dbcc1c2abe244a00c05e
+DIST arrow-testing-4d209492d514c2d3cb2d392681b9aa00e6d8da1c.tar.gz 3572558 BLAKE2B fe5b6a46babbde8e2becefea09fecf090201a49faa7d4ee2f44b0bb4da42c344b37564999d32fdbd54a81a56c33fbde9b2d9d2fa664bf127cb5661e845fb6229 SHA512 6758ad936e1eeb2c5dd2b4b40fe90822a48a4ce67ee4d36657c168e1db5d9a17c092f4cf571b13d56b568a773515385441874d1ea36a1f6e5b15a99f67176fa3
+DIST parquet-testing-cb7a9674142c137367bf75a01b79c6e214a73199.tar.gz 1068025 BLAKE2B 0fdd12d04108b27b17564c60ca36e751453f5d74cfbbe3a076e8befa1696aa0f093e2d1a5eacb99e69a98deda502930ba79b8329403af1e8b9d696e6617c6075 SHA512 dd221d9d59442cebb7158d7cf769d6e5323416bfcde2852eee37a26ff089bc04ea10b9ae7158a37d8694c10469d77c7d251d0dd2549596a7b3899d9c39b45997
diff --git a/dev-python/pyarrow/pyarrow-18.0.0.ebuild b/dev-python/pyarrow/pyarrow-18.0.0.ebuild
new file mode 100644
index 000000000000..cfccd2f7446d
--- /dev/null
+++ b/dev-python/pyarrow/pyarrow-18.0.0.ebuild
@@ -0,0 +1,111 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 multiprocessing
+
+# arrow.git: testing
+ARROW_DATA_GIT_HASH=4d209492d514c2d3cb2d392681b9aa00e6d8da1c
+# arrow.git: cpp/submodules/parquet-testing
+PARQUET_DATA_GIT_HASH=cb7a9674142c137367bf75a01b79c6e214a73199
+
+DESCRIPTION="Python library for Apache Arrow"
+HOMEPAGE="
+ https://arrow.apache.org/
+ https://github.com/apache/arrow/
+ https://pypi.org/project/pyarrow/
+"
+SRC_URI="
+ mirror://apache/arrow/arrow-${PV}/apache-arrow-${PV}.tar.gz
+ test? (
+ https://github.com/apache/parquet-testing/archive/${PARQUET_DATA_GIT_HASH}.tar.gz
+ -> parquet-testing-${PARQUET_DATA_GIT_HASH}.tar.gz
+ https://github.com/apache/arrow-testing/archive/${ARROW_DATA_GIT_HASH}.tar.gz
+ -> arrow-testing-${ARROW_DATA_GIT_HASH}.tar.gz
+ )
+"
+S="${WORKDIR}/apache-arrow-${PV}/python"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+IUSE="+parquet +snappy ssl"
+
+RDEPEND="
+ ~dev-libs/apache-arrow-${PV}[compute,dataset,json,parquet?,re2,snappy?,ssl?]
+ >=dev-python/numpy-1.16.6:=[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/cffi[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-libs/apache-arrow[lz4,zlib]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # cython's -Werror
+ sed -i -e '/--warning-errors/d' CMakeLists.txt || die
+}
+
+src_compile() {
+ export PYARROW_PARALLEL="$(makeopts_jobs)"
+ export PYARROW_BUILD_VERBOSE=1
+ export PYARROW_CXXFLAGS="${CXXFLAGS}"
+ export PYARROW_BUNDLE_ARROW_CPP_HEADERS=0
+ export PYARROW_CMAKE_GENERATOR=Ninja
+ export PYARROW_WITH_HDFS=1
+ if use parquet; then
+ export PYARROW_WITH_DATASET=1
+ export PYARROW_WITH_PARQUET=1
+ use ssl && export PYARROW_WITH_PARQUET_ENCRYPTION=1
+ fi
+ if use snappy; then
+ export PYARROW_WITH_SNAPPY=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # wtf?
+ tests/test_fs.py::test_localfs_errors
+ # these require apache-arrow with jemalloc that doesn't seem
+ # to be supported by the Gentoo package
+ tests/test_memory.py::test_env_var
+ tests/test_memory.py::test_specific_memory_pools
+ tests/test_memory.py::test_supported_memory_backends
+ # hypothesis health check failures
+ # https://github.com/apache/arrow/issues/41318
+ tests/interchange/test_interchange_spec.py::test_dtypes
+ tests/test_convert_builtin.py::test_array_to_pylist_roundtrip
+ tests/test_feather.py::test_roundtrip
+ tests/test_pandas.py::test_array_to_pandas_roundtrip
+ tests/test_strategies.py::test_types
+ tests/test_types.py::test_hashing
+ # fragile memory tests
+ tests/test_csv.py::TestSerialStreamingCSVRead::test_batch_lifetime
+ tests/test_csv.py::TestThreadedStreamingCSVRead::test_batch_lifetime
+ # takes forever, and manages to generate timedeltas over 64 bits
+ tests/test_strategies.py
+ )
+
+ cd "${T}" || die
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PARQUET_TEST_DATA="${WORKDIR}/parquet-testing-${PARQUET_DATA_GIT_HASH}/data"
+ local -x ARROW_TEST_DATA="${WORKDIR}/arrow-testing-${ARROW_DATA_GIT_HASH}/data"
+ epytest --pyargs pyarrow
+}
diff --git a/dev-python/pycups/pycups-2.0.4.ebuild b/dev-python/pycups/pycups-2.0.4.ebuild
index df3d47f4c8b4..3cd5b2c2d1fd 100644
--- a/dev-python/pycups/pycups-2.0.4.ebuild
+++ b/dev-python/pycups/pycups-2.0.4.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://github.com/OpenPrinting/pycups"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
IUSE="examples"
RDEPEND="net-print/cups"
diff --git a/dev-python/pydevd/Manifest b/dev-python/pydevd/Manifest
index 0b035c7de7a7..d2296b166780 100644
--- a/dev-python/pydevd/Manifest
+++ b/dev-python/pydevd/Manifest
@@ -1 +1,2 @@
DIST PyDev.Debugger-pydev_debugger_3_1_0.gh.tar.gz 4293466 BLAKE2B 2b820b44a37362dfe554f60f418ce6c94cfd9fb9b14b6d6f521e7bd2023f044129b440878a136d67249096ba8a4aa61bb465551c1d9930989ffe9fe40c68f464 SHA512 8afaab2a69cb6785c5453ce1034a70fa28ab33c3122c1e21c485d9023317785524144c76e87864a695fa1fd26b05bc6d828db22a7cbcf025bd8aafe0b9ed4d3b
+DIST PyDev.Debugger-pydev_debugger_3_2_2.gh.tar.gz 4283873 BLAKE2B 62c4a4a4677127ed7c3f0b2f63388169e01d620dd6bd986e4f24208379dcff77993d297e3647b395b6e6e262868b69533f63370c1975b8c582a52a80ce40f77d SHA512 0d2f73fbe4d3541ff3b0e24373165f92c44c28eced1ca00b618caff5f12ee579165ba16b3692d6d4d7840c36f75c5f064aabdd554bb00d39b3b896840dfdcda4
diff --git a/dev-python/pydevd/pydevd-3.2.2.ebuild b/dev-python/pydevd/pydevd-3.2.2.ebuild
new file mode 100644
index 000000000000..3f3975402989
--- /dev/null
+++ b/dev-python/pydevd/pydevd-3.2.2.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 toolchain-funcs
+
+TAG="pydev_debugger_${PV//./_}"
+MY_P="PyDev.Debugger-${TAG}"
+DESCRIPTION="PyDev.Debugger (used in PyDev, PyCharm and VSCode Python)"
+HOMEPAGE="
+ https://github.com/fabioz/PyDev.Debugger/
+ https://pypi.org/project/pydevd/
+"
+SRC_URI="
+ https://github.com/fabioz/PyDev.Debugger/archive/${TAG}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="EPL-1.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-debug/gdb
+"
+BDEPEND="
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/untangle[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # Drop -O3 and -flto compiler args
+ # Make extension build failures fatal
+ sed -i \
+ -e 's/extra_link_args = extra_compile_args\[\:\]/pass/g' \
+ -e '/extra_compile_args/d' \
+ -e '/except/a\ raise' \
+ setup.py || die
+
+ # Disable tests incompatible with new package versions
+ sed -e '/TEST_\(DJANGO\|FLASK\)/s:True:False:' \
+ -i tests_python/debug_constants.py || die
+
+ # Clean up some prebuilt files
+ rm -r third_party || die
+ cd pydevd_attach_to_process || die
+
+ # Remove these Windows files
+ rm attach_{amd64,x86}.dll || die
+ rm inject_dll_{amd64,x86}.exe || die
+ rm run_code_on_dllmain_{amd64,x86}.dll || die
+ rm -r windows winappdbg || die
+
+ # Remove these MacOS files
+ rm attach_x86_64.dylib || die
+
+ # Remove these prebuilt linux files
+ rm attach_linux_{amd64,x86}.so || die
+
+ cd linux_and_mac || die
+ rm compile_mac.sh || die
+}
+
+src_compile() {
+ pushd pydevd_attach_to_process/linux_and_mac || die
+ # recompile removed file (extracted from compile_linux.sh)
+ $(tc-getBUILD_CXX) ${CXXFLAGS} ${CPPFLAGS} \
+ -o "../attach_linux_${ARCH}.so" \
+ ${LDFLAGS} -nostartfiles attach.cpp -ldl || die
+ popd || die
+
+ distutils-r1_src_compile
+
+ # C extensions
+ rm -r _pydevd* || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ # NB: upstream seems to run tests via runfiles.py but that script
+ # is a horror and it seems broken for us anyway
+ tests_python/test_debugger.py::test_attach_to_pid_halted
+ tests_python/test_debugger.py::test_attach_to_pid_no_threads
+ 'tests_python/test_debugger.py::test_path_translation[False]'
+ tests_python/test_debugger_json.py::test_attach_to_pid
+ tests_python/test_debugger_json.py::test_case_sys_exit_multiple_exception_attach
+ tests_python/test_debugger_json.py::test_evaluate_exception_trace
+ tests_python/test_debugger_json.py::test_gui_event_loop_custom
+ tests_python/test_debugger_json.py::test_path_translation_and_source_reference
+ tests_python/test_utilities.py::test_tracing_basic
+ tests_python/test_utilities.py::test_tracing_other_threads
+ # incompatible with xdist
+ tests_python/test_utilities.py::test_find_main_thread_id
+ tests_python/test_utilities.py::test_is_main_thread
+ # numpy-2?
+ tests_python/test_debugger_json.py::test_evaluate_numpy
+ )
+
+ case ${EPYTHON} in
+ python3.11)
+ EPYTEST_DESELECT+=(
+ tests_python/test_debugger.py::test_frame_eval_limitations
+ tests_python/test_debugger.py::test_remote_debugger_threads
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ # flaky
+ tests_python/test_debugger_json.py::test_step_next_step_in_multi_threads
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # this is only used to compare against getpid() to detect that xdist
+ # is being used
+ local -x PYDEV_MAIN_PID=1
+ epytest -p rerunfailures --reruns=5
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ # Remove this duplicate that is installed directly to /usr/
+ # These files are also correctly installed to the python site-packages dir
+ rm -r "${ED}/usr/pydevd_attach_to_process" || die
+}
diff --git a/dev-python/pygccxml/files/pygccxml-2.5.0-fix-test-flags.patch b/dev-python/pygccxml/files/pygccxml-2.5.0-fix-test-flags.patch
new file mode 100644
index 000000000000..c96ef5e8d7ab
--- /dev/null
+++ b/dev-python/pygccxml/files/pygccxml-2.5.0-fix-test-flags.patch
@@ -0,0 +1,10 @@
+diff --git a/unittests/xml_generator.cfg b/unittests/xml_generator.cfg
+index cb00818..58899b6 100644
+--- a/unittests/xml_generator.cfg
++++ b/unittests/xml_generator.cfg
+@@ -15,3 +15,5 @@ include_paths=
+ compiler=
+ # Keep xml files after errors (useful for debugging)
+ keep_xml=
++# needed with clang-19
++cflags=-fsized-deallocation
diff --git a/dev-python/pygccxml/pygccxml-2.5.0.ebuild b/dev-python/pygccxml/pygccxml-2.5.0.ebuild
index d2bc4fa5a2ad..35d67ab4614f 100644
--- a/dev-python/pygccxml/pygccxml-2.5.0.ebuild
+++ b/dev-python/pygccxml/pygccxml-2.5.0.ebuild
@@ -36,6 +36,9 @@ distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
EPYTEST_DESELECT=(
# TODO; too new LLVM? upstream tests against LLVM 13
unittests/test_overrides.py::Test::test
+ # fails with >=GCC-15.0.2 (bug #940578)
+ unittests/test_smart_pointer.py::Test::test_smart_pointer_value_type
+
)
python_prepare_all() {
@@ -44,6 +47,8 @@ python_prepare_all() {
"${FILESDIR}/${PN}-2.4.0-doc.patch"
# https://github.com/CastXML/pygccxml/pull/179
"${FILESDIR}/${P}-which.patch"
+ # fixes tests with clang-19
+ "${FILESDIR}/${PN}-2.5.0-fix-test-flags.patch"
)
distutils-r1_python_prepare_all
diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest
index 16f481903aed..d3c8599e57b4 100644
--- a/dev-python/pymdown-extensions/Manifest
+++ b/dev-python/pymdown-extensions/Manifest
@@ -1 +1,2 @@
DIST pymdown_extensions-10.11.2.tar.gz 830241 BLAKE2B c4048ae6931e7c540b8fd97080daa2290df74be76933874c91db09edac49a272c079d8767b15f28ecee0bf2efa3569179f236d6c4e703dd0d324feabab8da3db SHA512 9636552de1a9ae4519e1c6d7ca7b9c6cd0eb8b4be27a844ea926937cfa00add0b9ca8894f3b8f95e7c95ef0b6012e9a5d0c5b8d0f9aa20d7300fb4878c6f91da
+DIST pymdown_extensions-10.12.tar.gz 840790 BLAKE2B cb0567072847b37a1717259dac2db06ca780d35cb6cde7b0b969f6b3cedf62c03db0f229f7d45feb69062bf5d62e149cb8ced7330a380e3e2ba30a5696138ce8 SHA512 4bf1decf0b44ea05b0df4a147f0aabdc9182e14f4dc5f731c74f851764f9a9bd38a3bd2a1a0e619ca6aa3c0898989f4cc97df500e9cd7a6067e2d75722b113dd
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-10.12.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-10.12.ebuild
new file mode 100644
index 000000000000..23a947575357
--- /dev/null
+++ b/dev-python/pymdown-extensions/pymdown-extensions-10.12.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extensions for Python Markdown"
+HOMEPAGE="
+ https://github.com/facelessuser/pymdown-extensions/
+ https://pypi.org/project/pymdown-extensions/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/pygments-2.12.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/pyrr/pyrr-0.10.3-r1.ebuild b/dev-python/pyrr/pyrr-0.10.3-r1.ebuild
index 1b93e656df0f..10412cb2ff9e 100644
--- a/dev-python/pyrr/pyrr-0.10.3-r1.ebuild
+++ b/dev-python/pyrr/pyrr-0.10.3-r1.ebuild
@@ -9,39 +9,18 @@ PYTHON_COMPAT=( python3_{9,10,11,12,13} )
inherit distutils-r1
DESCRIPTION="A cross platform utility library for ModernGL"
-HOMEPAGE="https://github.com/adamlwgriffiths/pyrr https://pypi.org/project/pyrr"
+HOMEPAGE="https://github.com/adamlwgriffiths/pyrr https://pypi.org/project/pyrr/"
SRC_URI="https://github.com/adamlwgriffiths/pyrr/archive/refs/tags/${PV}.tar.gz -> v${PV}.gh.tar.gz"
S="${WORKDIR}/Pyrr-${PV}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="doc"
RDEPEND="
dev-python/multipledispatch[${PYTHON_USEDEP}]
<dev-python/numpy-2[${PYTHON_USEDEP}]
"
-BDEPEND="
- ${RDEPEND}
- doc? (
- <dev-python/sphinx-8[${PYTHON_USEDEP}]
- )
-"
-DEPEND="${BDEPEND}"
-
-python_compile() {
- distutils-r1_python_compile
- if use doc; then
- find "${S}/docs" -type f -exec sed -i 's/sphinx\.ext\.pngmath/sphinx\.ext\.imgmath/g' {} \;
- emake man -C docs
- fi
-}
-
-python_install() {
- distutils-r1_python_install
- use doc && doman "${S}/docs/build/man/pyrr.1"
-}
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/pytest-httpx/Manifest b/dev-python/pytest-httpx/Manifest
index e610754d9615..b3aef8c8da1f 100644
--- a/dev-python/pytest-httpx/Manifest
+++ b/dev-python/pytest-httpx/Manifest
@@ -1 +1,2 @@
DIST pytest_httpx-0.32.0.tar.gz 43824 BLAKE2B d373703f5614e7d3d75631bef7c316ae0e5e1963eb1ffdff3fd6a10c65e095e44d1bf09eb81dd9b90492a8e44f19d650875f7302d4843854622df620eb146bde SHA512 fed3b83e4b3162f1500f3a591650aca5a0c09a1a640c5718ae00d4a3e3e9df8b6a90ec4cc1a1e77b6d2be7de80dec8fe69d8fb601de164c7ad84322acc1eb7d0
+DIST pytest_httpx-0.33.0.tar.gz 51708 BLAKE2B c4b4a5bc41c44b982dcfe81f09ec4b3ee1eeed9cdc52cea6889988692bfb312eb7c4105cdcd60fadbbf0602236e2e5baf3c1a448248189214c0ec77cde8a3ea4 SHA512 96e3b5e0264f61644ed22fc809f35d0b2b255aa2ba75a5bf33d165c35276f2b731689b70cfbab5b5c901b1be4ff59c4b21704f8b15453582a6095611380830c8
diff --git a/dev-python/pytest-httpx/pytest-httpx-0.33.0.ebuild b/dev-python/pytest-httpx/pytest-httpx-0.33.0.ebuild
new file mode 100644
index 000000000000..071c9a4d9583
--- /dev/null
+++ b/dev-python/pytest-httpx/pytest-httpx-0.33.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Send responses to HTTPX using pytest"
+HOMEPAGE="
+ https://colin-b.github.io/pytest_httpx/
+ https://github.com/Colin-b/pytest_httpx/
+ https://pypi.org/project/pytest-httpx/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ =dev-python/httpx-0.27*[${PYTHON_USEDEP}]
+ =dev-python/pytest-8*[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/python-tests/python-tests-3.13.0.ebuild b/dev-python/python-tests/python-tests-3.13.0.ebuild
index b035e3ea89c2..f4eb601b1982 100644
--- a/dev-python/python-tests/python-tests-3.13.0.ebuild
+++ b/dev-python/python-tests/python-tests-3.13.0.ebuild
@@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}/Lib"
LICENSE="PSF-2"
SLOT="${PYVER}"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
diff --git a/dev-python/qtconsole/Manifest b/dev-python/qtconsole/Manifest
index 7139ee89bd60..7d93093a03d0 100644
--- a/dev-python/qtconsole/Manifest
+++ b/dev-python/qtconsole/Manifest
@@ -1,2 +1,3 @@
DIST qtconsole-5.5.2.tar.gz 439219 BLAKE2B f354d3e6132142a3da52a1cb6b290d0a07b13920bc9f33f7fb29eb307cc5b653beccc5d28e53f7cbe7483147adb6e34ffc584718a79b814c9ce2c37b57a768fc SHA512 f79e51903fe5a1164a90c0905c308d2bce066bef2c61fed2b5bb7e757a9cf56875cdd14665df9284317497cd73bb544ae09e0b23c63b527bbd4bc90b874009f6
DIST qtconsole-5.6.0.tar.gz 440531 BLAKE2B f8d9e1ec45f310152b2c779df71c048ce6f704f8a9f366b6ed415a3dc8988553f45c4ac63fa08425e22124048e7946a4b40aedbbb15e90306bca5138426d91fe SHA512 ccd8f7b87d218237827bd52afc160cc8c00e9feecf90cde39aff55509831bdc9c4799499c91ed13538ce52a4011ed289f194662eef55b98efe09a2b9a5bd5427
+DIST qtconsole-5.6.1.tar.gz 435808 BLAKE2B 74476bfa85e08dfdd3bb0595531253638957024a2a5c9ec16e5eefa3677cf57756ddacdbf21405e93da1b5101bb4a354970ef86c786db02c52ca92e40877bbc0 SHA512 1bc2cf75019186ad439033ca7e262fb0e3172336b15573fec1da4925830c26f33117229f7552cdd26a3691b0c9facaf0073c640aea8098c3599aed38e7621392
diff --git a/dev-python/qtconsole/qtconsole-5.6.1.ebuild b/dev-python/qtconsole/qtconsole-5.6.1.ebuild
new file mode 100644
index 000000000000..469c83e5a12b
--- /dev/null
+++ b/dev-python/qtconsole/qtconsole-5.6.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Qt-based console for Jupyter with support for rich media output"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/qtconsole/
+ https://pypi.org/project/qtconsole/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/ipykernel-4.1[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-4.1.1[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.2.2_p1[${PYTHON_USEDEP}]
+ >=dev-python/QtPy-2.4.0[${PYTHON_USEDEP},gui,printsupport,svg]
+"
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/pytest-qt[${PYTHON_USEDEP}]
+ dev-python/QtPy[${PYTHON_USEDEP},svg,testlib]
+ )
+"
+
+PDEPEND="
+ dev-python/ipython[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO; expects exact HTML, so perhaps fragile
+ qtconsole/tests/test_jupyter_widget.py::TestJupyterWidget::test_other_output
+ )
+ local -x QT_API
+ for QT_API in pyqt5 pyqt6 pyside2 pyside6; do
+ if has_version "dev-python/QtPy[${QT_API}]"; then
+ local -x PYTEST_QT_API=${QT_API}
+ einfo "Testing with ${QT_API}"
+ nonfatal epytest ||
+ die "Tests failed with ${EPYTHON} / ${QT_API}"
+ fi
+ done
+}
diff --git a/dev-python/rich-click/Manifest b/dev-python/rich-click/Manifest
new file mode 100644
index 000000000000..989e5aec8eba
--- /dev/null
+++ b/dev-python/rich-click/Manifest
@@ -0,0 +1 @@
+DIST rich-click-1.8.3.gh.tar.gz 325306 BLAKE2B a98f5a7a6c6a43a53b4366afe335509b57632299935c8e47431b16e11984317059dea6e75df6b571efdd6e793575c7c9004bfa087c2a1dd386e30b70635daefa SHA512 714d5d3c4b32529323f2944964e5a08479a19d6b54071750f5ccaab6ceadc5035e1d9fde4c4bc0756baef0f3e5f974a78a514fe7a35ccb621d231d5e96ec0290
diff --git a/dev-python/rich-click/metadata.xml b/dev-python/rich-click/metadata.xml
new file mode 100644
index 000000000000..5eadc2853e3e
--- /dev/null
+++ b/dev-python/rich-click/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <email>phil@ewels.co.uk</email>
+ <name>Phil Ewels</name>
+ </maintainer>
+ <maintainer>
+ <email>xdanielreeves@gmail.com</email>
+ <name>Daniel Reeves</name>
+ </maintainer>
+ <bugs-to>https://github.com/ewels/rich-click/issues</bugs-to>
+ </upstream>
+ <origin>gentoo-guru-overlay</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/rich-click/rich-click-1.8.3.ebuild b/dev-python/rich-click/rich-click-1.8.3.ebuild
new file mode 100644
index 000000000000..557bd5c9309a
--- /dev/null
+++ b/dev-python/rich-click/rich-click-1.8.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Format click help output nicely with rich"
+HOMEPAGE="
+ https://pypi.org/project/rich-click/
+ https://github.com/ewels/rich-click
+"
+SRC_URI="https://github.com/ewels/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/click-7[${PYTHON_USEDEP}]
+ >=dev-python/rich-10.7[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ touch tests/fixtures/__init__.py || die
+}
diff --git a/dev-python/rq/Manifest b/dev-python/rq/Manifest
index d5576c94eb41..0f644cef16f3 100644
--- a/dev-python/rq/Manifest
+++ b/dev-python/rq/Manifest
@@ -1 +1,2 @@
DIST rq-1.16.2.tar.gz 629881 BLAKE2B 69ac4ba43ea79ddf998bc9f7cf0fc5fa42acb0315dff663b1c924498ccfabdd37ac6d9613e128b838b9e1f45988632a337fb2fa50f5adcd1b69aa520b5ad33e2 SHA512 1c3162b1acffc9d11292fcbff7177267272a02e752b5839a4004b875bb5bb25af7e61f31041df438ef4e0e47152296c3a2711856c6a36d787848dcb766387d1a
+DIST rq-2.0.0.tar.gz 639193 BLAKE2B ec44a45618f4ba0cafd30d13d15db8efc26c35f41100019e94d28ac21ca0c6157df34c55fd9bc2c2afdd4752e815a45150c95840339744c005c297153795e598 SHA512 46878626ad939fdc3f31bfd04fab9d11f266a390fe75ea22fde62e1622607e715673a8f3d2e3aba78e489b861d16068836aea4eca5a88cd295d6b6ca61707a41
diff --git a/dev-python/rq/rq-2.0.0.ebuild b/dev-python/rq/rq-2.0.0.ebuild
new file mode 100644
index 000000000000..a774664a5bca
--- /dev/null
+++ b/dev-python/rq/rq-2.0.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple, lightweight library for creating and processing background jobs"
+HOMEPAGE="
+ https://python-rq.org/
+ https://github.com/rq/rq/
+ https://pypi.org/project/rq/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/click-5.0[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unnecessary typechecking deps
+ sed -i -e '/types-/d' pyproject.toml || die
+}
+
+src_test() {
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+ local redis_test_config="daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1
+ "
+
+ # Spawn Redis itself for testing purposes
+ # NOTE: On sam@'s machine, spawning Redis can hang in the sandbox.
+ # I'm not restricting tests yet because this doesn't happen for anyone else AFAICT.
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ /usr/sbin/redis-server - <<< "${redis_test_config}" || die
+
+ # Run the actual tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires <sentry-sdk-2
+ tests/test_sentry.py::TestSentry::test_failure_capture
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/simpleeval/Manifest b/dev-python/simpleeval/Manifest
index 5608d59a495d..d318202f317c 100644
--- a/dev-python/simpleeval/Manifest
+++ b/dev-python/simpleeval/Manifest
@@ -1 +1,2 @@
DIST simpleeval-1.0.0.tar.gz 25714 BLAKE2B 3527c3109fd77226c1103ebaac6fb5d03b9439b7e79b2b8386bd9ac9631bc0c1843d06e7a12843801294b84517bd2fc32ce607cc6f99dacf6c827e57d1717e6e SHA512 b5310dfac1ba231e47e86ff6dc8b3c814210f3f14724a0da12f429133354a46f60f980fd29ef66c675c52cd668f2f18c74a6b805192972e821d8331817f44c83
+DIST simpleeval-1.0.1.tar.gz 24395 BLAKE2B f5ac188a6797135e79ce6d1cdc5a57987666c6670ce335d7dec68df05c6793f857fb100c087d0f228103ac74f38e41054ad8dbcf4bfc895e47c11faaf965990d SHA512 ba5202f505da411378f97b516070c6f4c456d58467ecbdfd98e611a63c77fe4382a456a9551dee00d8b22cc9dd9d8cddf57e379fac968c27db075cbfc84d8dd2
diff --git a/dev-python/simpleeval/simpleeval-1.0.1.ebuild b/dev-python/simpleeval/simpleeval-1.0.1.ebuild
new file mode 100644
index 000000000000..46473f0ca65f
--- /dev/null
+++ b/dev-python/simpleeval/simpleeval-1.0.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A simple, safe single expression evaluator library"
+HOMEPAGE="
+ https://github.com/danthedeckie/simpleeval/
+ https://pypi.org/project/simpleeval/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # https://github.com/danthedeckie/simpleeval/issues/155
+ sed -i -e '/pip/d' pyproject.toml || die
+}
diff --git a/dev-python/simsimd/Manifest b/dev-python/simsimd/Manifest
index 22cadbe22887..406be64ee6aa 100644
--- a/dev-python/simsimd/Manifest
+++ b/dev-python/simsimd/Manifest
@@ -1,2 +1,3 @@
DIST SimSIMD-5.8.0.gh.tar.gz 183559 BLAKE2B 2df0eac6eff58bc6c460b37cb7c523eae5d7e77d516bc7182ef3b39d033a1028d40536aaf99ad8ec8c28b4908ff873079ff0ca3d74acd1f763b0faaa5d4e225e SHA512 4e68050379dfe42e6c36a88a0defad0d941c873bda66cb4c65bd8367b07bca99a5c5d6eec7c8e39b15ad1b8e5bcc9dc7f43457d8552e9d72faefb88b03ad6f9b
DIST SimSIMD-5.9.2.gh.tar.gz 201732 BLAKE2B 2ca654f964fba71e54b8383390021fe87a731a85cac2509319944a3d0c0f60a09a7c1cf2fdb16a78ca20f3b7618e40960f2eac6c65fae6a06e583504df35890a SHA512 cf32776e05b91784d9a3a7d86a73a91549a22ce4612124f88412bb12bd356c654ce4e70c6a436f731d832a65cba8827d1100ff26f2b88fcaa234057f17d19aeb
+DIST SimSIMD-5.9.3.gh.tar.gz 201742 BLAKE2B b0bb57f6f2ae787b73a42997126f0bb8dce5dbf0f052d9145a6b79d72ac922e4da5c382e9c1a0104b6f8199c1f23dfa513f8a9134f772e4e25264678b030e908 SHA512 308bd69c41d2b668d4c4a147afdb2ea27aea6d8210affafe321681dc56542f59d241cc4a767d82fe9f85938545ecdd7f96c2533067d503529db730ab10ecc73e
diff --git a/dev-python/simsimd/simsimd-5.9.3.ebuild b/dev-python/simsimd/simsimd-5.9.3.ebuild
new file mode 100644
index 000000000000..61d7aca0a9fa
--- /dev/null
+++ b/dev-python/simsimd/simsimd-5.9.3.ebuild
@@ -0,0 +1,64 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 toolchain-funcs
+
+MY_P=SimSIMD-${PV}
+DESCRIPTION="Fastest SIMD-Accelerated Vector Similarity Functions for x86 and Arm"
+HOMEPAGE="
+ https://github.com/ashvardanian/SimSIMD/
+ https://pypi.org/project/simsimd/
+"
+# no sdist, as of 4.3.1
+# https://github.com/ashvardanian/SimSIMD/issues/113
+SRC_URI="
+ https://github.com/ashvardanian/SimSIMD/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp"
+
+BDEPEND="
+ test? (
+ dev-python/pytest-repeat[${PYTHON_USEDEP}]
+ dev-python/tabulate[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+ tc-check-openmp
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] && use openmp; then
+ tc-check-openmp
+ fi
+}
+
+src_prepare() {
+ sed -i -e '/-O3/d' setup.py || die
+ if ! use openmp; then
+ sed -i -e '/-fopenmp/d' setup.py || die
+ fi
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p repeat scripts/test.py
+}
diff --git a/dev-python/tqdm/Manifest b/dev-python/tqdm/Manifest
index e26838b80b21..f3e43c9567c0 100644
--- a/dev-python/tqdm/Manifest
+++ b/dev-python/tqdm/Manifest
@@ -1 +1,2 @@
DIST tqdm-4.66.5.tar.gz 169504 BLAKE2B 9868bcfb4f3fc22aedfbb848d383055ef6ef9795982cd7877e620dba5391ffee369c375b27555c302d1fc6fb27ddacf8d3874daeffa62e5e8699e1124fbf96af SHA512 8e2c35f02fe365063a325d8a1d3e525870d522fab465e1a86764b8716ff32c039db463fe5e74a5f080ced40851d49b1e4273126074d62f14ed1935a96e0afb8a
+DIST tqdm-4.66.6.tar.gz 169533 BLAKE2B 98f5e357cdd99b45e30345f4a8a7b935de987b301686c2efcbf88813967258ca09ce26d9b3df31a3606db87cb7fdc6a525e8ea44d05d2730709dfeea55c32ad7 SHA512 4813fc6896bde582cb14dac2fd741772c181fe0647197d84d65561e9c9e6bf02b5370658e4839fb8f50c8ad0b8bf0ca5b5ad62b5ea29d912f288d86699b2ff5c
diff --git a/dev-python/tqdm/tqdm-4.66.6.ebuild b/dev-python/tqdm/tqdm-4.66.6.ebuild
new file mode 100644
index 000000000000..7270c143feb3
--- /dev/null
+++ b/dev-python/tqdm/tqdm-4.66.6.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit bash-completion-r1 distutils-r1 pypi
+
+DESCRIPTION="Add a progress meter to your loops in a second"
+HOMEPAGE="
+ https://github.com/tqdm/tqdm/
+ https://pypi.org/project/tqdm/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="examples"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # Skip unpredictable performance tests
+ tests/tests_perf.py
+)
+
+python_install_all() {
+ doman tqdm/tqdm.1
+ newbashcomp tqdm/completion.sh tqdm
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index f967cb214857..70ad78e4c851 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,2 +1,3 @@
DIST virtualenv-20.26.6.tar.gz 9372482 BLAKE2B 7e91c8beb59c3c3f4d538af425916abe94151efedae3f643c573f6c0dd05a37cfc42b5e61cbdb73e02fcc5adbfd34a0ffa5096790975890fe9d17f626ea5687c SHA512 9d403a835c66f9b7f733d3720f459b9450dddd5cd9a76358332da20dddd309918177d3d7782304e11f56f48755d901feb4eb9b708c3719241bf389f29bf0ba04
DIST virtualenv-20.27.0.tar.gz 6483858 BLAKE2B 661a8e208eecb4cc27edd515c09e4541fca6a00285a7f4dcc798c37c602a505460cc53f699a33589dca2f686534bec188c48ae1001e52979febd1787760b2ef7 SHA512 1d0e1e32af8685d0e426823acaa3b73a1a8f60195a0627585b897d1c3d785b2cc67331c6e7f414589e5a61b84f6aecaffdaa4baefa51390bf23ebb3be2e2ef78
+DIST virtualenv-20.27.1.tar.gz 6491145 BLAKE2B 807f4b2f699098ef3ddff3fad6af9244f1a33468522395a1cfb4e937cdb44b83c54224c4abafb65ba00b266b68b0e91eeadef5b1c4a175dd0c3288f5ddbce073 SHA512 36a84a3ada9ac79fbd6c23f77b45742421af0fdbb6ff4a83660ca3fe0d2a9b2e34e0bb5df633362bb98fcba042fd6d7e5f82587efa124cc1d7cf076df260fea5
diff --git a/dev-python/virtualenv/virtualenv-20.27.1.ebuild b/dev-python/virtualenv/virtualenv-20.27.1.ebuild
new file mode 100644
index 000000000000..92ae808a8cdc
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-20.27.1.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ dev-python/ensurepip-setuptools
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ dev-python/flaky[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
+ ' pypy3)
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_TIMEOUT=180
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-20.26.3-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:<[0-9.]*,::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ )
+ case ${EPYTHON} in
+ python3.1[23])
+ EPYTEST_DESELECT+=(
+ tests/unit/create/via_global_ref/test_build_c_ext.py
+ )
+ ;&
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+ local plugins=( -p flaky -p pytest_mock )
+ if [[ ${EPYTHON} == pypy3 ]]; then
+ plugins+=( -p freezer )
+ else
+ plugins+=( -p time_machine )
+ fi
+ epytest "${plugins[@]}" -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}
diff --git a/dev-python/waitress/Manifest b/dev-python/waitress/Manifest
index 1baa35ab8e18..af8590fa9828 100644
--- a/dev-python/waitress/Manifest
+++ b/dev-python/waitress/Manifest
@@ -1 +1,2 @@
DIST waitress-3.0.0.tar.gz 179393 BLAKE2B 266130e3f0610098c29fe11076f58c8f938439c9b80e9630b917e829b64c88d06803c9208137b220827ed1deb8e9ba2c396dfcaf8d92435ee738d580dbda6f26 SHA512 8b391eb194fce32fd78c1a20cd1afe8caf20e7e0c622e4be2b1ec7d3831cb5a607cda0637d08dcd3a55f2e8c84817abdad4636bf2ca260b12a774dcfa68b9176
+DIST waitress-3.0.1.tar.gz 180560 BLAKE2B 20f7372ab2df88a9d67a7d7553f88d8024702e7003f5482aaa125ec89d00db1c5f1e1ec4f924a83b87613b871b440d4e56c72dafb450a9e107f756069afe811a SHA512 131492515d1c7c82e9dff0688c2f36f79594a2b1c6cd767ee29bfba53764aa514c8e2eeaef4319142df01001c850337954474745880541b6c9f8c39cd2ea5113
diff --git a/dev-python/waitress/waitress-3.0.1.ebuild b/dev-python/waitress/waitress-3.0.1.ebuild
new file mode 100644
index 000000000000..69787c5fb0fe
--- /dev/null
+++ b/dev-python/waitress/waitress-3.0.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A pure-Python WSGI server"
+HOMEPAGE="
+ https://docs.pylonsproject.org/projects/waitress/en/latest/
+ https://pypi.org/project/waitress/
+ https://github.com/Pylons/waitress/
+"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fails on some systems, https://bugs.gentoo.org/782031
+ tests/test_wasyncore.py::DispatcherWithSendTests::test_send
+)
+
+src_prepare() {
+ sed -i -e 's:--cov::' setup.cfg || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/yarl/Manifest b/dev-python/yarl/Manifest
index fcbb01975596..e70ba2e8e698 100644
--- a/dev-python/yarl/Manifest
+++ b/dev-python/yarl/Manifest
@@ -2,4 +2,5 @@ DIST yarl-1.13.1.tar.gz 165912 BLAKE2B dfe4f9ac09c66d05b6d072cd6676d1753f97224d5
DIST yarl-1.14.0.tar.gz 166127 BLAKE2B 7974896144ef23309aead8935f18fe717e39b982bc75eb3c828eaf9a1d01b413c2bbb270344160a396927fc32571928c67eae46146920cc6908e2e3f74e90cd8 SHA512 8cc9d1aaa6fcccdfce5ea0a0ac3f89b81c5719568b76e66637e9a7baa0637770523f86495f70e28f94f166579e77d72afd708cef1306dafcd8093c7fb2a1d3f0
DIST yarl-1.15.5.tar.gz 172410 BLAKE2B 49d31ed31466921a04d1e83d98c6ec742aaa71a7675da9c9ee4f99ce4ca6813cd471e92e8ee78e4c33c3ea2efe981b8603bf677100b1e9b8f6de3324e2c43074 SHA512 d1219971f5bc90e1d1f4b256a8e90fd98433086cb326f658bd68bfaefd97c12c0ff8121ab16fdd047236f29ce6c3907ea6b0afbde3526fe8ec290dec379ca732
DIST yarl-1.16.0.tar.gz 176548 BLAKE2B 038934a1ef05c78fd04702ed4519c121b7e9c5e6f41069e179cd7f09c178da9e6a73ab14cf5083dfa0597b24ed351dac0d937f419c58e510c9eb695c3639d2f3 SHA512 ee3933aed6ac0cc5df24cd0e8f3d3d560348b4a7c960562a7bee16e105b6104e24c5720388cd4a1ae20f796f27bf0ce8c599999d554e3cd790c6db27c6799d22
+DIST yarl-1.17.0.tar.gz 177249 BLAKE2B e84d042ed3028989e69e59621f123deda905c3ab9c4b99e58cf8f306ca4599ef4525d93838dc1595f1cdf8028fc6708fd3d5b7a698b0ca9bba1ac4e754a218f4 SHA512 bae5ae31ddb072c9a1f6902cb87dbfbf194e8a67532da336658382a647961e1290166500ac358528681e406ba99b76825293eac6ec042a480c018c421a135610
DIST yarl-1.9.4.tar.gz 141869 BLAKE2B 367eac4674bf1190122f10bb1dc1c4f3d5e4263e1d95ff2b871067d55a894dc19a6bb5a6c673d1bed28b3c5f77c704799568edfe639d50f0ae10313eb847352d SHA512 e4f7917f1625b40125abae9a13d61795f97e8cf489735e15cf58476e97c3bcf840b1452482f1f7a737fbb2bdd1dc7bbcfa882d0a7f76a27dfb3aea72b7a66c82
diff --git a/dev-python/yarl/yarl-1.14.0.ebuild b/dev-python/yarl/yarl-1.14.0.ebuild
index c42d5bc42d44..f6bc1649e228 100644
--- a/dev-python/yarl/yarl-1.14.0.ebuild
+++ b/dev-python/yarl/yarl-1.14.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+native-extensions"
RDEPEND="
diff --git a/dev-python/yarl/yarl-1.17.0.ebuild b/dev-python/yarl/yarl-1.17.0.ebuild
new file mode 100644
index 000000000000..638ce0f69079
--- /dev/null
+++ b/dev-python/yarl/yarl-1.17.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Yet another URL library"
+HOMEPAGE="
+ https://github.com/aio-libs/yarl/
+ https://pypi.org/project/yarl/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+RDEPEND="
+ >=dev-python/idna-2.0[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ dev-python/expandvars[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x YARL_NO_EXTENSIONS=0
+ if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ YARL_NO_EXTENSIONS=1
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # benchmarks
+ tests/test_quoting_benchmarks.py
+ tests/test_url_benchmarks.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local opts=()
+ # note different boolean logic than for backend (sigh)
+ local -x YARL_NO_EXTENSIONS=
+ if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ YARL_NO_EXTENSIONS=1
+ fi
+
+ rm -rf yarl || die
+ epytest -o addopts= "${opts[@]}"
+}