summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-12-14 18:54:46 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-12-14 18:54:46 +0000
commitc481be7e1e8fbed206971d407b512daf8ff6cf18 (patch)
treecf213fa703bc1a78dfac6f1df094c7b82637fcbd /dev-python
parent4cd9d0dda82f1784f71ed4bfe85de33f5be89e08 (diff)
downloadbaldeagleos-repo-c481be7e1e8fbed206971d407b512daf8ff6cf18.tar.gz
baldeagleos-repo-c481be7e1e8fbed206971d407b512daf8ff6cf18.tar.xz
baldeagleos-repo-c481be7e1e8fbed206971d407b512daf8ff6cf18.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiosignal/Manifest1
-rw-r--r--dev-python/aiosignal/aiosignal-1.3.2.ebuild39
-rw-r--r--dev-python/asttokens/asttokens-3.0.0.ebuild2
-rw-r--r--dev-python/asttokens/metadata.xml1
-rw-r--r--dev-python/bandit/bandit-1.8.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest6
-rw-r--r--dev-python/boto3/boto3-1.35.68.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.35.71.ebuild2
-rw-r--r--dev-python/boto3/boto3-1.35.78.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.35.79.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.35.80.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.35.81.ebuild (renamed from dev-python/boto3/boto3-1.35.77.ebuild)0
-rw-r--r--dev-python/botocore/Manifest6
-rw-r--r--dev-python/botocore/botocore-1.35.68.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.35.71.ebuild2
-rw-r--r--dev-python/botocore/botocore-1.35.78.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.35.79.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.35.80.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.35.81.ebuild (renamed from dev-python/botocore/botocore-1.35.77.ebuild)0
-rw-r--r--dev-python/cppy/cppy-1.3.0.ebuild2
-rw-r--r--dev-python/daiquiri/Manifest1
-rw-r--r--dev-python/daiquiri/daiquiri-3.3.0.ebuild29
-rw-r--r--dev-python/dep-logic/Manifest2
-rw-r--r--dev-python/dep-logic/dep-logic-0.4.10.ebuild (renamed from dev-python/dep-logic/dep-logic-0.4.6.ebuild)0
-rw-r--r--dev-python/dns-lexicon/Manifest1
-rw-r--r--dev-python/dns-lexicon/dns-lexicon-3.20.0.ebuild72
-rw-r--r--dev-python/faker/Manifest1
-rw-r--r--dev-python/faker/faker-33.0.0.ebuild43
-rw-r--r--dev-python/faker/faker-33.1.0.ebuild2
-rw-r--r--dev-python/httptools/httptools-0.6.4.ebuild2
-rw-r--r--dev-python/identify/Manifest1
-rw-r--r--dev-python/identify/identify-2.6.2.ebuild29
-rw-r--r--dev-python/identify/identify-2.6.3.ebuild2
-rw-r--r--dev-python/ipython/Manifest1
-rw-r--r--dev-python/ipython/ipython-8.29.0.ebuild161
-rw-r--r--dev-python/ipython/ipython-8.30.0.ebuild2
-rw-r--r--dev-python/json5/Manifest1
-rw-r--r--dev-python/json5/json5-0.10.0.ebuild2
-rw-r--r--dev-python/json5/json5-0.9.28.ebuild21
-rw-r--r--dev-python/keystoneauth1/Manifest2
-rw-r--r--dev-python/keystoneauth1/keystoneauth1-5.8.0.ebuild60
-rw-r--r--dev-python/keystoneauth1/keystoneauth1-5.9.0.ebuild61
-rw-r--r--dev-python/keystoneauth1/keystoneauth1-5.9.1.ebuild2
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/matplotlib/Manifest3
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.0.ebuild (renamed from dev-python/matplotlib/matplotlib-3.10.0_rc1.ebuild)2
-rw-r--r--dev-python/matplotlib/matplotlib-3.9.4.ebuild301
-rw-r--r--dev-python/mygpoclient/mygpoclient-1.10.ebuild2
-rw-r--r--dev-python/nbclient/Manifest1
-rw-r--r--dev-python/nbclient/nbclient-0.10.0.ebuild57
-rw-r--r--dev-python/nbclient/nbclient-0.10.1.ebuild2
-rw-r--r--dev-python/nh3/nh3-0.2.19.ebuild2
-rw-r--r--dev-python/numexpr/numexpr-2.10.2.ebuild2
-rw-r--r--dev-python/orjson/orjson-3.10.12.ebuild2
-rw-r--r--dev-python/pdoc3/Manifest2
-rw-r--r--dev-python/pdoc3/files/pdoc3-0.10.0-update-tests.patch114
-rw-r--r--dev-python/pdoc3/files/pdoc3-TST-use-explicit-ClassWithNew-instead-of-typing.Gene.patch43
-rw-r--r--dev-python/pdoc3/pdoc3-0.10.0-r2.ebuild42
-rw-r--r--dev-python/pdoc3/pdoc3-0.11.3.ebuild2
-rw-r--r--dev-python/pebble/Manifest1
-rw-r--r--dev-python/pebble/pebble-5.0.7.ebuild24
-rw-r--r--dev-python/pebble/pebble-5.1.0.ebuild2
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.13.52.ebuild39
-rw-r--r--dev-python/pyarrow/pyarrow-18.1.0.ebuild2
-rw-r--r--dev-python/pycares/pycares-4.5.0.ebuild2
-rw-r--r--dev-python/pydantic-settings/Manifest2
-rw-r--r--dev-python/pydantic-settings/pydantic-settings-2.7.0.ebuild (renamed from dev-python/pydantic-settings/pydantic-settings-2.6.0.ebuild)19
-rw-r--r--dev-python/pygithub/Manifest1
-rw-r--r--dev-python/pygithub/pygithub-2.4.0.ebuild44
-rw-r--r--dev-python/pygithub/pygithub-2.5.0.ebuild2
-rw-r--r--dev-python/pyjwt/Manifest2
-rw-r--r--dev-python/pyjwt/pyjwt-2.10.0.ebuild40
-rw-r--r--dev-python/pyjwt/pyjwt-2.10.1.ebuild2
-rw-r--r--dev-python/pyjwt/pyjwt-2.9.0.ebuild40
-rw-r--r--dev-python/pyperclip/Manifest1
-rw-r--r--dev-python/pyperclip/pyperclip-1.8.2-r1.ebuild55
-rw-r--r--dev-python/pyperclip/pyperclip-1.9.0.ebuild2
-rw-r--r--dev-python/pypiserver/Manifest2
-rw-r--r--dev-python/pypiserver/files/pypiserver-1.5.0-unbundle-bottle.patch89
-rw-r--r--dev-python/pypiserver/pypiserver-2.2.0.ebuild77
-rw-r--r--dev-python/pypiserver/pypiserver-2.3.1.ebuild80
-rw-r--r--dev-python/pypiserver/pypiserver-2.3.2.ebuild2
-rw-r--r--dev-python/pyrime/pyrime-0.0.7.ebuild10
-rw-r--r--dev-python/pytest-asyncio/Manifest1
-rw-r--r--dev-python/pytest-asyncio/pytest-asyncio-0.25.0.ebuild44
-rw-r--r--dev-python/pytest-cov/Manifest1
-rw-r--r--dev-python/pytest-cov/pytest-cov-6.0.0.ebuild63
-rw-r--r--dev-python/python-multipart/Manifest1
-rw-r--r--dev-python/python-multipart/python-multipart-0.0.17.ebuild44
-rw-r--r--dev-python/python-multipart/python-multipart-0.0.18.ebuild2
-rw-r--r--dev-python/python-tests/python-tests-3.12.8.ebuild2
-rw-r--r--dev-python/python-utils/Manifest1
-rw-r--r--dev-python/python-utils/python-utils-3.9.0.ebuild46
-rw-r--r--dev-python/python-utils/python-utils-3.9.1.ebuild2
-rw-r--r--dev-python/qtpy/Manifest1
-rw-r--r--dev-python/qtpy/qtpy-2.4.1-r2.ebuild245
-rw-r--r--dev-python/qtpy/qtpy-2.4.2.ebuild2
-rw-r--r--dev-python/scikit-image/Manifest1
-rw-r--r--dev-python/scikit-image/scikit-image-0.25.0.ebuild96
-rw-r--r--dev-python/scipy/Manifest1
-rw-r--r--dev-python/scipy/scipy-1.15.0_rc1.ebuild163
-rw-r--r--dev-python/setproctitle/setproctitle-1.3.4-r1.ebuild2
-rw-r--r--dev-python/sphinx-autoapi/Manifest1
-rw-r--r--dev-python/sphinx-autoapi/sphinx-autoapi-3.3.3.ebuild51
-rw-r--r--dev-python/sphinx-autoapi/sphinx-autoapi-3.4.0.ebuild2
-rw-r--r--dev-python/threadpoolctl/threadpoolctl-3.5.0.ebuild51
-rw-r--r--dev-python/tomli/Manifest2
-rw-r--r--dev-python/tomli/tomli-2.1.0.ebuild40
-rw-r--r--dev-python/tomli/tomli-2.2.1.ebuild2
-rw-r--r--dev-python/tqdm/Manifest1
-rw-r--r--dev-python/tqdm/tqdm-4.67.0.ebuild45
-rw-r--r--dev-python/tqdm/tqdm-4.67.1.ebuild2
-rw-r--r--dev-python/translate-toolkit/Manifest1
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.14.2.ebuild122
-rw-r--r--dev-python/trimesh/Manifest1
-rw-r--r--dev-python/trimesh/trimesh-4.5.2.ebuild78
-rw-r--r--dev-python/trimesh/trimesh-4.5.3.ebuild2
-rw-r--r--dev-python/uv/Manifest1
-rw-r--r--dev-python/uv/uv-0.5.6.ebuild2
-rw-r--r--dev-python/uv/uv-0.5.9.ebuild170
-rw-r--r--dev-python/uvicorn/uvicorn-0.32.1.ebuild2
-rw-r--r--dev-python/virtualenv/Manifest1
-rw-r--r--dev-python/virtualenv/virtualenv-20.27.1.ebuild118
-rw-r--r--dev-python/virtualenv/virtualenv-20.28.0.ebuild2
-rw-r--r--dev-python/webtest/Manifest1
-rw-r--r--dev-python/webtest/webtest-3.0.1.ebuild45
-rw-r--r--dev-python/webtest/webtest-3.0.2.ebuild2
-rw-r--r--dev-python/zope-interface/zope-interface-7.2.ebuild2
132 files changed, 1260 insertions, 2393 deletions
diff --git a/dev-python/aiosignal/Manifest b/dev-python/aiosignal/Manifest
index d9ab33d5c797..fbb57435d7d6 100644
--- a/dev-python/aiosignal/Manifest
+++ b/dev-python/aiosignal/Manifest
@@ -1 +1,2 @@
DIST aiosignal-1.3.1.gh.tar.gz 26119 BLAKE2B 16112f674f20b97406eff16a6a9baca1ef414132ec53a67789e08347f06a462ff653c7a00d6865855f5fe0fd70ba4a2bebe286020fdf1942da41d43f72e67837 SHA512 c03454d1b855bb3e84d3ce07fb32d08855b42d1ca7723fd67d3b2ef1bc66038a31974fabda7561c90e2beaf4cdd2c28cc0463e43eb5d5c127df0cd187ae3c2e2
+DIST aiosignal-1.3.2.gh.tar.gz 27043 BLAKE2B 253022824866f47658fd5e2ebfc0e234e31541c38679695a2645ae0612888134edab3c5f36a01242db87c28ba37d50d45edfc782b48278860a72c3f3aadcdf73 SHA512 9a66e79d43e0aecd1195721db07d4e21da6ea9be81198b965471dd01beda44791d56400839f4ea30ba4d0c106f0b9bf6f91277c310c219669de45a4f874957e5
diff --git a/dev-python/aiosignal/aiosignal-1.3.2.ebuild b/dev-python/aiosignal/aiosignal-1.3.2.ebuild
new file mode 100644
index 000000000000..626b7651c7f8
--- /dev/null
+++ b/dev-python/aiosignal/aiosignal-1.3.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2021-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
+
+DESCRIPTION="A list of registered asynchronous callbacks"
+HOMEPAGE="
+ https://pypi.org/project/aiosignal/
+ https://github.com/aio-libs/aiosignal/
+"
+SRC_URI="
+ https://github.com/aio-libs/aiosignal/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/frozenlist-1.1.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p asyncio
+}
diff --git a/dev-python/asttokens/asttokens-3.0.0.ebuild b/dev-python/asttokens/asttokens-3.0.0.ebuild
index d05166c63dd9..3dfb78821c8d 100644
--- a/dev-python/asttokens/asttokens-3.0.0.ebuild
+++ b/dev-python/asttokens/asttokens-3.0.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/asttokens/metadata.xml b/dev-python/asttokens/metadata.xml
index 7ad11570cc7d..a0d4c5913ba0 100644
--- a/dev-python/asttokens/metadata.xml
+++ b/dev-python/asttokens/metadata.xml
@@ -6,4 +6,5 @@
</maintainer>
<origin>gentoo-staging</origin>
+ <stabilize-allarches/>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/bandit/bandit-1.8.0.ebuild b/dev-python/bandit/bandit-1.8.0.ebuild
index e98719475839..ef4e34f08eb6 100644
--- a/dev-python/bandit/bandit-1.8.0.ebuild
+++ b/dev-python/bandit/bandit-1.8.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 545746d14ffd..d118dc290142 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,7 +1,3 @@
-DIST boto3-1.35.68.gh.tar.gz 901189 BLAKE2B f7449998af169c873319d7b8748035db72c3af7be6499453c9fe61f40cbfd724dce7cf003fe700f6046f43c887768f4c26dd52e491f5734a5ec55c5b54e360c0 SHA512 24582ed20764870e2491a2dc48869089ebc4371a279eff68827ce3a6a962568fc1738e52285fa89a3a846385b498bb233460c1d0ae3177d735ad20b2cef7fea2
DIST boto3-1.35.71.gh.tar.gz 903019 BLAKE2B 48bf56c54a8eaa52c1850078a92cef7e5acb06f2d9d551414d640c6f5c5f381f2edc4ae6f582d9c1578f68d78a272142033bd41caba95577af917a492e995edb SHA512 56df8d30c0d3efc71caa6d629354e1311d944c71b5568b4154fc93c315558d600e4411ccc80abca98cb4a3adf3a3ab4f4dbce22ca06184e11d720f36f33b58d2
DIST boto3-1.35.76.gh.tar.gz 910113 BLAKE2B 3e7429976b348e29ba4184bffe03c643b85dd978cc520b924263e8430b5e5935b95152cced2f6c0807c65de4e6e1405c55bb24565ac5bc425292e9adac178c03 SHA512 132f37e77b7b36d525e9cf678fe2f624eed77a9eb9fa8e7d7f079a362e5d7a5f3edcd17c7d8bc1e27570171927d26e74a94d267a1b0cbddda3890ac6a0f21cdc
-DIST boto3-1.35.77.gh.tar.gz 910574 BLAKE2B a843c871e53069a7a3c818e326ea5c32d506873e2381057d269e4a04f5e3be9d37aeb6e38bff4051c4d4ce3ae30e41253008785ac9bca329a17bea0f914bdc0c SHA512 e0de5951492860d48d68888ad734e33c6e8c3747f54c7164b0fca5ee9cbf2ec84e2a1a04f2b5566874bb086dcbdd096f588def36d11038663a2762bccbaf7c8e
-DIST boto3-1.35.78.gh.tar.gz 911245 BLAKE2B 2afcee97ef800b934c7f5cc2046831cb48b277951f77dc9aa844dfae4e7f9fc33b36b9d1e58a727485720ffd66ce3440c7f6d103e771b43ac355634110b14d88 SHA512 d73db44fdcdeb7d82e755c1b66084d7e47884c880e615b537f9388a9dda97d8e825613567f7ce94eb5972880b790fe841ca3765c8689c1387ec69dc0cba667e7
-DIST boto3-1.35.79.gh.tar.gz 911885 BLAKE2B 5b90aad921a6bd46a9bd2c1d08f12d68869ac1b8b0a7b8888b7f15ce58d25d42a9f7814b70e6453a1e84d578db1ef4f3b08940c555d11288a6b0e20128881035 SHA512 ebdb3627cd78e844635a5c0a043793aef4e2f06a3f1f220dfbb1796db9391eb84ec1248ec701075ae2660a18eb5895b26d0f0ec5fb8c4ad18f29d0feae6fd756
-DIST boto3-1.35.80.gh.tar.gz 912739 BLAKE2B 636a41f4e7cf4db59e9b121c49366e7936ae1e1465f4984dffcc3b3c7a6c7b36d08c816d71c4952baeba1d0ad7ffde2f5275fd34e11ecb24856eb3645e77a729 SHA512 f6d76c76c13e0ab8f02d9056192b2bc01b18e244dd33260b38b42c56fe8ec7e7a35fe80397ec7ea7baec348cd3ce60a0182a3e0b2d202049fa1336e6d0f56a48
+DIST boto3-1.35.81.gh.tar.gz 913534 BLAKE2B aab88ae95d4c93c8f54042ef2b3ec9defdafa4d9dd4dfb57ff1da896254bbc0d1ac8c4583b8870cc8cc814366f9ef79d67d69d45b0f373878d1c22dba465e523 SHA512 fcbc31295a94983620405dbaa0f32eee2149619cf113658c2955fe84ca541cb93e8d6d637d8d7b322e6b7252bfc390b4aff77b99af3978267c64cfa5effef1f3
diff --git a/dev-python/boto3/boto3-1.35.68.ebuild b/dev-python/boto3/boto3-1.35.68.ebuild
deleted file mode 100644
index 3a10a36056b1..000000000000
--- a/dev-python/boto3/boto3-1.35.68.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.35.71.ebuild b/dev-python/boto3/boto3-1.35.71.ebuild
index d91ce27598cf..3a10a36056b1 100644
--- a/dev-python/boto3/boto3-1.35.71.ebuild
+++ b/dev-python/boto3/boto3-1.35.71.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.35.78.ebuild b/dev-python/boto3/boto3-1.35.78.ebuild
deleted file mode 100644
index d91ce27598cf..000000000000
--- a/dev-python/boto3/boto3-1.35.78.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.35.79.ebuild b/dev-python/boto3/boto3-1.35.79.ebuild
deleted file mode 100644
index d91ce27598cf..000000000000
--- a/dev-python/boto3/boto3-1.35.79.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.35.80.ebuild b/dev-python/boto3/boto3-1.35.80.ebuild
deleted file mode 100644
index d91ce27598cf..000000000000
--- a/dev-python/boto3/boto3-1.35.80.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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/boto3/boto3-1.35.77.ebuild b/dev-python/boto3/boto3-1.35.81.ebuild
index d91ce27598cf..d91ce27598cf 100644
--- a/dev-python/boto3/boto3-1.35.77.ebuild
+++ b/dev-python/boto3/boto3-1.35.81.ebuild
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 81eb18b66224..50d405aa98b3 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,7 +1,3 @@
-DIST botocore-1.35.68.gh.tar.gz 13887015 BLAKE2B f49ea77be07628c9c0a471a76b87bc2b2e0371afdfdaf6da2ad39fdc828376dff14681167a2989b440f37fc5754dae12c7160cb14fb82187acbcf07e34647fc3 SHA512 e31ff9022f29e4cacd9c6085e9c8741d799986746e34965c37e12d8ecfc3a5f4fed8e14045e9ce4f2f552f31d07641ffe8a0209d9d220b942e1b54c2e0d0f848
DIST botocore-1.35.71.gh.tar.gz 13908196 BLAKE2B beba990a19a2a6de3a10d9acd9f97c79872548a5c2bdb2e0944d69292efefd171a0f2e2c989da1551f07902f35b9530984cfe037ff6a9ac9168f9fc5dc5105d5 SHA512 e962cd711e8a9ee6df4e58b3bab22b5e9ded2d75d89fcabd50476789270af50513dcdd4eaeba9f7f778cb9055b4b0cadde0e436cdb1ef333b4322c9f128e910e
DIST botocore-1.35.76.gh.tar.gz 14117270 BLAKE2B b072b926daae520e54871676d5afc4832ddbc8c91a2ee15f103a9d48df2e17d8cef304fab28c4050bfe6d70629979c48d8bc00d5caf42a0129a19ff5a3a2baa3 SHA512 e7433d60519a0da5118b3283c192a7199e8bfdd605fc6bb98d05cc90485a1e4aec537a035ffc08bcb6c35e9d31394422596e113a98cc00c23bd3dd350577ac1d
-DIST botocore-1.35.77.gh.tar.gz 14120607 BLAKE2B bc5f22133796be3b2749f848d62c9eeff6f58a515393beda2f41df9c734eb7167a97987d06e025ebc2693eea6214dd0f7788f9f4cf1e5ac71a91b05b6e886d7e SHA512 fa699fbffc2e7f1e9062fe1393f1cef4677cb30b5090df55bb84b4719e880a6731731ab2799450ab06f70f9a057e749529c283ebe6400b7b35e7b89a2c22eb2a
-DIST botocore-1.35.78.gh.tar.gz 14124766 BLAKE2B 53bb6a8cf63bb69c5e827e269f6efc35b56919c878eadf10f7a7017848703f8de682a7d1912965f40bbb0c0c2903a6d22a4479c8f66ec03c57410f6e3b27dc70 SHA512 74816012870b25a7344096e714c2c9319cd9ac676a3d5e194d68dcc6eaa048233630c30d33ba6ac02f2c953148f704ca068f4aead562504eba893b468408aac0
-DIST botocore-1.35.79.gh.tar.gz 14134346 BLAKE2B e3fdc5510c0ed8a693e9f34568c6918a6907c74d95e4b309725b3ba825c83a7c9f924cac0a8e7ab0cfae5ed038b9f999a1e9b9a3ade3637f630e6ac63b68ae43 SHA512 00d6c614fa65ac86cce5ece0a939a5656922e09f30a9bd19e503c5c9442c299d1b2f2d37ef4b062193e22b123636ee4568f8b903994514c53b7c35ad6f2a7047
-DIST botocore-1.35.80.gh.tar.gz 14140449 BLAKE2B e007303a833e2e430791b6ec52d63686be4680fb83f03add317bb5952cf1c64d5949c42ee558579569f0c802e9386cc71aab1ab447870268d9dcf700ecf0e9f9 SHA512 0b03cfaa2e688c8df8ec5310606dbce4a08593675f7723a55c2ba85b6b45a37dda46ebd861a849301fc66d3d826dd2ffe162571869c461e34160c3ce7f42eed1
+DIST botocore-1.35.81.gh.tar.gz 14142565 BLAKE2B f0c5c284f5f0964841ab0f84f278fa574b696df614d5602856065c83971bf366449b7ccb12fbf15c3bb734d894e6eb49be89e5dae3000bd8fd8913d2f465c5e6 SHA512 7b67d6f1dc31369afc3a4ebf109682b9365b59fe46635ef92b0e8adcaa16fbcaf7e1350a13537149dd0a55b60a57534a18d9f4e8bbb28663e8b2e427ece20819
diff --git a/dev-python/botocore/botocore-1.35.68.ebuild b/dev-python/botocore/botocore-1.35.68.ebuild
deleted file mode 100644
index c81d932a2d78..000000000000
--- a/dev-python/botocore/botocore-1.35.68.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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/botocore/botocore-1.35.71.ebuild b/dev-python/botocore/botocore-1.35.71.ebuild
index 7816e9efeb52..c81d932a2d78 100644
--- a/dev-python/botocore/botocore-1.35.71.ebuild
+++ b/dev-python/botocore/botocore-1.35.71.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
<dev-python/jmespath-2[${PYTHON_USEDEP}]
diff --git a/dev-python/botocore/botocore-1.35.78.ebuild b/dev-python/botocore/botocore-1.35.78.ebuild
deleted file mode 100644
index 7816e9efeb52..000000000000
--- a/dev-python/botocore/botocore-1.35.78.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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/botocore/botocore-1.35.79.ebuild b/dev-python/botocore/botocore-1.35.79.ebuild
deleted file mode 100644
index 7816e9efeb52..000000000000
--- a/dev-python/botocore/botocore-1.35.79.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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/botocore/botocore-1.35.80.ebuild b/dev-python/botocore/botocore-1.35.80.ebuild
deleted file mode 100644
index 7816e9efeb52..000000000000
--- a/dev-python/botocore/botocore-1.35.80.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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/botocore/botocore-1.35.77.ebuild b/dev-python/botocore/botocore-1.35.81.ebuild
index 7816e9efeb52..7816e9efeb52 100644
--- a/dev-python/botocore/botocore-1.35.77.ebuild
+++ b/dev-python/botocore/botocore-1.35.81.ebuild
diff --git a/dev-python/cppy/cppy-1.3.0.ebuild b/dev-python/cppy/cppy-1.3.0.ebuild
index 2c69a79f3d08..a4fd0963aaa1 100644
--- a/dev-python/cppy/cppy-1.3.0.ebuild
+++ b/dev-python/cppy/cppy-1.3.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ppc ~ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/setuptools-61.2[${PYTHON_USEDEP}]
diff --git a/dev-python/daiquiri/Manifest b/dev-python/daiquiri/Manifest
index bc3a90ff62ce..be5816ce996b 100644
--- a/dev-python/daiquiri/Manifest
+++ b/dev-python/daiquiri/Manifest
@@ -1 +1,2 @@
DIST daiquiri-3.2.3.tar.gz 19582 BLAKE2B 105ba4b80a405bcf0d64fcde585ab0cad4ab939d7d7048dba87f8f022d5bcf8e1708554459dba550765e2110e8987a4e26992d5c53db46b320a942b467d9b44e SHA512 a801e04f67340ed047322bdc65be97a463d268f26dd44615d7a4f17ca3de7c36bb244f6bd54e33c1c2055667f0b4086d98bcbf6778bc4eb99c08a657d6abd7b6
+DIST daiquiri-3.3.0.tar.gz 19473 BLAKE2B ff4b08ab4e920d1df9d3e1d59be0f85ab3f249a9916b74638ad63694080ba63dbd2fc611a8eb99f8ddc9da44b753d3f4325e2ba9c7e706bdbad18d3909e9f4bf SHA512 44abcbeeba72bea8b18541ed695eb0f62bcfdbe03456e34f38df536c9842988de52631fe72d5310daa03eb73b3cbb6efc428b972d4662559ab9650db1662b853
diff --git a/dev-python/daiquiri/daiquiri-3.3.0.ebuild b/dev-python/daiquiri/daiquiri-3.3.0.ebuild
new file mode 100644
index 000000000000..2d3d82002993
--- /dev/null
+++ b/dev-python/daiquiri/daiquiri-3.3.0.ebuild
@@ -0,0 +1,29 @@
+# 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} pypy3 )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Library to configure Python logging easily"
+HOMEPAGE="
+ https://pypi.org/project/daiquiri/
+ https://github.com/Mergifyio/daiquiri
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND=">=dev-python/python-json-logger-3[${PYTHON_USEDEP}]"
+BDEPEND="dev-python/setuptools-scm[${PYTHON_USEDEP}]"
+
+distutils_enable_tests pytest
+
+distutils_enable_sphinx doc/source
+
+pkg_postinst() {
+ optfeature "journald support" dev-python/python-systemd
+}
diff --git a/dev-python/dep-logic/Manifest b/dev-python/dep-logic/Manifest
index 25f97e521dfe..34f3dd56ca7e 100644
--- a/dev-python/dep-logic/Manifest
+++ b/dev-python/dep-logic/Manifest
@@ -1,2 +1,2 @@
-DIST dep_logic-0.4.6.tar.gz 35010 BLAKE2B 180d977bcd3ffb6b0c47c4260318f5cc7457644d97352e0c7b6906a249e80ad3a1f3a5c9558cba4d10e6352babfdd1b0b3ee2ae2d3cd25cd2796ab3bc130ad8d SHA512 668b00661af185d558929f1cb0d2c281c9af112ead23866359683fe505f25a512c4acb5f6aaa0d7a855f1c5b3c6c16b8d969de043cfceeab196304b0a8452e18
+DIST dep_logic-0.4.10.tar.gz 35432 BLAKE2B 6b18af609747995e4417d3040b853ef28f747225fefa0a482446188d75ae3b0021919c19dae1a4fa134158b8d663edb5153d1f5c8ce1d1aca4442997351617e8 SHA512 e53832385a22a4700067871eaaea8124f2245ab36b4e5daa775598b5e699a89de9dcb17f1c4c6e19c0915baeb835fcffdc13da17b82af792ab6706b481f7ac6f
DIST dep_logic-0.4.9.tar.gz 35463 BLAKE2B 696ef391d9b793172bbfe18a692989565bb9cbf067ccfdff27e2d46331ff86a67ce8cb858e4bf64bb6ec6d37e77249991070b6386530a6fbe25cc4837b63c54a SHA512 29d5d415b65cabfbec69da900f6f23e9ba899624eabbe32712a5fd4c347233708b3d108a1df7fc26eb12c2b79b814da699dd9574abbf58e7a41ab248ee9913d4
diff --git a/dev-python/dep-logic/dep-logic-0.4.6.ebuild b/dev-python/dep-logic/dep-logic-0.4.10.ebuild
index 6aa17ffd1f2a..6aa17ffd1f2a 100644
--- a/dev-python/dep-logic/dep-logic-0.4.6.ebuild
+++ b/dev-python/dep-logic/dep-logic-0.4.10.ebuild
diff --git a/dev-python/dns-lexicon/Manifest b/dev-python/dns-lexicon/Manifest
index 6f26fbdc4490..cab7f7577ae3 100644
--- a/dev-python/dns-lexicon/Manifest
+++ b/dev-python/dns-lexicon/Manifest
@@ -1 +1,2 @@
DIST dns-lexicon-3.19.0.gh.tar.gz 6273456 BLAKE2B e0c47e8657b6c2724b50423359200cadac52434a31cbfd9c628ee5dd5cc3cd8779f4b51bb7522a308df90489f30aeec0a0ee44dcc850e5766d0f6b7d25b617f6 SHA512 4efc8864f073ca895a78eeedaf091f8b19df497caa9d8f759d051ac6e91c34e0798b0f7440cad601da62e4115a9abb596660255a8b02096959bd50411d5768be
+DIST dns-lexicon-3.20.0.gh.tar.gz 6274333 BLAKE2B 98b9161b5eac26fcf41b7c3930a488f76a5be4a18303ab4fb13d66038b860d1ed7dc6d5e651630384aefa168bfe03ddba1be5da04e3d453be269b131d283d9b1 SHA512 80e1944687bed648ac70825ceb13098441d8937b362008f16a7eaebcc3c4a84ea15584ae5c6c31b88a08c503cfb5ed0e9f873192e6c0ba126dffd9b95576b681
diff --git a/dev-python/dns-lexicon/dns-lexicon-3.20.0.ebuild b/dev-python/dns-lexicon/dns-lexicon-3.20.0.ebuild
new file mode 100644
index 000000000000..dcfc5da3bdc8
--- /dev/null
+++ b/dev-python/dns-lexicon/dns-lexicon-3.20.0.ebuild
@@ -0,0 +1,72 @@
+# 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 optfeature
+
+DESCRIPTION="Manipulate DNS records on various DNS providers in a standardized/agnostic way"
+HOMEPAGE="
+ https://github.com/dns-lexicon/dns-lexicon/
+ https://pypi.org/project/dns-lexicon/
+"
+SRC_URI="
+ https://github.com/dns-lexicon/dns-lexicon/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/beautifulsoup4-4[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-2[${PYTHON_USEDEP}]
+ >=dev-python/dnspython-2[${PYTHON_USEDEP}]
+ >=dev-python/pyotp-2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2[${PYTHON_USEDEP}]
+ >=dev-python/tldextract-2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/boto3-1.28[${PYTHON_USEDEP}]
+ >=dev-python/zeep-3[${PYTHON_USEDEP}]
+ dev-python/vcrpy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # TODO
+ tests/test_client.py::test_client_init_when_missing_action_should_fail
+ tests/providers/test_godaddy.py::GoDaddyProviderTests
+)
+
+EPYTEST_IGNORE=(
+ # Requires the "localzone" module
+ tests/providers/test_localzone.py
+ # Requires the "softlayer" module
+ tests/providers/test_softlayer.py
+ # Requires the "transip" module
+ tests/providers/test_transip.py
+ # Requires the "oci" module
+ tests/providers/test_oci.py
+ # Uses tldextract which needs Internet access to download its database
+ tests/providers/test_auto.py
+)
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ optfeature_header \
+ "Install the following packages to enable support for additional DNS providers:"
+ optfeature Gransy dev-python/zeep
+ optfeature Route53 dev-python/boto3
+ optfeature DDNS dev-python/dnspython
+ fi
+}
diff --git a/dev-python/faker/Manifest b/dev-python/faker/Manifest
index e0b9c21fe585..93e6c4fa098a 100644
--- a/dev-python/faker/Manifest
+++ b/dev-python/faker/Manifest
@@ -1,2 +1 @@
-DIST faker-33.0.0.tar.gz 1850076 BLAKE2B 3a1dc9fff3a45af023cc14c7cc89b8db93faba2de9e4f03a6d04b0bdc37d8271d1e0a7aa4347c5327c80ca95dc490f6fd86e1ab4c0ebee6644505e980d2c7f63 SHA512 8c74093f91121cf8beb63a6b59a99c783be21c58f2788fe83dfb670b16a334f358ca13e65aa734c0ea2c0e6fac863e37116c1ff456eb2b96fe079d4f53059150
DIST faker-33.1.0.tar.gz 1850515 BLAKE2B 71ff6e379f195f220af96562daa1876cd0476f321bb881091929b82ce576b30aa6aa11444411eb5cad30d1922fcfc940012f8b3cd36d074defd3336eac5f8a4a SHA512 0a24af11d64588de2a6c22844efcac11eeacc74faf439e4c0e4bca2cd8d3723177d8fdf5e3b0c6286776e659e38397cea80024ffaaae09c17067ae9b13ea983d
diff --git a/dev-python/faker/faker-33.0.0.ebuild b/dev-python/faker/faker-33.0.0.ebuild
deleted file mode 100644
index ebbbc03e6941..000000000000
--- a/dev-python/faker/faker-33.0.0.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_PN=${PN^}
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A Python package that generates fake data for you"
-HOMEPAGE="
- https://github.com/joke2k/faker/
- https://pypi.org/project/Faker/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-
-RDEPEND="
- >=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- !dev-ruby/faker
-"
-BDEPEND="
- test? (
- dev-python/freezegun[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP},tiff]
- dev-python/validators[${PYTHON_USEDEP}]
- )
-"
-
-# note: tests are flaky with xdist
-distutils_enable_tests pytest
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
- epytest
- epytest --exclusive-faker-session tests/pytest/session_overrides
-}
diff --git a/dev-python/faker/faker-33.1.0.ebuild b/dev-python/faker/faker-33.1.0.ebuild
index da73871f7d48..ebbbc03e6941 100644
--- a/dev-python/faker/faker-33.1.0.ebuild
+++ b/dev-python/faker/faker-33.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
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"
RDEPEND="
>=dev-python/python-dateutil-2.4.2[${PYTHON_USEDEP}]
diff --git a/dev-python/httptools/httptools-0.6.4.ebuild b/dev-python/httptools/httptools-0.6.4.ebuild
index 62ffbbedac85..f05b9ed594a7 100644
--- a/dev-python/httptools/httptools-0.6.4.ebuild
+++ b/dev-python/httptools/httptools-0.6.4.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 sparc x86"
# don't ask me why they use both
DEPEND="
diff --git a/dev-python/identify/Manifest b/dev-python/identify/Manifest
index f34658716e2f..e8ba22c7942c 100644
--- a/dev-python/identify/Manifest
+++ b/dev-python/identify/Manifest
@@ -1,2 +1 @@
-DIST identify-2.6.2.gh.tar.gz 101758 BLAKE2B a017c0915f62ca681f886b75a25df453f4e3f723ef29d7fe2865ae50e59b64506a4eaa1d7b853f27ca0a0faef68f2cfb138b080d45d2138668859423d4847bff SHA512 b822be048ff5e629ca4c7a06f6dc04f30d7b105f651bdca57e559d24ac46a33356e5f59aa110681bd184794d5dc595d932d6c9a4b709cf86c0367160d1bead66
DIST identify-2.6.3.gh.tar.gz 101836 BLAKE2B e4a66cc0df9ce3f172bdba78322ea22ba2d89cc54a82c03388a0cd00bfe8e6645e1e42c80a94d0c407319c2719509ce12ce3e9fb2e3714ce2a46bffeec75eb9e SHA512 462b0b54643b7de91cf96ca07a38e4f8a0a424edf205d37e28eee9720cdd0f0804d9a7c8094f099656c2ae5cbb09a966b2b87732647f92ddb71ce5143def0d87
diff --git a/dev-python/identify/identify-2.6.2.ebuild b/dev-python/identify/identify-2.6.2.ebuild
deleted file mode 100644
index 289815a86e90..000000000000
--- a/dev-python/identify/identify-2.6.2.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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="File identification library for Python"
-HOMEPAGE="
- https://github.com/pre-commit/identify/
- https://pypi.org/project/identify/
-"
-SRC_URI="
- https://github.com/pre-commit/${PN}/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
-
-RDEPEND="
- dev-python/ukkonen[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/identify/identify-2.6.3.ebuild b/dev-python/identify/identify-2.6.3.ebuild
index f6bbe575b185..289815a86e90 100644
--- a/dev-python/identify/identify-2.6.3.ebuild
+++ b/dev-python/identify/identify-2.6.3.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
RDEPEND="
dev-python/ukkonen[${PYTHON_USEDEP}]
diff --git a/dev-python/ipython/Manifest b/dev-python/ipython/Manifest
index d0ef789c9b39..6b1b87b34b29 100644
--- a/dev-python/ipython/Manifest
+++ b/dev-python/ipython/Manifest
@@ -1,2 +1 @@
-DIST ipython-8.29.0.tar.gz 5497513 BLAKE2B 49e68bfae3a1f29e9def5f1140fa0abcad163e75ebb597dd2aff4fb97bcc1c692a82b194378e071fa4f8d31d5960bc6a68cdc973ab8974752f5820c997b9fd12 SHA512 684c6f541c407ace48f6f889ad2fe776e3e32092c2af1d5863a07708c84469695165ae2765c98341d5098a362d47ee7f62e9ebd014494321b1928e44e64064f3
DIST ipython-8.30.0.tar.gz 5592205 BLAKE2B e935305ce08ba287bb811a3efe7ae88821485f726c4c45815f4c39c1a51bb59ab439d256fbb91ddd71d12512fb58c913e4120663d6035b4644da67b3eee9b91c SHA512 36432ed736ce06f47b3ccb6172e6c03a15bfa51a2e38b80d5b579687abad0c03181684b218750f320b185fe3f96baf159eb9c9184c40ddfca78fdd9683233a9b
diff --git a/dev-python/ipython/ipython-8.29.0.ebuild b/dev-python/ipython/ipython-8.29.0.ebuild
deleted file mode 100644
index 265742e39f2a..000000000000
--- a/dev-python/ipython/ipython-8.29.0.ebuild
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='readline(+),sqlite,threads(+)'
-
-inherit distutils-r1 optfeature pypi virtualx
-
-DESCRIPTION="Advanced interactive shell for Python"
-HOMEPAGE="
- https://ipython.org/
- https://github.com/ipython/ipython/
- https://pypi.org/project/ipython/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
-IUSE="examples notebook nbconvert qt5 +smp test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/decorator[${PYTHON_USEDEP}]
- >=dev-python/jedi-0.16[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
- >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}]
- <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
- dev-python/stack-data[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/exceptiongroup[${PYTHON_USEDEP}]
- ' 3.10)
- $(python_gen_cond_dep '
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- ' 3.10 3.11)
-"
-
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- app-text/dvipng[truetype]
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}]
- dev-python/nbformat[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
- dev-python/matplotlib-inline[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/pickleshare[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-RDEPEND+="
- nbconvert? (
- dev-python/nbconvert[${PYTHON_USEDEP}]
- )
-"
-PDEPEND="
- $(python_gen_cond_dep '
- qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
- ' 'python*')
- $(python_gen_cond_dep '
- notebook? (
- dev-python/notebook[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/widgetsnbextension[${PYTHON_USEDEP}]
- )
- ' 3.{10..12})
- smp? (
- >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
- )
-"
-
-python_prepare_all() {
- # Rename the test directory to reduce sys.path pollution
- # https://github.com/ipython/ipython/issues/12892
- mv IPython/extensions/{,ipython_}tests || die
-
- distutils-r1_python_prepare_all
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
- local EPYTEST_DESELECT=(
- # TODO: looks to be a regression due to a newer dep
- IPython/core/tests/test_oinspect.py::test_class_signature
- IPython/core/tests/test_oinspect.py::test_render_signature_long
- IPython/terminal/tests/test_shortcuts.py::test_modify_shortcut_with_filters
- )
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # https://github.com/ipython/ipython/issues/14244
- IPython/lib/tests/test_display.py::TestAudioDataWithoutNumpy
- )
- ;;
- python3.13)
- EPYTEST_DESELECT+=(
- # docstring mismatch?
- IPython/core/tests/test_debugger.py::IPython.core.tests.test_debugger.test_ipdb_magics
- )
- ;;
- esac
-
- # nonfatal implied by virtx
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest -p asyncio --asyncio-mode=auto ||
- die "Tests failed on ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # Create ipythonX.Y symlinks.
- # TODO:
- # 1. do we want them for pypy? No. pypy has no numpy
- # 2. handle it in the eclass instead (use _python_ln_rel).
- # With pypy not an option the dosym becomes unconditional
- dosym ../lib/python-exec/${EPYTHON}/ipython \
- /usr/bin/ipython${EPYTHON#python}
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-}
-
-pkg_postinst() {
- optfeature "code formatting" dev-python/black
- optfeature "sympyprinting" dev-python/sympy
- optfeature "cythonmagic" dev-python/cython
- optfeature "%lprun magic command" dev-python/line-profiler
- optfeature "%matplotlib magic command" dev-python/matplotlib-inline
-
- if use nbconvert; then
- if ! has_version virtual/pandoc ; then
- einfo "Node.js will be used to convert notebooks to other formats"
- einfo "like HTML. Support for that is still experimental. If you"
- einfo "encounter any problems, please use app-text/pandoc instead."
- fi
- fi
-}
diff --git a/dev-python/ipython/ipython-8.30.0.ebuild b/dev-python/ipython/ipython-8.30.0.ebuild
index 3141060317f2..265742e39f2a 100644
--- a/dev-python/ipython/ipython-8.30.0.ebuild
+++ b/dev-python/ipython/ipython-8.30.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/json5/Manifest b/dev-python/json5/Manifest
index 51e3dc6a9f39..9230044c3c68 100644
--- a/dev-python/json5/Manifest
+++ b/dev-python/json5/Manifest
@@ -1,2 +1 @@
DIST json5-0.10.0.tar.gz 48202 BLAKE2B 78794c785c5e5636aede6db48e230a5480ac10b8bbab4041cb827deabb1f251b3f2eddc252d5d0f91f358c093feba422575fdd51448c0984195937094227e48b SHA512 1c56def363c268aa256066c8e98b3a9bfba66a3756071bf6ff41929cdd98ccf5435f08103fbbc3b505abe81f39a14fa1ec50d4a984eebc52410cbb31f999b1b9
-DIST json5-0.9.28.tar.gz 41853 BLAKE2B 8cc1acb34edfc50d9d95ec812870740bc7cf24ca029f52130759c822bc0c882fab1b620809d780a3fff954be2fd74190d3ad52e6fcab1e3c4279095764253317 SHA512 f9dd8bc14f33c92ebb8cae86f60915cb04880a037c03e8b3bc68d8bbec85e39d1add835bad3e417c1bd5215dd438f63fdb764e858438fdc86aed32cd64fba026
diff --git a/dev-python/json5/json5-0.10.0.ebuild b/dev-python/json5/json5-0.10.0.ebuild
index c9c6ea925b29..5348d02f32b9 100644
--- a/dev-python/json5/json5-0.10.0.ebuild
+++ b/dev-python/json5/json5-0.10.0.ebuild
@@ -16,6 +16,6 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
distutils_enable_tests pytest
diff --git a/dev-python/json5/json5-0.9.28.ebuild b/dev-python/json5/json5-0.9.28.ebuild
deleted file mode 100644
index 5348d02f32b9..000000000000
--- a/dev-python/json5/json5-0.9.28.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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 Python implementation of the JSON5 data format"
-HOMEPAGE="
- https://github.com/dpranke/pyjson5/
- https://pypi.org/project/json5/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
-
-distutils_enable_tests pytest
diff --git a/dev-python/keystoneauth1/Manifest b/dev-python/keystoneauth1/Manifest
index e3ce9dac4a81..e1310fb32888 100644
--- a/dev-python/keystoneauth1/Manifest
+++ b/dev-python/keystoneauth1/Manifest
@@ -1,3 +1 @@
-DIST keystoneauth1-5.8.0.tar.gz 278617 BLAKE2B 93437140316d1f353c42f3e8face97d9510c4a795f5c5c7c29b7dbd7c66887a819d71a66f35ebbda3851174cc9c738f53d8edc35a940e4c06a0b4cec19db36d8 SHA512 a427c9a6339cce57e53b78ee3e33276a87753e4cee44fe5dfbc85c7d54bc95bbc1e4536a26c8d1be1ef5a392e9095d529fd64df0ce61f1a4a4c0ba8078b2cddd
-DIST keystoneauth1-5.9.0.tar.gz 285336 BLAKE2B bfabd55f6048b78e03d4e65449357b3389842c292192e85a8c290070e0c349bf3e2d43168c2ac35bdd01222f65cd65676b7c3cb71a3b058e606778159e341d33 SHA512 bd16923a8819f9a097f414f3d0128aeb45733c7c3555dc21514c086322b30bb2d3e59ae9762888b78dce24480e6183e389f03041c7b3903d9456020d777fe866
DIST keystoneauth1-5.9.1.tar.gz 285624 BLAKE2B 95dad02ebe01dea51fa3857ec8db1e7184506a4a390ca1ce4d74f14d117843edce17eb5f9b1258ffce16a60b90a6811a1d8c400cb4168015426246bdb89bcdd8 SHA512 5ff7593df08fdb1ffd5952fe4e4cebf3869776ba30a850246418d5ad366f7547f0bcaec63aaf6c609a362996cfebd60d4030212949b2afb39b617b8180f84284
diff --git a/dev-python/keystoneauth1/keystoneauth1-5.8.0.ebuild b/dev-python/keystoneauth1/keystoneauth1-5.8.0.ebuild
deleted file mode 100644
index 0265e54fa244..000000000000
--- a/dev-python/keystoneauth1/keystoneauth1-5.8.0.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# 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="This package contains tools for authenticating to an OpenStack-based cloud"
-HOMEPAGE="
- https://opendev.org/openstack/keystoneauth/
- https://github.com/openstack/keystoneauth/
- https://pypi.org/project/keystoneauth1/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
- >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
- >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
- >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
- >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
- >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
- test? (
- >=dev-python/betamax-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/lxml-4.2.0[${PYTHON_USEDEP}]
- >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]
- >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
- >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
- >=dev-python/requests-kerberos-0.8.0[${PYTHON_USEDEP}]
- >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # fragile to test runner name
- keystoneauth1/tests/unit/test_session.py::SessionTests::test_user_agent
- # broken betamax
- keystoneauth1/tests/unit/test_betamax_fixture.py::TestBetamaxFixture::test_keystoneauth_betamax_fixture
-)
-
-EPYTEST_IGNORE=(
- # require hacking
- keystoneauth1/tests/unit/test_hacking_checks.py
-)
diff --git a/dev-python/keystoneauth1/keystoneauth1-5.9.0.ebuild b/dev-python/keystoneauth1/keystoneauth1-5.9.0.ebuild
deleted file mode 100644
index 8ceea74bcaec..000000000000
--- a/dev-python/keystoneauth1/keystoneauth1-5.9.0.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# 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="This package contains tools for authenticating to an OpenStack-based cloud"
-HOMEPAGE="
- https://opendev.org/openstack/keystoneauth/
- https://github.com/openstack/keystoneauth/
- https://pypi.org/project/keystoneauth1/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
- >=dev-python/iso8601-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
- >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
- >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
- >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
- test? (
- >=dev-python/betamax-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/lxml-4.2.0[${PYTHON_USEDEP}]
- >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]
- >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
- >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
- >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
- >=dev-python/requests-kerberos-0.8.0[${PYTHON_USEDEP}]
- >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # fragile to test runner name
- keystoneauth1/tests/unit/test_session.py::SessionTests::test_user_agent
- # broken betamax
- keystoneauth1/tests/unit/test_betamax_fixture.py::TestBetamaxFixture::test_keystoneauth_betamax_fixture
-)
-
-EPYTEST_IGNORE=(
- # require hacking
- keystoneauth1/tests/unit/test_hacking_checks.py
-)
diff --git a/dev-python/keystoneauth1/keystoneauth1-5.9.1.ebuild b/dev-python/keystoneauth1/keystoneauth1-5.9.1.ebuild
index 8ceea74bcaec..d4b82b174343 100644
--- a/dev-python/keystoneauth1/keystoneauth1-5.9.1.ebuild
+++ b/dev-python/keystoneauth1/keystoneauth1-5.9.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index 37a64204a00a..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 56733bbffc48..eb2586280d80 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index 670abb3c3530..07eeb342843e 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -1,6 +1,7 @@
DIST freetype-2.6.1.tar.gz 2302080 BLAKE2B 6a5fb98e5fa6cf4b7d7533ad44e364227d8c2f7dded4c552d6e22e204c32b7858f20d41d1e809ecdad6e5353d6cec81bea0e0b06a4533363a41ecab83ce3f7ca SHA512 ff2daed64d712737085924c50e75862fafbcbb24eef6d72dac9eaae63bb656d7245397fd828f5d3e47ac847f7ff83d73dedfdd61fde1f7d6e0f0cdeb49bcf83b
-DIST matplotlib-3.10.0rc1.tar.gz 36682106 BLAKE2B c6948deb4749a08fa84e0a72d4c6877cfa561360c5475a9d96c56bad906b94c59f35286587f5af768e0f7e2bb5d5e30101c66da3725ac81f5981ae298089d1a8 SHA512 8ccef930c094e1d0fdb61236b968dcc556b991fd53a8171c84e19fba08e9a5d67dc62f24de832d50e805ddf040dd58828799c6046b355f17dd532fe4d23c4515
+DIST matplotlib-3.10.0.tar.gz 36686418 BLAKE2B b154d4d2512a7989d967e7e257ef148e530b1bb030375fe0443f0feb3adea8b0cdc0287d292587832542f6263ccbbb89860fa0b827301fb9dbed34f6a197a475 SHA512 31a71640ef9cbc8cae928156c70119a0bdc1a8c44c8dc5af5333f5484525dd6a375e6f263d739ad3422b0e35d474f7742e08c71c40df0f1f71b526e21adc17e1
DIST matplotlib-3.9.0.tar.gz 36069890 BLAKE2B 02ddb25901b5a93a8daf6f26c98b92d5e35abe2e98783b039928338abb1d628adbf3fd4786c08cb1610bf405cb558ca31fc12dbde77ec5f2a633143c7ea659a1 SHA512 135ee2f97c26cb60479cc10bf8a833384c393993d8a905ab869f4c73b91a50ffa596f84ce349af7f1a0b08a21e1906394cf6a702bb567a9c3999d40f54974326
DIST matplotlib-3.9.1.tar.gz 36084124 BLAKE2B b7cc9e219664849411cc3133afbdb676f956c943f92d447ba5cca0467da56d1575796fe1046e7503e6d7c4dfdfad6e5181404f331ed7ac1397c8c61f4a30bd23 SHA512 a1d48c42a5f4f04b57e34d25df842917e6380b8d6b6d1018c9b630cbbea4619b1d75729a218a6f52b63d4a61c2204bb26ad8f741566f84e41ca73190e419f672
DIST matplotlib-3.9.2.tar.gz 36088381 BLAKE2B c84d08b7afa1f0460b5b57447481ef90f22380c02d20227c3a45b6f603032a11359b223397f18c8dc9111ad36fbd7510e2d5496502b3202e3074ddf8e8258bb7 SHA512 4b7437eeb085915a90db64600d0e6c59501ea1513d07b8298a159a763461ef6947a0cb332dcde1a5f0996840320ca7dd1d972d7514ff6f87b036fc631e79885f
DIST matplotlib-3.9.3.tar.gz 36113438 BLAKE2B 6d51d11e04a71e2a01eaa9b76c072633cbbcb393b91be069f0db2f8a523711d244c93f7a4a9e0f8bc50b14928567d22865f5091a39000c7d7160fc258e21cab5 SHA512 f42a1bc8febf88369b5164879f32bc7967fe0930e42d12395722ac3d2c10a8c59ac9419b68c4bcb499c7df26dfc429dafb672b61f85aee971dd270b0e29742ed
+DIST matplotlib-3.9.4.tar.gz 36106529 BLAKE2B f95791bce82bf62d922e3db7ebe8e34e5759896c26cf952e2c67e92d5c4e5e190c556ba3ff4d7160d60de3c90ed5e1dc4d7ca2866647ded6b96dd35e16d4e259 SHA512 adfa875cba0b030ee0efaf11ed1be881858dc13391c966a2d9485ae2358fccf0b5356e16966a0c9da9f682e4a9d2f3960551756aca30ddc048632346548b1447
diff --git a/dev-python/matplotlib/matplotlib-3.10.0_rc1.ebuild b/dev-python/matplotlib/matplotlib-3.10.0.ebuild
index 7e3fc0ebb94f..2d344c22ffee 100644
--- a/dev-python/matplotlib/matplotlib-3.10.0_rc1.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.10.0.ebuild
@@ -29,7 +29,7 @@ SRC_URI+="
# Fonts: BitstreamVera, OFL-1.1
LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
SLOT="0"
-KEYWORDS=""
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
DEPEND="
diff --git a/dev-python/matplotlib/matplotlib-3.9.4.ebuild b/dev-python/matplotlib/matplotlib-3.9.4.ebuild
new file mode 100644
index 000000000000..d465b2c54ff5
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-3.9.4.ebuild
@@ -0,0 +1,301 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 pypi virtualx
+
+FT_PV=2.6.1
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="
+ https://matplotlib.org/
+ https://github.com/matplotlib/matplotlib/
+ https://pypi.org/project/matplotlib/
+"
+SRC_URI+="
+ test? (
+ https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
+ )
+"
+
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="cairo excel gtk3 latex qt5 tk webagg wxwidgets"
+
+DEPEND="
+ media-libs/freetype:2
+ >=media-libs/qhull-2013:=
+ >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
+"
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ media-fonts/stix-fonts
+ media-libs/libpng:0
+ virtual/imagemagick-tools[jpeg,tiff]
+ cairo? (
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ excel? (
+ dev-python/xlwt[${PYTHON_USEDEP}]
+ )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ latex? (
+ virtual/latex-base
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/poppler[utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ dev-texlive/texlive-xetex
+ )
+ qt5? (
+ $(python_gen_cond_dep '
+ dev-python/pyqt5[gui,widgets,${PYTHON_USEDEP}]
+ ' 'python3*')
+ )
+ webagg? (
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ )
+ wxwidgets? (
+ $(python_gen_cond_dep '
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ ' python3_{10..12})
+ )
+"
+
+BDEPEND="
+ ${RDEPEND}
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ test? (
+ $(python_gen_impl_dep 'tk')
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ !hppa? ( !s390? (
+ || (
+ media-video/ffmpeg[openh264]
+ media-video/ffmpeg[x264]
+ )
+ ) )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ # do not unpack freetype
+ unpack "${P}.tar.gz"
+}
+
+python_prepare_all() {
+ # Affects installed _version.py, bug #854600
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+ local PATCHES=(
+ "${FILESDIR}"/matplotlib-3.9.3-test.patch
+ )
+
+ # increase lock timeout to 30 s
+ sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_configure() {
+ unset DISPLAY # bug #278524
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ DISTUTILS_ARGS=(
+ -Dsystem-freetype=true
+ -Dsystem-qhull=true
+ -Dmacosx=false
+ )
+}
+
+src_test() {
+ mkdir subprojects/packagecache || die
+ cp "${DISTDIR}/freetype-${FT_PV}.tar.gz" subprojects/packagecache/ || die
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by -Wdefault
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
+ tests/test_testing.py::test_warn_to_fail
+ tests/test_legend.py::test_legend_nolabels_warning
+ # TODO?
+ tests/test_backend_qt.py::test_fig_sigint_override
+ tests/test_backend_qt.py::test_ipython
+ tests/test_backend_nbagg.py::test_ipynb
+ # leak tests are fragile
+ tests/test_backends_interactive.py::test_figure_leak_20490
+ # major "images not close", new texlive perhaps
+ tests/test_contour.py::test_all_algorithms
+ # "no warnings"
+ tests/test_backend_pdf.py::test_invalid_metadata
+ tests/test_figure.py::test_too_many_figures
+ )
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # TODO: warning isn't passed through
+ tests/test_image.py::test_large_image
+ # TODO
+ tests/test_pickle.py::test_complete
+ tests/test_pickle.py::test_no_pyplot
+ tests/test_pickle.py::test_pickle_load_from_subprocess
+ tests/test_pickle.py::test_simple
+ tests/test_texmanager.py::test_openin_any_paranoid
+ tests/test_widgets.py::test_check_buttons
+ tests/test_widgets.py::test_check_buttons_lines
+ tests/test_widgets.py::test_check_radio_buttons_image
+ tests/test_widgets.py::test_radio_buttons
+ )
+ if has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
+ has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
+ then
+ EPYTEST_DESELECT+=(
+ # TypeError is raised when exception is raised in a starred
+ # expression referencing a generator that uses "yield from"
+ # and raises -- non-critical, since some exception is raised
+ # after all
+ # https://foss.heptapod.net/pypy/pypy/-/issues/4032
+ tests/test_axes.py::test_bad_plot_args
+ tests/test_axes.py::test_plot_errors
+ tests/test_axes.py::test_plot_format_errors
+ )
+ fi
+ ;;
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # https://github.com/matplotlib/matplotlib/issues/23384
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ tests/test_constrainedlayout.py::test_compressed1
+ )
+ ;;
+ esac
+
+ case ${ABI} in
+ hppa)
+ EPYTEST_DESELECT+=(
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_quiver.py::test_barbs_pivot[png]'
+ 'tests/test_quiver.py::test_barbs_flip[png]'
+ 'tests/test_text.py::test_parse_math'
+ 'tests/test_text.py::test_parse_math_rcparams'
+ )
+ ;&
+ alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
+ EPYTEST_DESELECT+=(
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ # we need to rebuild mpl against bundled freetype, otherwise
+ # over 1000 tests will fail because of mismatched font rendering
+ local DISTUTILS_ARGS=(
+ "${DISTUTILS_ARGS[@]}"
+ -Dsystem-freetype=false
+ )
+ distutils_pep517_install "${BUILD_DIR}"/test
+ cp -r "${BUILD_DIR}"/{install,test}"${EPREFIX}/usr/bin" || die
+ local -x PATH=${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}
+
+ pushd lib >/dev/null || die
+ local path
+ local sitedir=${BUILD_DIR}/test$(python_get_sitedir)
+ # sigh, upstream doesn't install these
+ while IFS= read -d '' path; do
+ cp -r "${path}" "${sitedir}/${path}" || die
+ done < <(
+ find \( \
+ -name baseline_images -o \
+ -name '*.ipynb' -o \
+ -name '*.pfb' -o \
+ -name '*.ttf' -o \
+ -name tinypages \
+ \) -print0
+ )
+ popd >/dev/null || die
+
+ # speed tests up
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # pretend we're on CI to increase timeouts
+ local -x CI=1
+ nonfatal epytest --pyargs matplotlib -m "not network" \
+ -p rerunfailures --reruns=3 \
+ -o tmp_path_retention_policy=all || die
+}
diff --git a/dev-python/mygpoclient/mygpoclient-1.10.ebuild b/dev-python/mygpoclient/mygpoclient-1.10.ebuild
index d40ec678184d..7356d7df379b 100644
--- a/dev-python/mygpoclient/mygpoclient-1.10.ebuild
+++ b/dev-python/mygpoclient/mygpoclient-1.10.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
BDEPEND="
test? (
diff --git a/dev-python/nbclient/Manifest b/dev-python/nbclient/Manifest
index 54ade433884f..3e4ec03db473 100644
--- a/dev-python/nbclient/Manifest
+++ b/dev-python/nbclient/Manifest
@@ -1,2 +1 @@
-DIST nbclient-0.10.0.tar.gz 62246 BLAKE2B 4fdbbceb6f37c0f96a448c343d910c8ac988ed337590c9f8068eee328fbc7f58c882b15a8b0f7fe03491a8751512ad76497d3a0e8a19783ef24001acd901bd67 SHA512 1635c8af91839b9e651fbada7aca3699ebf92c0f4f7f47d9901f9977f56f2b31113c1229d1512bdb200c6c729e1e965649031729a60229d463e6b39f75ac9dc2
DIST nbclient-0.10.1.tar.gz 62273 BLAKE2B 0a268e4078af3807b6795d5b6dbbc572628d891d42f4ddeed3decd06d471cad59ab903e652be6a7f1e00a07cea3745cd989c62674e937934a6a696dfd24eefa4 SHA512 8c5b52aa367f255669fa7ad248d45292dd0e3589e23e381027a093c9fc57280eb296f453c2bfc3c57969056846a0caba81e57feaad1768e70aff006df4b85324
diff --git a/dev-python/nbclient/nbclient-0.10.0.ebuild b/dev-python/nbclient/nbclient-0.10.0.ebuild
deleted file mode 100644
index 4b454768c712..000000000000
--- a/dev-python/nbclient/nbclient-0.10.0.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2020-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="A client library for executing Jupyter notebooks"
-HOMEPAGE="
- https://nbclient.readthedocs.io/en/latest/
- https://github.com/jupyter/nbclient/
- https://pypi.org/project/nbclient/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-
-RDEPEND="
- >=dev-python/jupyter-client-6.1.12[${PYTHON_USEDEP}]
- >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
- >=dev-python/nbformat-5.0[${PYTHON_USEDEP}]
- >=dev-python/traitlets-5.4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/flaky[${PYTHON_USEDEP}]
- dev-python/ipython[${PYTHON_USEDEP}]
- >=dev-python/ipykernel-6.19.3[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/nbconvert[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/testpath[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-PATCHES=(
- # https://github.com/jupyter/nbclient/pull/317
- "${FILESDIR}/${P}-py313.patch"
-)
-
-python_test() {
- local EPYTEST_DESELECT=(
- # hangs?
- 'tests/test_client.py::test_run_all_notebooks[Interrupt.ipynb-opts6]'
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p asyncio -p rerunfailures --reruns=3
-}
diff --git a/dev-python/nbclient/nbclient-0.10.1.ebuild b/dev-python/nbclient/nbclient-0.10.1.ebuild
index 99e548134cfc..ded94a3a1d89 100644
--- a/dev-python/nbclient/nbclient-0.10.1.ebuild
+++ b/dev-python/nbclient/nbclient-0.10.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
RDEPEND="
>=dev-python/jupyter-client-6.1.12[${PYTHON_USEDEP}]
diff --git a/dev-python/nh3/nh3-0.2.19.ebuild b/dev-python/nh3/nh3-0.2.19.ebuild
index 94a615545e7f..4e67fed2f5df 100644
--- a/dev-python/nh3/nh3-0.2.19.ebuild
+++ b/dev-python/nh3/nh3-0.2.19.ebuild
@@ -124,7 +124,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv ~s390 ~sparc x86"
distutils_enable_tests pytest
diff --git a/dev-python/numexpr/numexpr-2.10.2.ebuild b/dev-python/numexpr/numexpr-2.10.2.ebuild
index 127d7428f812..5f71ef298368 100644
--- a/dev-python/numexpr/numexpr-2.10.2.ebuild
+++ b/dev-python/numexpr/numexpr-2.10.2.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://github.com/pydata/numexpr/archive/v${PV}.tar.gz -> ${P}.gh.tar.
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
DEPEND="
>=dev-python/numpy-2.0.0_rc:=[${PYTHON_USEDEP}]
diff --git a/dev-python/orjson/orjson-3.10.12.ebuild b/dev-python/orjson/orjson-3.10.12.ebuild
index f895b1791eff..48db18e6d73e 100644
--- a/dev-python/orjson/orjson-3.10.12.ebuild
+++ b/dev-python/orjson/orjson-3.10.12.ebuild
@@ -63,7 +63,7 @@ LICENSE+="
Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT Unicode-3.0
"
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="
test? (
diff --git a/dev-python/pdoc3/Manifest b/dev-python/pdoc3/Manifest
index 9ded269171f1..349dc45c66aa 100644
--- a/dev-python/pdoc3/Manifest
+++ b/dev-python/pdoc3/Manifest
@@ -1,3 +1 @@
-DIST pdoc3-0.10.0-fix-deprecation-warnings.patch 1447 BLAKE2B 6a4c554f3e0d3b66927cef22ab87a07c0711e6b01203bc37e54097f29f4c2547bd6daf721fa8745f941b1c74cd122222ccf8896ab6174c6775a47703ac02d17b SHA512 73d91a8f0d5747cefb972e1a6a028216688fde2f92cd8e5c4139dcebacc4a825e86345c419af7ccf5682dc6458ea5b20fd45799896555a8acadebc61da549140
-DIST pdoc3-0.10.0.tar.gz 86133 BLAKE2B 3bada6fb1b048c4eff7556108c29d7f92ee988332d160c4ff765c47bf0cf7a461ed90f93e7be25a7a3251f5d3e70492d23be7230a5ec4abb12612b7e0dd4b5b6 SHA512 646ffb9bceb4456a1ab36c840eb384858aab430443905bc71e62e9c71112a769b69e22cbd18a9d75b7968e2336cbbaa9072103f96dc2d0829ccc7515b057ca85
DIST pdoc3-0.11.3.tar.gz 98948 BLAKE2B fff171dd8ede3298f55c18b55d491d9715f415a85b34bb7bf29112a4ea0a94d6842f322fa35a5eeaf4548c425c6a2f6ae108c2422377c02144e6713b9d380372 SHA512 b516aa73e985cc567c755214956d7aedc7f02c24bdd2c162454d70b07db74bb3f3b44f91adf94893beb970202febcfb6715aaa416ff8ede5f7aa66b28c648237
diff --git a/dev-python/pdoc3/files/pdoc3-0.10.0-update-tests.patch b/dev-python/pdoc3/files/pdoc3-0.10.0-update-tests.patch
deleted file mode 100644
index bd68ea2d8368..000000000000
--- a/dev-python/pdoc3/files/pdoc3-0.10.0-update-tests.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 80af5d40d3ca39e2701c44941c1003ae6a280799 Mon Sep 17 00:00:00 2001
-From: Kernc <kerncece@gmail.com>
-Date: Sat, 29 Oct 2022 18:55:46 +0200
-Subject: [PATCH] CI: Bump min Python 3.7+ and update tests for Python 3.10
-
-Fix https://github.com/pdoc3/pdoc/issues/400
-Thanks @tjni
---- a/pdoc/__init__.py
-+++ b/pdoc/__init__.py
-@@ -1275,7 +1275,7 @@ def _formatannotation(annot):
- `typing.Optional`, `nptyping.NDArray` and other types.
-
- >>> _formatannotation(NewType('MyType', str))
-- 'MyType'
-+ 'pdoc.MyType'
- >>> _formatannotation(Optional[Tuple[Optional[int], None]])
- 'Optional[Tuple[Optional[int], None]]'
- """
---- a/pdoc/documentation.md
-+++ b/pdoc/documentation.md
-@@ -353,7 +353,7 @@ modified templates into the `directories` list of the
-
- Compatibility
- -------------
--`pdoc` requires Python 3.6+.
-+`pdoc` requires Python 3.7+.
- The last version to support Python 2.x is [pdoc3 0.3.x].
-
- [pdoc3 0.3.x]: https://pypi.org/project/pdoc3/0.3.13/
---- a/pdoc/test/__init__.py
-+++ b/pdoc/test/__init__.py
-@@ -126,7 +126,8 @@ class CliTest(unittest.TestCase):
- def setUp(self):
- pdoc.reset()
-
-- @unittest.skipIf(sys.version_info < (3, 7), 'pdoc._formatannotation fails on Py3.6')
-+ @unittest.skipIf(sys.version_info < (3, 10),
-+ 'HACK: _formatannotation() changed return value in Py3.10')
- def test_project_doctests(self):
- doctests = doctest.testmod(pdoc)
- assert not doctests.failed and doctests.attempted, doctests
-@@ -185,8 +186,12 @@ def test_html(self):
- '<object ',
- ' class="ident">_private',
- ' class="ident">_Private',
-- 'non_callable_routine',
- ]
-+ if sys.version_info >= (3, 10):
-+ include_patterns.append('non_callable_routine')
-+ else:
-+ exclude_patterns.append('non_callable_routine')
-+
- package_files = {
- '': self.PUBLIC_FILES,
- '.subpkg2': [f for f in self.PUBLIC_FILES
-@@ -356,8 +361,11 @@ def test_text(self):
- '_Private',
- 'subprocess',
- 'Hidden',
-- 'non_callable_routine',
- ]
-+ if sys.version_info >= (3, 10):
-+ include_patterns.append('non_callable_routine')
-+ else:
-+ exclude_patterns.append('non_callable_routine')
-
- with self.subTest(package=EXAMPLE_MODULE):
- with redirect_streams() as (stdout, _):
-@@ -543,8 +551,9 @@ class C:
- self.assertEqual(doc.doc['vars_dont'].docstring, '')
- self.assertIn('integer', doc.doc['but_clss_have_doc'].docstring)
-
-+ @unittest.skipIf(sys.version_info >= (3, 10), 'No builtin module "parser" in Py3.10')
- def test_builtin_methoddescriptors(self):
-- import parser
-+ import parser # TODO: replace with another public binary builtin
- with self.assertWarns(UserWarning):
- c = pdoc.Class('STType', pdoc.Module(parser), parser.STType)
- self.assertIsInstance(c.doc['compile'], pdoc.Function)
-@@ -906,9 +915,13 @@ def bug130_str_annotation(a: "str"):
- def bug253_newtype_annotation(a: CustomType):
- return
-
-+ expected = CustomType.__name__
-+ if sys.version_info > (3, 10):
-+ expected = f'{__name__}.{CustomType.__name__}'
-+
- self.assertEqual(
- pdoc.Function('bug253', mod, bug253_newtype_annotation).params(annotate=True),
-- ['a:\N{NBSP}CustomType'])
-+ [f'a:\N{NBSP}{expected}'])
-
- # typing.Callable bug
- def f(a: typing.Callable):
---- a/setup.py
-+++ b/setup.py
-@@ -2,8 +2,8 @@
- import sys
- from setuptools import setup, find_packages
-
--if sys.version_info < (3, 6):
-- sys.exit('ERROR: pdoc requires Python 3.6+')
-+if sys.version_info < (3, 7):
-+ sys.exit('ERROR: pdoc requires Python 3.7+')
-
-
- def _discover_tests():
-@@ -58,5 +58,5 @@ def _discover_tests():
- 'write_to': os.path.join('pdoc', '_version.py'),
- },
- test_suite="setup._discover_tests",
-- python_requires='>= 3.6',
-+ python_requires='>= 3.7',
- )
diff --git a/dev-python/pdoc3/files/pdoc3-TST-use-explicit-ClassWithNew-instead-of-typing.Gene.patch b/dev-python/pdoc3/files/pdoc3-TST-use-explicit-ClassWithNew-instead-of-typing.Gene.patch
deleted file mode 100644
index b969bf4727bc..000000000000
--- a/dev-python/pdoc3/files/pdoc3-TST-use-explicit-ClassWithNew-instead-of-typing.Gene.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 4aa70de2221a34a3003a7e5f52a9b91965f0e359 Mon Sep 17 00:00:00 2001
-From: Spencer Baugh <sbaugh@catern.com>
-Date: Thu, 23 Sep 2021 09:00:25 -0400
-Subject: [PATCH] TST: use explicit ClassWithNew instead of typing.Generic
-
-typing.Generic doesn't have a __new__ method in 3.9.
-
-Fixes https://github.com/pdoc3/pdoc/issues/355
----
- pdoc/test/__init__.py | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/pdoc/test/__init__.py b/pdoc/test/__init__.py
-index e8c3d94a805b..8b67ab77d3f7 100644
---- a/pdoc/test/__init__.py
-+++ b/pdoc/test/__init__.py
-@@ -1043,16 +1043,20 @@ class Foo:
-
- self.assertEqual(pdoc.Class('C2', mod, C2).params(), ['a', 'b', 'c=None', '*', 'd=1', 'e'])
-
-- class G(typing.Generic[T]):
-+ class ClassWithNew:
-+ def __new__(self, arg):
-+ pass
-+
-+ class G(ClassWithNew):
- def __init__(self, a, b, c=100):
- pass
-
- self.assertEqual(pdoc.Class('G', mod, G).params(), ['a', 'b', 'c=100'])
-
-- class G2(typing.Generic[T]):
-+ class G2(ClassWithNew):
- pass
-
-- self.assertEqual(pdoc.Class('G2', mod, G2).params(), ['*args', '**kwds'])
-+ self.assertEqual(pdoc.Class('G2', mod, G2).params(), ['arg'])
-
- def test_url(self):
- mod = pdoc.Module(EXAMPLE_MODULE)
---
-2.32.0
-
diff --git a/dev-python/pdoc3/pdoc3-0.10.0-r2.ebuild b/dev-python/pdoc3/pdoc3-0.10.0-r2.ebuild
deleted file mode 100644
index 1a394140c399..000000000000
--- a/dev-python/pdoc3/pdoc3-0.10.0-r2.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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="Auto-generate API documentation for Python projects"
-HOMEPAGE="https://pdoc3.github.io/pdoc/"
-SRC_URI+="
- https://github.com/pdoc3/pdoc/commit/14cd51c1b7431cdec5c3e7510b8a0e3b66c2f7d4.patch
- -> ${PN}-0.10.0-fix-deprecation-warnings.patch
-"
-
-LICENSE="AGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-
-RDEPEND="
- dev-python/mako[${PYTHON_USEDEP}]
- >=dev-python/markdown-3.0[${PYTHON_USEDEP}]
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-TST-use-explicit-ClassWithNew-instead-of-typing.Gene.patch"
- "${FILESDIR}/${PN}-0.10.0-update-tests.patch"
- "${DISTDIR}"/${PN}-0.10.0-fix-deprecation-warnings.patch
-)
-
-python_prepare_all() {
- distutils-r1_python_prepare_all
- sed -i \
- -e "/setuptools_git/d" \
- -e "/setuptools_scm/d" \
- setup.py || die
-}
-
-distutils_enable_tests unittest
diff --git a/dev-python/pdoc3/pdoc3-0.11.3.ebuild b/dev-python/pdoc3/pdoc3-0.11.3.ebuild
index 710ee9f8bae7..d6d5a76bf44e 100644
--- a/dev-python/pdoc3/pdoc3-0.11.3.ebuild
+++ b/dev-python/pdoc3/pdoc3-0.11.3.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://pdoc3.github.io/pdoc/"
LICENSE="AGPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
RDEPEND="
dev-python/mako[${PYTHON_USEDEP}]
diff --git a/dev-python/pebble/Manifest b/dev-python/pebble/Manifest
index 19930cbd82cb..e5ddd0ba24ca 100644
--- a/dev-python/pebble/Manifest
+++ b/dev-python/pebble/Manifest
@@ -1,2 +1 @@
-DIST Pebble-5.0.7.tar.gz 32054 BLAKE2B d9211facf566551702b0305202c5765ef24f341201cc7a1593525a38a1e3b9ae69f33a739ebbc37cb3f60239ea19289741137f23275e3cd8a7bb5e14024295ee SHA512 2602512208808ce15150e35fb9bbd383a6b98850e7641ed26c46e520fe7e62483dfcb67aa77a2412a0c643fc862035487283f8e760feef3852f3ab9236f29176
DIST Pebble-5.1.0.tar.gz 35060 BLAKE2B 0209578de0170ac01a25676debdd6ae7c8045171d97430fb48b23ab4a1ad7fadf03a6bb8ec56d05bf77f3a821bcb1dcfe6bbd1028fbe7a5eeff99637ebe92c17 SHA512 804fe43c82c7f7604c258a5ce1d219fecd5674fcfb6ef6dfdf1fe1cfdea23e79659e7d3633055cb9367433d9e6143323e512e69d8cfbe5a4ebba6fcc1fbb812b
diff --git a/dev-python/pebble/pebble-5.0.7.ebuild b/dev-python/pebble/pebble-5.0.7.ebuild
deleted file mode 100644
index 52e6ec17f58c..000000000000
--- a/dev-python/pebble/pebble-5.0.7.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2020-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYPI_PN=${PN^}
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Threading and multiprocessing eye-candy"
-HOMEPAGE="
- https://pebble.readthedocs.io/
- https://github.com/noxdafox/pebble/
- https://pypi.org/project/Pebble/
-"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-
-distutils_enable_tests pytest
diff --git a/dev-python/pebble/pebble-5.1.0.ebuild b/dev-python/pebble/pebble-5.1.0.ebuild
index f95bd929bd04..52e6ec17f58c 100644
--- a/dev-python/pebble/pebble-5.1.0.ebuild
+++ b/dev-python/pebble/pebble-5.1.0.ebuild
@@ -19,6 +19,6 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="0"
-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"
distutils_enable_tests pytest
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 6d4cc242db2c..27a648c89f1f 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1 +1,2 @@
DIST python-phonenumbers-8.13.51.gh.tar.gz 4916017 BLAKE2B ded6fc61bfc619d79d31c12cf1bb13a13b96182674373aebd66a9ac02e7fda957c59807af6c6aa31e373c6af9cdca6ec8e10a575877121cfcef3cbcbd4419243 SHA512 fab5542107ef69fc94ed5f4a74425ef6be6277b88339ae882782c6cf35254e13f0d351f704dd4b84d16a82a40121b3681abd4599b85341284ef42b3f5af19803
+DIST python-phonenumbers-8.13.52.gh.tar.gz 4916262 BLAKE2B 51267704170ca614f93f8dee5cc1bbe3a8ef833e3aaf7d9ba48e9715eb1f37a7742f942c3bfb543f140d9c08d83006fc698c34fa3264a3b9e9d626bf741b586b SHA512 ac2fa94cffeabc18197a2ca0e2e5ac62f4584e417fb1bee0d52eaeec71d7ce5f1d12722f0f5a48b7d2ff89cfb394f49ec02006a7e8247bb20b2375d0a617132c
diff --git a/dev-python/phonenumbers/phonenumbers-8.13.52.ebuild b/dev-python/phonenumbers/phonenumbers-8.13.52.ebuild
new file mode 100644
index 000000000000..a54d1a1f9af6
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.13.52.ebuild
@@ -0,0 +1,39 @@
+# 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
+
+MY_P=python-${P}
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+SRC_URI="
+ https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/python
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( ../README.md )
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/pyarrow/pyarrow-18.1.0.ebuild b/dev-python/pyarrow/pyarrow-18.1.0.ebuild
index 9ab3fdcc66a4..a18710b9a076 100644
--- a/dev-python/pyarrow/pyarrow-18.1.0.ebuild
+++ b/dev-python/pyarrow/pyarrow-18.1.0.ebuild
@@ -33,7 +33,7 @@ S="${WORKDIR}/apache-arrow-${PV}/python"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+KEYWORDS="~amd64 arm64 ~loong ~riscv ~x86"
IUSE="+parquet +snappy ssl"
RDEPEND="
diff --git a/dev-python/pycares/pycares-4.5.0.ebuild b/dev-python/pycares/pycares-4.5.0.ebuild
index 3973deb99c90..c46059d98d25 100644
--- a/dev-python/pycares/pycares-4.5.0.ebuild
+++ b/dev-python/pycares/pycares-4.5.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"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ~ppc64 ~riscv ~s390 sparc x86"
IUSE="test"
# Tests fail with network-sandbox, since they try to resolve google.com
PROPERTIES="test_network"
diff --git a/dev-python/pydantic-settings/Manifest b/dev-python/pydantic-settings/Manifest
index 82224f5c5d40..1709fc26ef8f 100644
--- a/dev-python/pydantic-settings/Manifest
+++ b/dev-python/pydantic-settings/Manifest
@@ -1,2 +1,2 @@
-DIST pydantic_settings-2.6.0.tar.gz 75232 BLAKE2B 1fd0954f4785166433253f28b64e66b5bee2bc3ae0f78170800b5b4b26b5092a3b098ae59a275937de10022c9040e9eba398b62ed1a370364b2126d4ddf69a52 SHA512 c84fda5e343a654ea98ecc6c704be00882a5a1b5e05e2b84c91b7d48c113f79d505a85caa21fa03f1e63cfe6f564073f85556f8db0dedb13f68d6e19484633d3
DIST pydantic_settings-2.6.1.tar.gz 75646 BLAKE2B 5c0ea4ea143d03382f2b1adbda3cc60667cd100044f937d75be9b0f575d0f8e5410631e84d6a60e7b24e02db2d323c5684ddd89061acad9a5832f658aab1d220 SHA512 eead0b0584c0532955cfb7580a62d901870490be19c13fc6ee93851db55838090eb066f273b244e473e02f072a0a2fb27e440fb1ed1c6a21b4357bcb374001d6
+DIST pydantic_settings-2.7.0.tar.gz 79743 BLAKE2B b6593a17bfe36fca0554ab969842edefbf92cfff057ca3e022633b3a24439c62cb15190bc5d71b5b3b131b5ee0b90edc2719c1c75245cea426e7cca459dde4c8 SHA512 b87ce1a1b9e137936ed2320e8df5bfcd5aa2be7cdbdfbd8d2d038cbe4748ee5c0d716e62a7e9420b5be9dfb617f977eb8d806b608612a2a9e2eeac88de309289
diff --git a/dev-python/pydantic-settings/pydantic-settings-2.6.0.ebuild b/dev-python/pydantic-settings/pydantic-settings-2.7.0.ebuild
index 10bd7298f5a6..813d878c7e8d 100644
--- a/dev-python/pydantic-settings/pydantic-settings-2.6.0.ebuild
+++ b/dev-python/pydantic-settings/pydantic-settings-2.7.0.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
inherit distutils-r1 pypi
@@ -36,23 +36,6 @@ BDEPEND="
EPYTEST_IGNORE=(
# Dependencies not packaged: pytest-examples
tests/test_docs.py
- # Dependencies not packaged: azure-keyvault-secrets, azure-identity
- tests/test_source_azure_key_vault.py
-)
-
-EPYTEST_DESELECT=(
- # Failed: DID NOT RAISE <class 'UserWarning'>
- tests/test_settings.py::test_protected_namespace_defaults
)
distutils_enable_tests pytest
-
-python_test() {
- # Parsing --help output is width dependent
- local -x COLUMNS=80
-
- # Ebuild's "A" variable conflicts with test expectations
- local -x A=
-
- epytest
-}
diff --git a/dev-python/pygithub/Manifest b/dev-python/pygithub/Manifest
index d41f7239cd52..575c5f09ddca 100644
--- a/dev-python/pygithub/Manifest
+++ b/dev-python/pygithub/Manifest
@@ -1,2 +1 @@
-DIST pygithub-2.4.0.tar.gz 3476673 BLAKE2B 4f07b68c529d6eb3936768bd64ff3790f794c9c37d0aa1f34496d17f0423ac9501248874ffb954bc8a38c1fe04f43aa040e6cb151f00464effe6b98669459f04 SHA512 647ccc56d6108a5c08321c75552b59e5d7120fd3f45587579384f3a3a1cf500aceadf4e302ccf19d8655645be5d6a76263ec5f337b08b24d94c432bbe1cb5848
DIST pygithub-2.5.0.tar.gz 3552804 BLAKE2B edd573728a3522eafc8def0341f508f4cbb700bfa94ec64480c47ade5cf92f6ded6b4c88b6c893d333e258a10f13fc5320d3bb6302410ca8872656fc26a7d63e SHA512 98c7aecf17d4e2e5497f999b65f7e1c531b2efb34c748bd229126f22c5611cfd0b428f5b3be93aead907f49fe9043a29573d2fea6237173f203a0f1c50c748b5
diff --git a/dev-python/pygithub/pygithub-2.4.0.ebuild b/dev-python/pygithub/pygithub-2.4.0.ebuild
deleted file mode 100644
index 4cf16e731ae7..000000000000
--- a/dev-python/pygithub/pygithub-2.4.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_PN=PyGithub
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python library to access the Github API v3"
-HOMEPAGE="
- https://github.com/PyGithub/PyGithub/
- https://pypi.org/project/PyGithub/
-"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-# cryptography via pyjwt[crypto]
-RDEPEND="
- dev-python/cryptography[${PYTHON_USEDEP}]
- dev-python/deprecated[${PYTHON_USEDEP}]
- >=dev-python/pyjwt-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/pynacl-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.14.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- >=dev-python/httpretty-1.0.3[${PYTHON_USEDEP}]
- >=dev-python/pytest-subtests-0.11.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/pygithub/pygithub-2.5.0.ebuild b/dev-python/pygithub/pygithub-2.5.0.ebuild
index 524c77032075..4cf16e731ae7 100644
--- a/dev-python/pygithub/pygithub-2.5.0.ebuild
+++ b/dev-python/pygithub/pygithub-2.5.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
# cryptography via pyjwt[crypto]
RDEPEND="
diff --git a/dev-python/pyjwt/Manifest b/dev-python/pyjwt/Manifest
index 53f4ad8bb2bf..187196bad12a 100644
--- a/dev-python/pyjwt/Manifest
+++ b/dev-python/pyjwt/Manifest
@@ -1,3 +1 @@
-DIST pyjwt-2.10.0.tar.gz 87687 BLAKE2B c3595b24bab66db56d6140e791c5326200dccf65499e7fc11f0448ff9a0189d3b309b33afba96e52eb1147ccda317137530650ef70d765a7e75d3b453f1a71f8 SHA512 3390e4613718e6fffe0a589a2b9f35ac8d29a12a7059d15281496c9a45b8e52b2ca165e3e7ba66bc2683d5df8d1ae8ed726bcc6e3afc0421a17491afe263f2b7
DIST pyjwt-2.10.1.tar.gz 87785 BLAKE2B 58a1220600179f043179e742ff8d5707bd89aff0ac7f240a2e834b256bcbeaec1e5831e80ccec126876047e5e2cc304efbad57839dbcef1fa1584a999d19b486 SHA512 2ae530750b59ef692ab31bf8bf3506e553b0199f346ddd06afed12304683f254cc924ff7190c5c911af72237dd794c345097de306e79e0fbcfb59958cb8cfbe5
-DIST pyjwt-2.9.0.tar.gz 78825 BLAKE2B f8228502944e6fc50412533c0c3f6d03fe7538dae8e1c42dd01d6b4419ef165f98125712e48d5c5b7f0d7eced36b6a84a69b9da549fe5e57effcba652f78faec SHA512 10d0344e05a142b3edadc970dd5cebc5eada1f638a599ca0f566c00149d67626c7fa1bbe668a56bc93048669df3af266c581f4872bf5756a4cc526f4b831dfc1
diff --git a/dev-python/pyjwt/pyjwt-2.10.0.ebuild b/dev-python/pyjwt/pyjwt-2.10.0.ebuild
deleted file mode 100644
index 132aa710d061..000000000000
--- a/dev-python/pyjwt/pyjwt-2.10.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_PN="PyJWT"
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="JSON Web Token implementation in Python"
-HOMEPAGE="
- https://github.com/jpadilla/pyjwt/
- https://pypi.org/project/PyJWT/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
-
-RDEPEND="
- !dev-python/python-jwt
-"
-BDEPEND="
- test? (
- >=dev-python/cryptography-3.4.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internet
- tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_sslcontext_default
-)
-
-pkg_postinst() {
- optfeature "cryptography" dev-python/cryptography
-}
diff --git a/dev-python/pyjwt/pyjwt-2.10.1.ebuild b/dev-python/pyjwt/pyjwt-2.10.1.ebuild
index 132aa710d061..0260f0bfc4c0 100644
--- a/dev-python/pyjwt/pyjwt-2.10.1.ebuild
+++ b/dev-python/pyjwt/pyjwt-2.10.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
!dev-python/python-jwt
diff --git a/dev-python/pyjwt/pyjwt-2.9.0.ebuild b/dev-python/pyjwt/pyjwt-2.9.0.ebuild
deleted file mode 100644
index 0260f0bfc4c0..000000000000
--- a/dev-python/pyjwt/pyjwt-2.9.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_PN="PyJWT"
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="JSON Web Token implementation in Python"
-HOMEPAGE="
- https://github.com/jpadilla/pyjwt/
- https://pypi.org/project/PyJWT/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
-
-RDEPEND="
- !dev-python/python-jwt
-"
-BDEPEND="
- test? (
- >=dev-python/cryptography-3.4.0[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # Internet
- tests/test_jwks_client.py::TestPyJWKClient::test_get_jwt_set_sslcontext_default
-)
-
-pkg_postinst() {
- optfeature "cryptography" dev-python/cryptography
-}
diff --git a/dev-python/pyperclip/Manifest b/dev-python/pyperclip/Manifest
index 75f258fcff6a..bbd745d3b976 100644
--- a/dev-python/pyperclip/Manifest
+++ b/dev-python/pyperclip/Manifest
@@ -1,2 +1 @@
-DIST pyperclip-1.8.2.tar.gz 20920 BLAKE2B d14a7d977b434db5ae3218792ccd73428bab244a6f6a92d3fd7f059ee99f841853b69a8e039a8192a6cca693adc943a93f24835d25471888975b306b7be4a36a SHA512 ade0cdf2bfdbe3ce807a02b64bb1e839afc9955254ddeb3e0fe7c1dd9fd9fddc11f8386a02590690b039045b46e9103e4d094f1bad3e272f532fda4db5ed1c1a
DIST pyperclip-1.9.0.tar.gz 20961 BLAKE2B a489268724b7beb82ec6b28c11cbb5fe04393a800297e4f71aace7232c13b68ce05092ca949f5cdc8257343b8e8f8b3cbd5227aa03a53e32eaeba8f3146108e2 SHA512 19865ebdcce99817f92994d14e26e1cd321d85da89f3177794a93981321ac3e39c937cccbcd00c866ccb30591d4720cd97a39fd266ef8378e3a21471ee69606f
diff --git a/dev-python/pyperclip/pyperclip-1.8.2-r1.ebuild b/dev-python/pyperclip/pyperclip-1.8.2-r1.ebuild
deleted file mode 100644
index 256184687648..000000000000
--- a/dev-python/pyperclip/pyperclip-1.8.2-r1.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# 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 virtualx pypi
-
-DESCRIPTION="A cross-platform clipboard module for Python"
-HOMEPAGE="
- https://github.com/asweigart/pyperclip/
- https://pypi.org/project/pyperclip/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 sparc x86"
-
-RDEPEND="
- || (
- x11-misc/xsel
- x11-misc/xclip
- kde-plasma/plasma-workspace
- dev-python/pyqt5[${PYTHON_USEDEP}]
- dev-python/qtpy[${PYTHON_USEDEP}]
- )
-"
-# test at least one backend
-BDEPEND="
- test? (
- ${RDEPEND}
- )
-"
-
-src_prepare() {
- # stupid windows
- find -type f -exec sed -i -e 's:\r$::' {} + || die
- # klipper is hard to get working, and once we make it work,
- # it breaks most of the other backends
- # wl-copy requires wayland, not Xvfb
- sed -e 's:_executable_exists("\(klipper\|wl-copy\)"):False:' \
- -i tests/test_pyperclip.py || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- "${EPYTHON}" tests/test_pyperclip.py -vv ||
- die "Tests fail on ${EPYTHON}"
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
diff --git a/dev-python/pyperclip/pyperclip-1.9.0.ebuild b/dev-python/pyperclip/pyperclip-1.9.0.ebuild
index 75624839cc8d..d0f24ff559ca 100644
--- a/dev-python/pyperclip/pyperclip-1.9.0.ebuild
+++ b/dev-python/pyperclip/pyperclip-1.9.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 sparc x86"
RDEPEND="
|| (
diff --git a/dev-python/pypiserver/Manifest b/dev-python/pypiserver/Manifest
index 5957446c3a7a..87ce67e8eaba 100644
--- a/dev-python/pypiserver/Manifest
+++ b/dev-python/pypiserver/Manifest
@@ -1,3 +1 @@
-DIST pypiserver-2.2.0.gh.tar.gz 158107 BLAKE2B 8c5e68201a4d376bc04ca8a5dc243c8c176f6a1bfd362fd5b0eb2875ca071cd124d15814312c2c14ded57c8476f72d41ccf1057eced2247d17f1cc6b7b12e86c SHA512 e1c313b52c852b90ee3efe07b754d91ac842483718fe30f0c59951aad9aa84bc36c9264956fd931a98aaad5ee151089a06472f19e4ae5e9eb1d20c72cc98f436
-DIST pypiserver-2.3.1.gh.tar.gz 165683 BLAKE2B 0a24b26a804f44bcd314595c4559fe7f41264910cd841e6ca7835e225fca2ec76073952ad9fb228c8e7f5d59045ad37578e676283499ab745fe204a7e353ee31 SHA512 c8a449e49daf2e3f149fbc87e01e40ad5cd5e33d1453b5d2bc97eefe10d7b8dcf74eda1008e62175de5f4f1429dec163774e19c92573ded1fe98f82293643e67
DIST pypiserver-2.3.2.gh.tar.gz 164673 BLAKE2B 7982c3fdb4cdb159e7450476a9f845825ad1d3bd1327fa125f978f1848f3a15d4d6d5f8676c8c050e25d49dd4a83e806496c863dd7f4d3e9005764b33e4a9a5e SHA512 83e48cf55892affee04533e0e1bb17dfa79548cd3629d1a61dd8f84cad635eb220ebe4207d1ceebe939eea0953fa17ffe6e549a015a9d9d6f627c9041e5786d2
diff --git a/dev-python/pypiserver/files/pypiserver-1.5.0-unbundle-bottle.patch b/dev-python/pypiserver/files/pypiserver-1.5.0-unbundle-bottle.patch
deleted file mode 100644
index 69e1764e3f2a..000000000000
--- a/dev-python/pypiserver/files/pypiserver-1.5.0-unbundle-bottle.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-diff -dupr pypiserver-1.5.0.orig/pypiserver/_app.py pypiserver-1.5.0/pypiserver/_app.py
---- pypiserver-1.5.0.orig/pypiserver/_app.py 2022-05-24 07:32:24.710366623 +0200
-+++ pypiserver-1.5.0/pypiserver/_app.py 2022-05-24 07:37:16.147456086 +0200
-@@ -13,7 +13,7 @@ from json import dumps
- from pypiserver.config import RunConfig
- from . import __version__
- from . import core
--from .bottle import (
-+from bottle import (
- static_file,
- redirect,
- request,
-diff -dupr pypiserver-1.5.0.orig/pypiserver/__init__.py pypiserver-1.5.0/pypiserver/__init__.py
---- pypiserver-1.5.0.orig/pypiserver/__init__.py 2022-05-24 07:32:24.710366623 +0200
-+++ pypiserver-1.5.0/pypiserver/__init__.py 2022-05-24 07:36:54.633769799 +0200
-@@ -4,7 +4,7 @@ import re as _re
- import sys
- import typing as t
-
--from pypiserver.bottle import Bottle
-+from bottle import Bottle
- from pypiserver.config import Config, RunConfig, strtobool
-
- version = __version__ = "1.5.0"
-diff -dupr pypiserver-1.5.0.orig/pypiserver/__main__.py pypiserver-1.5.0/pypiserver/__main__.py
---- pypiserver-1.5.0.orig/pypiserver/__main__.py 2022-05-24 07:32:24.710366623 +0200
-+++ pypiserver-1.5.0/pypiserver/__main__.py 2022-05-24 07:34:05.608054452 +0200
-@@ -159,7 +159,7 @@ def main(argv: t.Sequence[str] = None) -
-
- gevent.monkey.patch_all()
-
-- from pypiserver import bottle
-+ import bottle
-
- bottle.debug(config.verbosity > 1)
- bottle._stderr = ft.partial( # pylint: disable=protected-access
-diff -dupr pypiserver-1.5.0.orig/tests/test_app.py pypiserver-1.5.0/tests/test_app.py
---- pypiserver-1.5.0.orig/tests/test_app.py 2022-05-24 07:32:24.710366623 +0200
-+++ pypiserver-1.5.0/tests/test_app.py 2022-05-24 07:33:23.470919728 +0200
-@@ -8,12 +8,13 @@ import xmlrpc.client as xmlrpclib
- from html import unescape
-
- # Third party imports
-+import bottle
- import pytest
- import webtest
-
- # Local Imports
- from tests.test_pkg_helpers import files, invalid_files
--from pypiserver import __main__, bottle, core, Bottle
-+from pypiserver import __main__, core, Bottle
- from pypiserver.backend import CachingFileBackend, SimpleFileBackend
-
- # Enable logging to detect any problems with it
-diff -dupr pypiserver-1.5.0.orig/tests/test_main.py pypiserver-1.5.0/tests/test_main.py
---- pypiserver-1.5.0.orig/tests/test_main.py 2022-05-24 07:32:24.710366623 +0200
-+++ pypiserver-1.5.0/tests/test_main.py 2022-05-24 07:33:33.441025326 +0200
-@@ -5,11 +5,11 @@ import sys
- import typing as t
- from unittest import mock
-
-+import bottle
- import pytest
-
--import pypiserver.bottle
-+from bottle import Bottle
- from pypiserver import __main__
--from pypiserver.bottle import Bottle
-
-
- THIS_DIR = pathlib.Path(__file__).parent
-@@ -52,7 +52,7 @@ def main(monkeypatch):
- main.update_args = args
- main.update_kwargs = kwargs
-
-- monkeypatch.setattr("pypiserver.bottle.run", run)
-+ monkeypatch.setattr("bottle.run", run)
- monkeypatch.setattr("pypiserver.manage.update_all_packages", update)
-
- return main
-@@ -263,7 +263,7 @@ def test_auto_servers() -> None:
- """Test auto servers."""
- # A list of bottle ServerAdapters
- bottle_adapters = tuple(
-- a.__name__.lower() for a in pypiserver.bottle.AutoServer.adapters
-+ a.__name__.lower() for a in bottle.AutoServer.adapters
- )
- # We are going to expect that our AutoServer enum names must match those
- # at least closely enough to be recognizable.
diff --git a/dev-python/pypiserver/pypiserver-2.2.0.ebuild b/dev-python/pypiserver/pypiserver-2.2.0.ebuild
deleted file mode 100644
index 9c027534f46f..000000000000
--- a/dev-python/pypiserver/pypiserver-2.2.0.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# 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
-
-DESCRIPTION="Minimal PyPI server"
-HOMEPAGE="
- https://github.com/pypiserver/pypiserver/
- https://pypi.org/project/pypiserver/
-"
-SRC_URI="
- https://github.com/pypiserver/pypiserver/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="ZLIB"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-
-RDEPEND="
- <dev-python/bottle-0.13[${PYTHON_USEDEP}]
- >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
- >=dev-python/pip-7[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/importlib-resources[${PYTHON_USEDEP}]
- ' 3.{10..11})
-"
-# NB: many test deps are optional/specific to tests we skip
-BDEPEND="
- dev-python/setuptools-git[${PYTHON_USEDEP}]
- test? (
- >=dev-python/build-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/passlib-1.6[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- dev-python/webtest[${PYTHON_USEDEP}]
- )
-"
-
-DOCS=( CHANGES.rst README.md )
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.5.0-unbundle-bottle.patch"
-)
-
-distutils_enable_tests pytest
-
-src_prepare() {
- # remove bundled bottle (sic!)
- rm pypiserver/bottle.py || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- tests/test_server.py::test_hash_algos
- tests/test_server.py::test_pip_install_open_succeeds
- tests/test_server.py::test_pip_install_authed_succeeds
- # seems to rely on internal bottle details
- tests/test_main.py::test_auto_servers
- )
-
- if ! has_version "dev-python/twine[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/test_server.py::test_twine_upload
- tests/test_server.py::test_twine_register
- )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest tests
-}
diff --git a/dev-python/pypiserver/pypiserver-2.3.1.ebuild b/dev-python/pypiserver/pypiserver-2.3.1.ebuild
deleted file mode 100644
index a65c0898c0a2..000000000000
--- a/dev-python/pypiserver/pypiserver-2.3.1.ebuild
+++ /dev/null
@@ -1,80 +0,0 @@
-# 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
-
-DESCRIPTION="Minimal PyPI server"
-HOMEPAGE="
- https://github.com/pypiserver/pypiserver/
- https://pypi.org/project/pypiserver/
-"
-SRC_URI="
- https://github.com/pypiserver/pypiserver/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="ZLIB"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- dev-python/bottle[${PYTHON_USEDEP}]
- >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
- >=dev-python/pip-7[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/importlib-resources[${PYTHON_USEDEP}]
- ' 3.{10..11})
-"
-# NB: many test deps are optional/specific to tests we skip
-BDEPEND="
- dev-python/setuptools-git[${PYTHON_USEDEP}]
- test? (
- >=dev-python/build-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/passlib-1.6[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- dev-python/webtest[${PYTHON_USEDEP}]
- )
-"
-
-DOCS=( CHANGES.rst README.md )
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.3.1-unbundle-bottle.patch"
-)
-
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # stray unconditional importlib-resources dep
- sed -i -e '/importlib_resources/d' setup.py || die
- # remove bundled bottle (sic!)
- rm pypiserver/bottle.py || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- tests/test_server.py::test_hash_algos
- tests/test_server.py::test_pip_install_open_succeeds
- tests/test_server.py::test_pip_install_authed_succeeds
- # seems to rely on internal bottle details
- tests/test_main.py::test_auto_servers
- )
-
- if ! has_version "dev-python/twine[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- tests/test_server.py::test_twine_upload
- tests/test_server.py::test_twine_register
- )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest tests
-}
diff --git a/dev-python/pypiserver/pypiserver-2.3.2.ebuild b/dev-python/pypiserver/pypiserver-2.3.2.ebuild
index b1f1694d42ac..a7bd5f598c64 100644
--- a/dev-python/pypiserver/pypiserver-2.3.2.ebuild
+++ b/dev-python/pypiserver/pypiserver-2.3.2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="ZLIB"
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"
RDEPEND="
dev-python/bottle[${PYTHON_USEDEP}]
diff --git a/dev-python/pyrime/pyrime-0.0.7.ebuild b/dev-python/pyrime/pyrime-0.0.7.ebuild
index de102a11a944..106fb32e0634 100644
--- a/dev-python/pyrime/pyrime-0.0.7.ebuild
+++ b/dev-python/pyrime/pyrime-0.0.7.ebuild
@@ -30,8 +30,14 @@ distutils_enable_tests pytest
RDEPEND="
$DEPEND
- prompt-toolkit? ( dev-python/prompt-toolkit[${PYTHON_USEDEP}] )
- ptpython? ( dev-python/ptpython[${PYTHON_USEDEP}] )
+ prompt-toolkit? (
+ dev-python/prompt-toolkit[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ )
+ ptpython? (
+ dev-python/ptpython[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ )
"
python_test() {
diff --git a/dev-python/pytest-asyncio/Manifest b/dev-python/pytest-asyncio/Manifest
index 81dbaa127c28..544c27cdeca4 100644
--- a/dev-python/pytest-asyncio/Manifest
+++ b/dev-python/pytest-asyncio/Manifest
@@ -1,2 +1,3 @@
DIST pytest_asyncio-0.23.8.tar.gz 46920 BLAKE2B 6b7a66e6ef28f2c7a874a115e0346b3803051df5d57e5b8ba35480982231a804adfbe8a4a2c605847730ea940fafe9df2aa94f5081b43aa753b64c3e2ea027a5 SHA512 68f23458c5f22bdb75a6a0a12f185b1f22c5231c0cdcd84806781419f5c866844e851398d771c5932af4a42b5dfdcce6624181f2c0d2f70187bb5feed0ba7c97
DIST pytest_asyncio-0.24.0.tar.gz 49855 BLAKE2B 55813b655252f2c1fbe1658a0a2d739bb03a56794297dde9cf598b8200c0d3aa7437af7a241a821eff47ffe57841142adb93c6434c920cbd1d26b33a8ac8fe96 SHA512 abf2442afb9f5933b223e920c0b107d5781350f2a9c2e58ca141494a4f391acf97f2e377db1fc67b5213031bf371f222dc9c4718ff3c6b5985f5e49913f03cb7
+DIST pytest_asyncio-0.25.0.tar.gz 53298 BLAKE2B e29641f9e0ae24aac80bca7eaa14258d0bdfa6080abeaedd38ffe121cb9a9bf5886da2a38a3033010fcb47f4c2aee0eb17b0f63cee020c5ae81e8334486c66b7 SHA512 162d1693c82c4be96cf20cfeb075c4e434e897cdfc172564b8b2513b362a6bbf54d8be6da4a63a7de34236b6c55eb515e60b994198c07a5c63a63333fe019932
diff --git a/dev-python/pytest-asyncio/pytest-asyncio-0.25.0.ebuild b/dev-python/pytest-asyncio/pytest-asyncio-0.25.0.ebuild
new file mode 100644
index 000000000000..55e59d08726b
--- /dev/null
+++ b/dev-python/pytest-asyncio/pytest-asyncio-0.25.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2019-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="Library for testing asyncio code with pytest"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-asyncio/
+ https://pypi.org/project/pytest-asyncio/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/pytest-8.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/hypothesis-5.7.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on precise warning counts
+ tests/hypothesis/test_base.py::test_can_use_explicit_event_loop_fixture
+ tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_raises_warning_when_fixture_leaves_loop_unclosed
+ tests/test_event_loop_fixture_finalizer.py::test_event_loop_fixture_finalizer_raises_warning_when_test_leaves_loop_unclosed
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_asyncio.plugin,_hypothesis_pytestplugin
+ epytest
+}
diff --git a/dev-python/pytest-cov/Manifest b/dev-python/pytest-cov/Manifest
index 5e6613bf2053..239bcc8da054 100644
--- a/dev-python/pytest-cov/Manifest
+++ b/dev-python/pytest-cov/Manifest
@@ -1 +1,2 @@
DIST pytest-cov-5.0.0.tar.gz 63042 BLAKE2B 6a0f3b38bbf6ae8843d804d078b3879e76ef146ba1bee2eb068bffe560332984994a8405964be185b2ededc2c8231288e609573c5a83143147eeb537659da1e5 SHA512 384459cafdb800711b935899acc3716f5fcbc28b40be0e168e58333603b1dea474bbd7a92f09b6afbe2f9dc1ce8599668a787c0f93884c263af894f44311a4a6
+DIST pytest-cov-6.0.0.tar.gz 66945 BLAKE2B 8746915eb23b7d524e15ece1a05d5a1c8de6e8e08b807142e9a03f48605d54f715396d73cdb4ee5004dc5703ac0f68309e700d783ebb2037fc861e00033c35f3 SHA512 2947a032417d60867595bb65630942ff5d8a61523af5298e3f169420b28882f9b4256d89980a9cbe88c34f9b7fa759f44fd64d391ad86c1491a55f9a70282bf0
diff --git a/dev-python/pytest-cov/pytest-cov-6.0.0.ebuild b/dev-python/pytest-cov/pytest-cov-6.0.0.ebuild
new file mode 100644
index 000000000000..c1530dc49878
--- /dev/null
+++ b/dev-python/pytest-cov/pytest-cov-6.0.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="pytest plugin for coverage reporting"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-cov
+ https://pypi.org/project/pytest-cov/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/py-1.4.22[${PYTHON_USEDEP}]
+ >=dev-python/pytest-3.6[${PYTHON_USEDEP}]
+ >=dev-python/coverage-6.4.4-r1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/fields[${PYTHON_USEDEP}]
+ >=dev-python/process-tests-2.0.2[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0.0-pytest-xdist-2.5.0.patch
+)
+
+distutils_enable_sphinx docs \
+ dev-python/furo
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: disabling all plugins speeds tests up a lot
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_cov.plugin,xdist.plugin,xdist.looponfail
+
+ local src=$(
+ "${EPYTHON}" -c "import coverage as m; print(*m.__path__)" || die
+ )
+ # TODO: why do we need to do that?!
+ # https://github.com/pytest-dev/pytest-cov/issues/517
+ ln -s "${src}" \
+ "${BUILD_DIR}/install$(python_get_sitedir)/coverage" || die
+
+ nonfatal epytest -n "$(makeopts_jobs)" --dist=worksteal
+ local ret=${?}
+
+ rm "${BUILD_DIR}/install$(python_get_sitedir)/coverage" || die
+
+ [[ ${ret} -ne 0 ]] && die "epytest failed on ${EPYTHON}"
+}
diff --git a/dev-python/python-multipart/Manifest b/dev-python/python-multipart/Manifest
index bce4c05968c6..567ac52bf5be 100644
--- a/dev-python/python-multipart/Manifest
+++ b/dev-python/python-multipart/Manifest
@@ -1,3 +1,2 @@
-DIST python-multipart-0.0.17.gh.tar.gz 94416 BLAKE2B daf9f5e2a94d804216fbf18778295cec3270139d5912ace80ab84d57d32115d7a53563d429f81fd2f0f55b9fe30b58f62ef1d095414f7bfe6bd3951dbb9d9e89 SHA512 52b5d5b154a18a2ae34ce7931076278b5a5edb2cbca5350c6898fd675fb57755cefc97642b2edae7e7d9903d877430da85f73347b9fcaaf1c20fa09dc12799fd
DIST python-multipart-0.0.18.gh.tar.gz 95540 BLAKE2B fb68867f6035ee463c69c89df6b792bd8506df03386a1d61f223aa0fb63c2e6604c76377e9c356e55280c39e20052eced7c48869cf9661980626586054379ae9 SHA512 d4b888d95cbbbb70a66a8d756dfa479e96bf9cb7e754f8630a89e63dbdc06a9e237dd257c5924618030bfd03737d202029bbd5b50e483f72680177d3b0775629
DIST python-multipart-0.0.19.gh.tar.gz 95805 BLAKE2B fcd22b383aab09cc9dd1eaf6b6859d406b3439fbfe3460761f147ab8230f4cae118e44d3f3f067c03d4ff508b655c8f84d120765e233c87ae11b014d2d544051 SHA512 cd4f1dc7b5b2e4b29dbccb62f71143dc5ecfad419c12aca2d780d8ef0f3fcc1ef9f7e129b56daa48caef04c95e2e365157b9d945a2e40a5693ba70b2d1d80686
diff --git a/dev-python/python-multipart/python-multipart-0.0.17.ebuild b/dev-python/python-multipart/python-multipart-0.0.17.ebuild
deleted file mode 100644
index 7ed67d321902..000000000000
--- a/dev-python/python-multipart/python-multipart-0.0.17.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 2022-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
-
-DESCRIPTION="A streaming multipart parser for Python"
-HOMEPAGE="
- https://github.com/Kludex/python-multipart/
- https://pypi.org/project/python-multipart/
-"
-SRC_URI="
- https://github.com/Kludex/python-multipart/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
-
-BDEPEND="
- test? (
- dev-python/pyyaml[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not install the backwards compatibility package
- # we're patching revdeps instead
- rm -r multipart || die
-}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/python-multipart/python-multipart-0.0.18.ebuild b/dev-python/python-multipart/python-multipart-0.0.18.ebuild
index 1014160be7d0..7ed67d321902 100644
--- a/dev-python/python-multipart/python-multipart-0.0.18.ebuild
+++ b/dev-python/python-multipart/python-multipart-0.0.18.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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"
BDEPEND="
test? (
diff --git a/dev-python/python-tests/python-tests-3.12.8.ebuild b/dev-python/python-tests/python-tests-3.12.8.ebuild
index de97ef8766f2..b65db3bc525f 100644
--- a/dev-python/python-tests/python-tests-3.12.8.ebuild
+++ b/dev-python/python-tests/python-tests-3.12.8.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/python-utils/Manifest b/dev-python/python-utils/Manifest
index 2b664aaeec91..7d4799d26581 100644
--- a/dev-python/python-utils/Manifest
+++ b/dev-python/python-utils/Manifest
@@ -1,2 +1 @@
-DIST python_utils-3.9.0.tar.gz 35352 BLAKE2B 8d247d28a1ed797d1058f6bf45469230f5fcf3f8d305e195a49229deef5d41552e07b5c2e7543223f2df608feffa6df2f57828863acc437ff9c3c2a11e797703 SHA512 fe6313b18f53a56d71a9ca9b40f7bfe61629f7c5cf0b9088adf81ed8aa78b1c5a593c59ec178ec6c87424ae0730c9cb15d6eaa1a129d871f75b67d1d4f6938bf
DIST python_utils-3.9.1.tar.gz 35403 BLAKE2B 8cad7a9dbbc1a2d537d1fe7342846f1b1da15d41934cef861fcc0ad8da68d67fbab8f33ab6b579ff0f67d8c8dada6411a8087b46f9682990e7c2410802009c05 SHA512 f458446edde989ad338d20b11b2486148848c9373ef627938ccff99ab186517594428d7ec068d0d110a04c8ceee665735d33c662592b96920b8faf8aeb065239
diff --git a/dev-python/python-utils/python-utils-3.9.0.ebuild b/dev-python/python-utils/python-utils-3.9.0.ebuild
deleted file mode 100644
index d5520320b84b..000000000000
--- a/dev-python/python-utils/python-utils-3.9.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# 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="Collection of small Python functions & classes"
-HOMEPAGE="
- https://github.com/WoLpH/python-utils/
- https://pypi.org/project/python-utils/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-RDEPEND="
- dev-python/typing-extensions[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-EPYTEST_IGNORE=(
- docs
- _python_utils_tests/test_logger.py
- python_utils/loguru.py
-)
-
-EPYTEST_DESELECT=(
- # fragile
- _python_utils_tests/test_time.py::test_timeout_generator
-)
-
-python_prepare_all() {
- sed -i -e '/--cov/d' -e '/--mypy/d' pytest.ini || die
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/python-utils/python-utils-3.9.1.ebuild b/dev-python/python-utils/python-utils-3.9.1.ebuild
index 64cb749f2696..d5520320b84b 100644
--- a/dev-python/python-utils/python-utils-3.9.1.ebuild
+++ b/dev-python/python-utils/python-utils-3.9.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
RDEPEND="
dev-python/typing-extensions[${PYTHON_USEDEP}]
diff --git a/dev-python/qtpy/Manifest b/dev-python/qtpy/Manifest
index 19715d04e382..ae92a947f4fb 100644
--- a/dev-python/qtpy/Manifest
+++ b/dev-python/qtpy/Manifest
@@ -1,2 +1 @@
-DIST QtPy-2.4.1.tar.gz 65492 BLAKE2B 3816e3836c171f75fc1877984b533602c8929a791b09a1f53b14687eae7a1067e47fcae3a198d798417521a1a81829168d3af94178b28d8a3bd2c28e7d9f7865 SHA512 cb7c65cfec5aba9bdc4942b95108ac0300eac5ca8f0c984e8ea789b77fded3a1817f591d43bc45e9aa4feb3cb3da64c0d42ae67f12121a807cf7c247e7612e7d
DIST qtpy-2.4.2.tar.gz 66849 BLAKE2B 1eb362e797950d6c1406fb02bb3047ca7f8fdecd2b75371ab34f39601c9bdebce33336e3809c0d35dca31673c88d1734721a6dfdfb65f2ce20729445c4a4ca27 SHA512 2f9a0e1a4839c8dca23b4364900a12c2bd00f518353785a41eb6bd62fdc469670457f18224e1150a5a216ff5d0c4e799c3a1711ff7703ea07fadd655538fa37a
diff --git a/dev-python/qtpy/qtpy-2.4.1-r2.ebuild b/dev-python/qtpy/qtpy-2.4.1-r2.ebuild
deleted file mode 100644
index abb2aaab11f3..000000000000
--- a/dev-python/qtpy/qtpy-2.4.1-r2.ebuild
+++ /dev/null
@@ -1,245 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYPI_PN=QtPy
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 virtualx pypi
-
-DESCRIPTION="Abstraction layer on top of PyQt and PySide with additional custom QWidgets"
-HOMEPAGE="
- https://github.com/spyder-ide/qtpy/
- https://pypi.org/project/QtPy/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
-
-_IUSE_QT_MODULES="
- designer +gui help multimedia +network opengl positioning
- printsupport qml quick sensors serialport speech +sql svg testlib
- webchannel webengine websockets +widgets +xml
-"
-IUSE="+pyqt5 +pyqt6 pyside2 pyside6 ${_IUSE_QT_MODULES}"
-unset _IUSE_QT_MODULES
-
-REQUIRED_USE="
- || ( pyqt5 pyqt6 pyside2 pyside6 )
- python_targets_python3_12? ( !pyside2 )
- python_targets_python3_13? ( !pyside2 )
-"
-
-# These flags are currently *not* common to the PySide2/6 and PyQt5/6 ebuilds
-# Disable them for now, please check periodically if this is still up to date.
-# bluetooth? ( pyqt5/6 and pyside6 only )
-# dbus? ( pyqt5/6 and pyside6 only )
-#
-# 3d? ( pyside2/6 only )
-# charts? ( pyside2 only )
-# concurrent? ( pyside2 only )
-# datavis? ( pyside2 only )
-# scxml? ( pyside2/6 only )
-#
-# x11extras? ( pyside2 and pyqt5 only )
-# xmlpatterns? ( pyside2 and pyqt5 only )
-#
-# location? ( pyside2/6 and pyqt5 only)
-# nfc? ( pyqt6 and pyside6 only)
-# spatialaudio? ( pyqt6 and pyside6 only)
-# pdfium? ( pyqt6 and pyside6 only)
-
-# WARNING: the obvious solution of using || for PyQt5/pyside2 is not going
-# to work. The package only checks whether PyQt5/pyside2 is installed, it does
-# not verify whether they have the necessary modules (i.e. satisfy the USE dep).
-#
-# Webengine is a special case, because PyQt5 provides this in a separate package
-# while PySide2 ships it in the same package.
-#
-# declarative/qml/quick is a special case, because PyQt5 bundles the bindings
-# for qml and quick in one flag: declarative PySide2 does not.
-#
-# The PyQt5 ebuild currently enables xml support unconditionally, the flag is
-# added anyway with a (+) to make it future proof if the ebuild were to change
-# this behaviour in the future.
-#
-# The PySide2 ebuild currently enables opengl and serialport support
-# unconditionally, the flag is added anyway with a (+) to make it future proof
-# if the ebuild were to change this behaviour in the future.
-RDEPEND="
- dev-python/packaging[${PYTHON_USEDEP}]
- pyqt5? (
- dev-python/pyqt5[${PYTHON_USEDEP}]
- dev-python/pyqt5[designer?,gui?,help?,multimedia?,network?,opengl?]
- dev-python/pyqt5[positioning?,printsupport?,sensors?,serialport?,speech?,sql?,svg?]
- dev-python/pyqt5[testlib?,webchannel?,websockets?,widgets?,xml(+)?]
- qml? ( dev-python/pyqt5[declarative] )
- quick? ( dev-python/pyqt5[declarative] )
- webengine? ( dev-python/pyqtwebengine[${PYTHON_USEDEP}] )
- )
- pyqt6? (
- dev-python/pyqt6[${PYTHON_USEDEP}]
- dev-python/pyqt6[designer?,gui?,help?,multimedia?,network?,opengl?]
- dev-python/pyqt6[positioning?,printsupport?,qml?,quick?,sensors?,serialport?,sql?]
- dev-python/pyqt6[speech?,svg?,testlib?,webchannel?,websockets?,widgets?,xml?]
- webengine? ( dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets?,quick?] )
-
- )
- pyside2? (
- $(python_gen_cond_dep '
- dev-python/pyside2[${PYTHON_USEDEP}]
- dev-python/pyside2[designer?,gui?,help?,multimedia?,network?,opengl(+)?]
- dev-python/pyside2[positioning?,printsupport?,qml?,quick?,sensors?,serialport(+)?]
- dev-python/pyside2[speech?,sql?,svg?,testlib?,webchannel?,webengine?,websockets?]
- dev-python/pyside2[widgets?,xml?]
- ' python3_{10..11})
- )
- pyside6? (
- dev-python/pyside6[${PYTHON_USEDEP}]
- dev-python/pyside6[designer?,gui?,help?,multimedia?,network?,opengl?]
- dev-python/pyside6[positioning?,printsupport?,qml?,quick?,sensors(-)?,serialport?]
- dev-python/pyside6[speech(-)?,sql?,svg?,testlib?,webchannel?,webengine?,websockets?]
- dev-python/pyside6[widgets?,xml?]
- )
-"
-
-# The QtPy testsuite skips tests for bindings that are not installed, so here we
-# ensure that everything is available and all tests are run. Note that not
-# all flags are available in PyQt5/PySide2, so some tests are still skipped.
-BDEPEND="
- test? (
- dev-python/pytest-qt[${PYTHON_USEDEP}]
- pyqt5? (
- dev-python/pyqt5[${PYTHON_USEDEP}]
- dev-python/pyqt5[bluetooth,dbus,declarative,designer,gui,help,location]
- dev-python/pyqt5[multimedia,network,opengl,positioning,printsupport]
- dev-python/pyqt5[sensors,serialport,speech(-),sql,svg,testlib,webchannel]
- dev-python/pyqt5[websockets,widgets,x11extras,xml(+),xmlpatterns]
- dev-python/pyqtwebengine[${PYTHON_USEDEP}]
- dev-qt/qtsql:5[sqlite]
- )
- pyqt6? (
- dev-python/pyqt6[${PYTHON_USEDEP}]
- dev-python/pyqt6[dbus,designer,gui,help,multimedia,network,nfc,opengl]
- dev-python/pyqt6[pdfium(-),positioning,printsupport,qml,quick,quick3d,serialport]
- dev-python/pyqt6[sensors(-),spatialaudio(-),speech(-),sql,ssl,svg,testlib,webchannel]
- dev-python/pyqt6[websockets,widgets,xml]
- dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets,quick]
- dev-qt/qtbase:6[sqlite]
- )
- pyside2? (
- $(python_gen_cond_dep '
- dev-python/pyside2[${PYTHON_USEDEP}]
- dev-python/pyside2[3d,charts,concurrent,datavis,designer,gui,help]
- dev-python/pyside2[location,multimedia,network,opengl(+)]
- dev-python/pyside2[positioning,printsupport,qml,quick,scxml]
- dev-python/pyside2[sensors,serialport(+),speech,sql,svg,testlib]
- dev-python/pyside2[webchannel,webengine,websockets,widgets,x11extras]
- dev-python/pyside2[xml,xmlpatterns]
- dev-qt/qtsql:5[sqlite]
- dev-python/pyside2-tools[${PYTHON_USEDEP}]
- ' python3_{10..11})
- dev-qt/qtsql:5[sqlite]
- )
- pyside6? (
- dev-python/pyside6[${PYTHON_USEDEP}]
- dev-python/pyside6[3d(-),bluetooth(-),concurrent,dbus,designer,gui,help]
- dev-python/pyside6[location(-),multimedia,network,nfc(-),opengl,positioning,pdfium(-)]
- dev-python/pyside6[printsupport,qml,quick,quick3d,scxml(-),sensors(-)]
- dev-python/pyside6[serialport,spatialaudio(-),speech(-),sql,svg,testlib,webchannel]
- dev-python/pyside6[webengine,websockets,widgets,xml]
- dev-python/pyside6-tools[${PYTHON_USEDEP}]
- dev-qt/qtbase:6[sqlite]
- )
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e 's:--cov=qtpy --cov-report=term-missing::' pytest.ini || die
- # Disable Qt for Python implementations that are not selected
- if ! use pyqt5; then
- sed \
- -e '/from PyQt5.QtCore import/,/)/c\ \ \ \ \ \ \ \ raise ImportError #/' \
- -e '/if "PyQt5" in sys.modules:/,/"pyqt5"/c\' \
- -i qtpy/__init__.py || die
-
- # We need to ensure the first option is an 'if' not 'elif'
- sed -e 's/elif "PySide2" in sys.modules:/if "PySide2" in sys.modules:/g' -i qtpy/__init__.py || die
- fi
- if ! use pyside2; then
- sed \
- -e "s/from PySide2 import/raise ImportError #/" \
- -e "s/from PySide2.QtCore import/raise ImportError #/" \
- -e '/if "PySide2" in sys.modules:/,/"pyside2"/c\' \
- -i qtpy/__init__.py || die
-
- if ! use pyqt5; then
- sed \
- -e 's/elif "PyQt6" in sys.modules:/if "PyQt6" in sys.modules:/g' \
- -i qtpy/__init__.py || die
- fi
- fi
- if ! use pyqt6; then
- sed \
- -e '/from PyQt6.QtCore import/,/)/c\ \ \ \ \ \ \ \ raise ImportError #/' \
- -e '/if "PyQt6" in sys.modules:/,/"pyqt6"/c\' \
- -i qtpy/__init__.py || die
-
- if ! use pyqt5 && ! use pyside2; then
- sed \
- -e 's/elif "PySide6" in sys.modules:/if "PySide6" in sys.modules:/g' \
- -i qtpy/__init__.py || die
- fi
- fi
- if ! use pyside6; then
- sed \
- -e "s/from PySide6 import/raise ImportError #/" \
- -e "s/from PySide6.QtCore import/raise ImportError #/" \
- -e '/if "PySide6" in sys.modules:/,/"pyside6"/c\' \
- -i qtpy/__init__.py || die
- fi
-}
-
-python_test() {
- local -x QT_API
- local -a EPYTEST_DESELECT
- local other
-
- # Test for each enabled Qt4Python target.
- # Deselect the other targets, their test fails if we specify QT_API
- # or if we have disabled their corresponding inherit in __init__.py above
- for QT_API in PyQt{5,6} PySide{2,6}; do
- if use "${QT_API,,}"; then
- EPYTEST_DESELECT=()
- for other in PyQt{5,6} PySide{2,6}; do
- if [[ ${QT_API} != ${other} ]]; then
- EPYTEST_DESELECT+=(
- "qtpy/tests/test_main.py::test_qt_api_environ[${other}]"
- )
- fi
- done
-
- einfo "Testing with ${EPYTHON} and QT_API=${QT_API}"
- nonfatal epytest ||
- die -n "Tests failed with ${EPYTHON} and QT_API=${QT_API}" ||
- return 1
- fi
- done
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-pkg_postinst() {
- elog "When multiple Qt4Python targets are enabled QtPy will default to"
- elog "the first enabled target in this order: PyQt5 PySide2 PyQt6 PySide6."
- elog "This can be overridden with the QT_API environment variable."
-}
diff --git a/dev-python/qtpy/qtpy-2.4.2.ebuild b/dev-python/qtpy/qtpy-2.4.2.ebuild
index 46d267df8de6..73889dae2f86 100644
--- a/dev-python/qtpy/qtpy-2.4.2.ebuild
+++ b/dev-python/qtpy/qtpy-2.4.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
_IUSE_QT_MODULES="
designer +gui help multimedia +network opengl positioning
diff --git a/dev-python/scikit-image/Manifest b/dev-python/scikit-image/Manifest
index 64265f8172a8..b94876414f28 100644
--- a/dev-python/scikit-image/Manifest
+++ b/dev-python/scikit-image/Manifest
@@ -1,3 +1,4 @@
DIST scikit-image-data-15735b54e85c02427f07c71e6456723495034805.tar.bz2 143900901 BLAKE2B c1352e76337250fe1a9d6e07f08b6c9b1e0aed922ab8e0a3a4a1ea175f593b3375522e59550d30a22d392c34fef26d638c007c2af3d991887e02e7c68e56ebbb SHA512 d113dd258b35be710d841f9900cfbfe7103d1190b042489de88dd504b56277edac9a98fed5517e57725c5292fe26528267a06ff313bf6500b669d872c4481146
DIST scikit_image-0.24.0.tar.gz 22693928 BLAKE2B f165f702908fe446b459de3db0ec056a4b79d7266f85bc81c991569c1e492c22d238e8553d8f035abd83d4d3c4b449304e74b55d8bf558cac977c3ea5f0c864a SHA512 becb062725b4c1f64e12a1f775175e48dbce1b989c1e8f40ec04ff79cb926740be514b9a0a68e3f9e17fb0d3c7b860c7451b91eb178bbae93521e02e3e8e92db
+DIST scikit_image-0.25.0.tar.gz 22696477 BLAKE2B 6a19d10c8475e4975f9648befad410362b9cdfffcb2dd39c510d79f0498f33c305374996f4492b6f8b3d267da913f8f763d8834faae1a5949363f314f0a43fbd SHA512 b8954dd74177838f93e15f3f818868cac0f463fef420c1fabc297e691ff7c6bf2b243715b562054d38ef7fa3483eebe5f95a9e045974bcee136b32a283e1902f
DIST scikit_image-0.25.0rc2.tar.gz 22697011 BLAKE2B 55fa48357343ff7663c5a956042e8914b62fe78b82085035276fb11cf10864f1d06a3f31247b766c294b91419825c3199c22b533c4e6207b5bdb152090aefbcc SHA512 4c418f6eebba394dab7d297deafc518be815be205f7701458b1adf3a9d3102c7be76ebd93d72fac78d990bfa0e06e749925c995e23315f2c23da560f93cf6867
diff --git a/dev-python/scikit-image/scikit-image-0.25.0.ebuild b/dev-python/scikit-image/scikit-image-0.25.0.ebuild
new file mode 100644
index 000000000000..d35686baebbc
--- /dev/null
+++ b/dev-python/scikit-image/scikit-image-0.25.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=meson-python
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 optfeature pypi
+
+TEST_DATA_COMMIT=15735b54e85c02427f07c71e6456723495034805
+DESCRIPTION="Image processing routines for SciPy"
+HOMEPAGE="
+ https://scikit-image.org/
+ https://github.com/scikit-image/scikit-image/
+ https://pypi.org/project/scikit-image/
+"
+SRC_URI+="
+ test? (
+ https://gitlab.com/scikit-image/data/-/archive/${TEST_DATA_COMMIT}/scikit-image-data-${TEST_DATA_COMMIT}.tar.bz2
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/imageio-2.36[${PYTHON_USEDEP}]
+ >=dev-python/lazy-loader-0.4[${PYTHON_USEDEP}]
+ >=dev-python/networkx-3.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.24[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.1[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.11.2[sparse(+),${PYTHON_USEDEP}]
+ >=dev-python/tifffile-2022.8.12[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-python/cython-3.0.4[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ )
+"
+
+# xdist does not work with this test suite
+distutils_enable_tests pytest
+# There is a programmable error in your configuration file:
+#distutils_enable_sphinx doc/source dev-python/numpydoc dev-python/myst-parser
+
+src_test() {
+ # for some reason, upstream refetches data that's already in the tarball
+ # sigh
+ mkdir -p "${HOME}/.cache/scikit-image" || die
+ mv skimage "${HOME}/.cache/scikit-image/${PV/_/}" || die
+
+ # This is a true horror, sigh
+ local cache_dir=${HOME}/.cache/scikit-image/${PV/_/}/data
+ pushd "${WORKDIR}/data-${TEST_DATA_COMMIT}" >/dev/null || die
+ cp Tests_besides_Equalize_Otsu/add18_entropy/rank_filters_tests_3d.npz \
+ Tests_besides_Equalize_Otsu/gray_morph_output.npz \
+ brain.tiff cells3d.tif eagle.png \
+ "${cache_dir}/" || die
+ cp Normal_Epidermis_and_Dermis_with_Intradermal_Nevus_10x.JPG "${cache_dir}"/skin.jpg || die
+ cp pivchallenge/B/B001_1.tif "${cache_dir}"/pivchallenge-B-B001_1.tif || die
+ cp pivchallenge/B/B001_2.tif "${cache_dir}"/pivchallenge-B-B001_2.tif || die
+ cp kidney-tissue-fluorescence.tif "${cache_dir}"/kidney.tif || die
+ cp lily-of-the-valley-fluorescence.tif "${cache_dir}"/lily.tif || die
+ cp astronaut_rl.npy "${cache_dir}/../restoration/tests/" || die
+ popd > /dev/null || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for downloading all data files, including these not needed
+ # by any actual tests
+ data/tests/test_data.py::test_download_all_with_pooch
+ # hangs? TODO
+ graph/tests/test_rag.py::test_reproducibility
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest --pyargs skimage -p localserver -o xfail_strict=False
+}
+
+pkg_postinst() {
+ optfeature "FITS io capability" dev-python/astropy
+ optfeature "GTK" dev-python/pygtk
+ optfeature "io plugin providing most standard formats" dev-python/imread
+ optfeature "plotting" dev-python/matplotlib
+ optfeature "wavelet transformations" dev-python/pywavelets
+ optfeature "io plugin providing a wide variety of formats, including specialized formats using in medical imaging." dev-python/simpleitk
+}
diff --git a/dev-python/scipy/Manifest b/dev-python/scipy/Manifest
index 282cd531d647..15d9059099ea 100644
--- a/dev-python/scipy/Manifest
+++ b/dev-python/scipy/Manifest
@@ -1,2 +1,3 @@
DIST scipy-1.14.1.tar.gz 58620554 BLAKE2B 5cb383648a5f3b8d0d321efcd66992212c59ce3fc3dbf812a2fa97c09cb18831b280af6c7689553644f83c531a266e9152e2a139a12aed08307e1ed64deea78e SHA512 20e3cf13590f76dfdc40ca8f90e6d5a68502e74415f37fa24fdb8169098e1d7f0aa631ae742c8c3e9573fa7d63da61986d51f35f090a3785873ae0761f7fcfa6
+DIST scipy-1.15.0rc1.tar.gz 59145455 BLAKE2B 07375d2ecb2433b510d14f77e47bed30e7d4c111f1f07e94f096c862e741083e36aede216c8891c26df490a07180f931ea0f6430d4aa6ab4fb5f1787e1483a6e SHA512 a488d5019b7565af7f1dd2dc74e592bd63d30ec0898c1188b170cc1b241d3606bd9a91afb18becff3a39cdf6dc4c92b198b163d05e1c298c014184e98f9fe94b
DIST scipy-html-1.14.0.zip 65723829 BLAKE2B ba47dbf00a5d2a53a9addc5ea68ab18b42f211a018b89aa4b0b57ff0dee02e410a3effc59ddf8fbbc5aa33075d45d86880aed3a14068da5bd7b62ee526199967 SHA512 93be0bafcc64cea1ba130bbcc77c0741acc4f819c84a5030391a22657a1bc63abe8434a2723f66b7ad04c0809dc6d02e3a97ffb8d94bd3d4a4bb759ee796b475
diff --git a/dev-python/scipy/scipy-1.15.0_rc1.ebuild b/dev-python/scipy/scipy-1.15.0_rc1.ebuild
new file mode 100644
index 000000000000..6101f86805aa
--- /dev/null
+++ b/dev-python/scipy/scipy-1.15.0_rc1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=fortran
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit flag-o-matic fortran-2 distutils-r1
+
+DESCRIPTION="Scientific algorithms library for Python"
+HOMEPAGE="
+ https://scipy.org/
+ https://github.com/scipy/scipy/
+ https://pypi.org/project/scipy/
+"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ # Need submodules, so git for now.
+ EGIT_REPO_URI="https://github.com/scipy/scipy"
+ EGIT_BRANCH="maintenance/$(ver_cut 1-2).x"
+ EGIT_SUBMODULES=( '*' )
+else
+ inherit pypi
+
+ # Upstream is often behind with doc updates
+ DOC_PV=1.14.0
+
+ SRC_URI+="
+ doc? (
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip
+ )"
+
+ if [[ ${PV} != *rc* ]] ; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ fi
+fi
+
+LICENSE="BSD LGPL-2"
+SLOT="0"
+IUSE="doc +fortran test-rust"
+
+# umfpack is technically optional but it's preferred to have it available.
+DEPEND="
+ >=dev-python/numpy-1.23.5:=[lapack,${PYTHON_USEDEP}]
+ sci-libs/arpack:=
+ sci-libs/umfpack
+ virtual/cblas
+ >=virtual/lapack-3.8
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/pillow[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-lang/swig
+ >=dev-python/cython-3.0.8[${PYTHON_USEDEP}]
+ >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/pybind11-2.13.2[${PYTHON_USEDEP}]
+ >=dev-build/meson-1.1.0
+ !kernel_Darwin? ( dev-util/patchelf )
+ virtual/pkgconfig
+ doc? ( app-arch/unzip )
+ fortran? (
+ >=dev-python/pythran-0.16.0[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}]
+ )
+ test-rust? (
+ dev-python/pooch[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ -Dblas=blas
+ -Dlapack=lapack
+ -Duse-pythran=$(usex fortran true false)
+ )
+
+ # https://bugs.gentoo.org/932721
+ has_version '>=dev-python/numpy-2.0.0' && filter-lto
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+
+ local EPYTEST_DESELECT=(
+ # Network
+ scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all
+ scipy/datasets/tests/test_data.py::TestDatasets::test_ascent
+ scipy/datasets/tests/test_data.py::TestDatasets::test_face
+ scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram
+
+ # Precision issue with diff. blas?
+ scipy/optimize/tests/test__basinhopping.py::Test_Metropolis::test_gh7799
+
+ # Crashes with assertion, not a regression
+ # https://github.com/scipy/scipy/issues/19321
+ scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object
+
+ # timeouts
+ scipy/sparse/linalg/tests/test_propack.py::test_examples
+ # hang or incredibly slow
+ scipy/optimize/tests/test_lsq_linear.py::TestBVLS::test_large_rank_deficient
+ scipy/optimize/tests/test_lsq_linear.py::TestTRF::test_large_rank_deficient
+
+ # TODO
+ scipy/optimize/tests/test_minimize_constrained.py::TestTrustRegionConstr::test_list_of_problems
+ )
+ local EPYTEST_IGNORE=()
+
+ if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then
+ EPYTEST_IGNORE+=(
+ scipy/datasets/tests/test_data.py
+ )
+ fi
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # fd leaks in tests
+ # https://github.com/scipy/scipy/issues/19553
+ scipy/fft/_pocketfft/tests/test_real_transforms.py
+ # TODO
+ 'scipy/special/tests/test_data.py::test_boost[<Data for expi: expinti_data_long_ipp-expinti_data_long>]'
+ # missing dict.__ror__
+ # https://github.com/pypy/pypy/issues/4934
+ 'scipy/sparse/tests/test_dok.py::test_dunder_ror[dok_matrix]'
+ # mismatched exception message
+ scipy/optimize/tests/test_hessian_update_strategy.py::TestHessianUpdateStrategy::test_initialize_catch_illegal
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # avoid other stuff being multithreaded when using xdist
+ local -x PYTHON_CPU_COUNT=1
+ epytest scipy
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${WORKDIR}"/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/setproctitle/setproctitle-1.3.4-r1.ebuild b/dev-python/setproctitle/setproctitle-1.3.4-r1.ebuild
index 378a572f0e1f..21baa8eb4342 100644
--- a/dev-python/setproctitle/setproctitle-1.3.4-r1.ebuild
+++ b/dev-python/setproctitle/setproctitle-1.3.4-r1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
distutils_enable_tests pytest
diff --git a/dev-python/sphinx-autoapi/Manifest b/dev-python/sphinx-autoapi/Manifest
index 5d54397a47b0..3c13d7322d89 100644
--- a/dev-python/sphinx-autoapi/Manifest
+++ b/dev-python/sphinx-autoapi/Manifest
@@ -1,2 +1 @@
-DIST sphinx-autoapi-3.3.3.gh.tar.gz 72123 BLAKE2B 85b7c8f1eae4d9366f8e8afd526bdb5e6c0e3f14de44c9e94f4922e021bd15f31117942dc1c542a903c1fa4b3f138e0eacbfaccc744bf28c211283acbfc4268c SHA512 c6de80ceb7b394627ca19dbd59e8f7361ff1d14b5ab401134d149131b69f6be05348189ae97dcc6daa6e99276a99072d62990a8594be653d449659b556d86655
DIST sphinx-autoapi-3.4.0.gh.tar.gz 72943 BLAKE2B 8d3187e6c86a9172e5cbeb441a283e5f694b96aade054c3c96c56327365f7310244d37c2643004011ffe9ebad91b5cc61c67d8d8bb12c2eaf9286efce0c5c7db SHA512 8d85497b620326a62c8abc6c638b1526e6d01b744aa200a37acf3f7e2468bf84fc24ce7b91e172cdfe1c419a635e137f690aa860c0ee6283be2028823842139f
diff --git a/dev-python/sphinx-autoapi/sphinx-autoapi-3.3.3.ebuild b/dev-python/sphinx-autoapi/sphinx-autoapi-3.3.3.ebuild
deleted file mode 100644
index 578ec2d8256f..000000000000
--- a/dev-python/sphinx-autoapi/sphinx-autoapi-3.3.3.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1
-
-DESCRIPTION="A new approach to API documentation in Sphinx"
-HOMEPAGE="
- https://sphinx-autoapi.readthedocs.io/
- https://github.com/readthedocs/sphinx-autoapi/
- https://pypi.org/project/sphinx-autoapi/
-"
-# sdist is missing docs, as of 2.1.0
-SRC_URI="
- https://github.com/readthedocs/sphinx-autoapi/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 x86"
-
-RDEPEND="
- >=dev-python/astroid-3.0.0[${PYTHON_USEDEP}]
- dev-python/jinja2[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/sphinx-6.1.0[${PYTHON_USEDEP}]
-"
-
-BDEPEND+="
- test? ( dev-python/beautifulsoup4[${PYTHON_USEDEP}] )
-"
-
-DOCS=( README.rst CHANGELOG.rst )
-
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- tests/python/test_pyintegration.py::TestPEP695::test_integration
- tests/python/test_pyintegration.py::TestPipeUnionModule::test_integration
- "tests/test_integration.py::TestExtensionErrors::test_extension_setup_errors[dotnetexample"
- )
-
- distutils-r1_python_test
-}
diff --git a/dev-python/sphinx-autoapi/sphinx-autoapi-3.4.0.ebuild b/dev-python/sphinx-autoapi/sphinx-autoapi-3.4.0.ebuild
index 16d46ca47209..578ec2d8256f 100644
--- a/dev-python/sphinx-autoapi/sphinx-autoapi-3.4.0.ebuild
+++ b/dev-python/sphinx-autoapi/sphinx-autoapi-3.4.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 arm arm64 x86"
RDEPEND="
>=dev-python/astroid-3.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/threadpoolctl/threadpoolctl-3.5.0.ebuild b/dev-python/threadpoolctl/threadpoolctl-3.5.0.ebuild
index 32671d6e2001..6ad893a57a78 100644
--- a/dev-python/threadpoolctl/threadpoolctl-3.5.0.ebuild
+++ b/dev-python/threadpoolctl/threadpoolctl-3.5.0.ebuild
@@ -4,9 +4,9 @@
EAPI=8
DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-inherit distutils-r1
+inherit distutils-r1 toolchain-funcs
DESCRIPTION="Limit the number of threads used in native libs that have their own threadpool"
HOMEPAGE="
@@ -23,19 +23,42 @@ SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 ~riscv x86 ~arm64-macos ~x64-macos"
BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
"
distutils_enable_tests pytest
-EPYTEST_DESELECT=(
- # Asserts against a hardcoded list of CPUs. Either we skip it
- # or file bugs about missing architectures until upstream realizes
- # how bad idea that were.
- tests/test_threadpoolctl.py::test_architecture
- # This test fails if the Python executable (or any library that it
- # links to) uses OpenMP. This can particularly be the case with
- # CPython 3.12 that links to app-crypt/libb2.
- # https://github.com/joblib/threadpoolctl/issues/146
- tests/test_threadpoolctl.py::test_command_line_empty
-)
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Asserts against a hardcoded list of CPUs. Either we skip it
+ # or file bugs about missing architectures until upstream realizes
+ # how bad idea that were.
+ tests/test_threadpoolctl.py::test_architecture
+ # This test fails if the Python executable (or any library that it
+ # links to) uses OpenMP. This can particularly be the case with
+ # CPython 3.12 that links to app-crypt/libb2.
+ # https://github.com/joblib/threadpoolctl/issues/146
+ tests/test_threadpoolctl.py::test_command_line_empty
+ )
+
+ # see continuous_integration/build_test_ext.sh
+ if [[ ! -f tests/_pyMylib/my_threaded_lib.so ]]; then
+ pushd tests/_pyMylib >/dev/null || die
+ $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -fPIC -shared \
+ -o my_threaded_lib.so my_threaded_lib.c || die
+ popd >/dev/null || die
+ fi
+
+ pushd tests/_openmp_test_helper >/dev/null || die
+ "${EPYTHON}" setup_inner.py build_ext -i || die
+ "${EPYTHON}" setup_outer.py build_ext -i || die
+ "${EPYTHON}" setup_nested_prange_blas.py build_ext -i || die
+ popd >/dev/null || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/tomli/Manifest b/dev-python/tomli/Manifest
index 2e4cff4dfe08..397cba47e363 100644
--- a/dev-python/tomli/Manifest
+++ b/dev-python/tomli/Manifest
@@ -1,4 +1,2 @@
-DIST tomli-2.1.0-py3-none-any.whl.zip 13750 BLAKE2B 8354ca389e2f45bf87749247fa2a6d84a6a60f6c3c42e89946ffef547f7fe9538bce228a2e2f9b3518c1b29ea2bd0c25989e690de2fd633d5df362dc798bc089 SHA512 cb16271d5321f4f6d4ec20884fbe81f5b1a387a0b751418ebee0652ea827bf54344115c1a9f7ce62be013cb2c623c2cfae7d135476cffeccf0a3768a53447219
-DIST tomli-2.1.0.gh.tar.gz 136173 BLAKE2B b67adb38fcc75d2b8f20578446686fdec61359d35fb958ceb16a9618d5d1dcb7865409b7da3d1d36ab1d9c9b8e5b1612efd9e8280023469a0abccb591e28c5a1 SHA512 472aa86543514257808fc68d5015fa1503e5fd674bbab113de685a07cc5a61e0c74e5840f132da88482e62ae0aa4b27e4b0521100ceb6cebe4e3cb3230d318cb
DIST tomli-2.2.1-py3-none-any.whl.zip 14257 BLAKE2B 1806b29c4331a153c3fcadf3eb4ca40576210fdbd91ce2708bc36714949df3aba17a19eb3f8e899a984039ae77d75ab1a630ee4e30eae0605495c38b8bf86279 SHA512 00a2c52a4e580c28d9c54a1b1e73e0c26f3108ffaa538b0bc0011c3c85397f4217ecbd136e77b6571bfcb1e055b28d70ac79a25571e2367e227a9b24aff57a97
DIST tomli-2.2.1.gh.tar.gz 137745 BLAKE2B 5660d11b8925fd39f3b9bc1957a06026e108cd3fee61988f0d25af2f9634d5fbafc7121ffa7dd1abc28013310c72253b58b7d4d267f4b1848ee6a9e3ff00698a SHA512 6bd2600b06b9d41f45ae34172380d3ec162d0e25a7602e8e77ee37bbe165674ff17afc39c4d1f87c9cec9bd1f02003ba5ebaa313a60efca64ef5124f77a2c887
diff --git a/dev-python/tomli/tomli-2.1.0.ebuild b/dev-python/tomli/tomli-2.1.0.ebuild
deleted file mode 100644
index d0b7b4cbc0e6..000000000000
--- a/dev-python/tomli/tomli-2.1.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
-EAPI=8
-
-DISTUTILS_USE_PEP517=no
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A lil' TOML parser"
-HOMEPAGE="
- https://pypi.org/project/tomli/
- https://github.com/hukkin/tomli/
-"
-SRC_URI="
- https://github.com/hukkin/tomli/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- $(pypi_wheel_url --unpack)
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-
-BDEPEND="
- app-arch/unzip
-"
-
-distutils_enable_tests unittest
-
-python_compile() {
- python_domodule src/tomli "${WORKDIR}"/*.dist-info
-}
-
-python_install() {
- distutils-r1_python_install
- python_optimize
-}
diff --git a/dev-python/tomli/tomli-2.2.1.ebuild b/dev-python/tomli/tomli-2.2.1.ebuild
index 45b763292a93..d0b7b4cbc0e6 100644
--- a/dev-python/tomli/tomli-2.2.1.ebuild
+++ b/dev-python/tomli/tomli-2.2.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="
app-arch/unzip
diff --git a/dev-python/tqdm/Manifest b/dev-python/tqdm/Manifest
index c3c25032177a..61869dc04f09 100644
--- a/dev-python/tqdm/Manifest
+++ b/dev-python/tqdm/Manifest
@@ -1,2 +1 @@
-DIST tqdm-4.67.0.tar.gz 169739 BLAKE2B e596b4a8e1c9af1b21f55dbf8f96ae716d4a28700fdeeddd7073f0ee73429e745d3e69824f9d53d258e646fdc84228c7407a432fbf00a6fd5651eb3fe62136fb SHA512 87c9f233eb28ff1570fc8b9a5a55c19b116b8dd451d82f1bfb14ca8bf8a2c3135fe9b788476c301ca169ef2c32099945178907feebdb4129eac2558d205e5715
DIST tqdm-4.67.1.tar.gz 169737 BLAKE2B 9591a60570084670cd8e69b44455a374ef7dd91077c1b598f474f261bd0baef6a37b91214d0c9303fb5d04eb6537bebd4d1ba9ed99a8aa496dbca8ec2811c7d0 SHA512 f97d35ff73c9ba92c6cbfc2834cdedcdad2ec1d757ed40220b29d8c8863b197d8d00533e7f2a41589a9f68de1d053cc9715cc8b597759a3dcf96fec192edf4e3
diff --git a/dev-python/tqdm/tqdm-4.67.0.ebuild b/dev-python/tqdm/tqdm-4.67.0.ebuild
deleted file mode 100644
index 839882307e75..000000000000
--- a/dev-python/tqdm/tqdm-4.67.0.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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/tqdm/tqdm-4.67.1.ebuild b/dev-python/tqdm/tqdm-4.67.1.ebuild
index 9329b5b7cfab..81752578cfe4 100644
--- a/dev-python/tqdm/tqdm-4.67.1.ebuild
+++ b/dev-python/tqdm/tqdm-4.67.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples"
BDEPEND="
diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest
index c961ea71339d..8c78c73a5e64 100644
--- a/dev-python/translate-toolkit/Manifest
+++ b/dev-python/translate-toolkit/Manifest
@@ -1 +1,2 @@
DIST translate-3.14.1.gh.tar.gz 1174769 BLAKE2B 3be39dbf964307ebaaca651f06683ecf67e3aaad9ea3774a68190f117867e8a5dc8ba732242fc5e34d53e629474bc038e2dbb2b8383fb914c0aa8325a6a3ac39 SHA512 4052c2062934720b347723a88f2a9fb187c03c064efa88a95992860b196637ed805e2c00986f0337253f56b3ce9f7e064ef33c12f9ba3da4af01b10257449c30
+DIST translate-3.14.2.gh.tar.gz 1175450 BLAKE2B db13e59036bd75a62847c68c4e2633a17152def48ccfd1d36531a0325b4b5d819711dab1cb3cfc23abc2e7201b348836434428ed155e6e593273ff8750038faa SHA512 7ae64bd93459b29e6a341ea8ded2993e02e277dbba48a0638eda28fff4dfcc9b490d0a669e277cb75c395f385e5a54feb0665919c27b1ab7c5cffd0add109d27
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.14.2.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.14.2.ebuild
new file mode 100644
index 000000000000..79a925032078
--- /dev/null
+++ b/dev-python/translate-toolkit/translate-toolkit-3.14.2.ebuild
@@ -0,0 +1,122 @@
+# 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="sqlite"
+
+inherit distutils-r1
+
+MY_P=translate-${PV}
+DESCRIPTION="Toolkit to convert between many translation formats"
+HOMEPAGE="
+ https://github.com/translate/translate/
+ https://pypi.org/project/translate-toolkit/
+"
+SRC_URI="
+ https://github.com/translate/translate/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+html +ical +ini +subtitles +yaml"
+
+RDEPEND="
+ app-text/iso-codes
+ >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}]
+ dev-python/cheroot[${PYTHON_USEDEP}]
+ >=dev-python/levenshtein-0.12.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.3.1[${PYTHON_USEDEP}]
+ >=dev-python/mistletoe-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ >=dev-python/cwcwidth-0.1.9[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ html? ( dev-python/utidylib[${PYTHON_USEDEP}] )
+ ical? ( dev-python/vobject[${PYTHON_USEDEP}] )
+ ini? ( >=dev-python/iniparse-0.5[${PYTHON_USEDEP}] )
+ subtitles? ( media-video/gaupol[${PYTHON_USEDEP}] )
+ yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] )
+"
+# Technically, the test suite also has undeclared dependency
+# on dev-python/snapshottest but all the tests using it are broken
+# anyway, so we skip them.
+BDEPEND="
+ test? (
+ dev-python/phply[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_test() {
+ # unfortunately, this bad quality package doesn't support XDG_DATA_DIRS
+ # correctly, so we need to reassemble all data files in a single directory
+ local -x XDG_DATA_HOME=${T}/share
+ cp -r translate/share "${T}/" || die
+ cp -r "${ESYSROOT}/usr/share"/gaupol "${XDG_DATA_HOME}"/ || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Fails with network-sandbox (and even with it off but w/ softer fail)
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff'
+ 'tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff'
+ # all tests based on snapshottest are broken and I'm too tired
+ # to figure this out
+ tests/translate/tools/test_pocount.py::test_{cases,output}
+ tests/translate/tools/test_junitmsgfmt.py::test_output
+ # gettext 0.23
+ # https://github.com/translate/translate/issues/5436
+ tests/translate/storage/test_cpo.py::TestCPOFile::test_wrap_gettext
+ )
+ local EPYTEST_IGNORE=(
+ # unpackaged fluent.*
+ tests/translate/storage/test_fluent.py
+ # changes directory and does not change it back, sigh
+ tests/odf_xliff/test_odf_xliff.py
+ )
+
+ if ! use ini; then
+ EPYTEST_IGNORE+=(
+ translate/convert/test_ini2po.py
+ translate/convert/test_po2ini.py
+ )
+ fi
+
+ if ! use subtitles; then
+ EPYTEST_IGNORE+=(
+ translate/storage/test_subtitles.py
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr
+ doins -r translate/share
+
+ if ! use html; then
+ rm "${ED}"/usr/bin/{html2po,po2html} || die
+ fi
+ if ! use ical; then
+ rm "${ED}"/usr/bin/{ical2po,po2ical} || die
+ fi
+ if ! use ini; then
+ rm "${ED}"/usr/bin/{ini2po,po2ini} || die
+ fi
+ if ! use subtitles; then
+ rm "${ED}"/usr/bin/{sub2po,po2sub} || die
+ fi
+}
diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest
index 3960945c1e5d..6207ff1596e2 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1,2 +1 @@
-DIST trimesh-4.5.2.gh.tar.gz 13616030 BLAKE2B 1201b0d3f2780564c970d7c14331905e4fe808df3f0185dbdd1cdf383d4358d9dd50d3bdbedd6a3ada843657452a5aabb0ca3eaab6b56c65373ebc9a1ca91ad5 SHA512 13fedd9bac79e25d510b776166d9ea04cf60638f3702cdf3a8a7f14e4297fe26fa4b9eacffb9a22f1b175c01bf75d4452e57a073ca8eb4858b028abca99d2e5b
DIST trimesh-4.5.3.gh.tar.gz 13618342 BLAKE2B 1bb74c872a09d928b9ccd4b098377f584ef05e444c1f3eee50ec456e108485a14757b1bdcb2920118e8ea6f557d56c2708784d51979c18cee956d9b7aac6093a SHA512 4000ae55e8020bf1fd884a646d18db77f55abbb5de2ccc9f89ada4854b2001c0da377d53b834e48f7f43fa4ea1681fd0cf092697bb59e888c5416cf4a245a847
diff --git a/dev-python/trimesh/trimesh-4.5.2.ebuild b/dev-python/trimesh/trimesh-4.5.2.ebuild
deleted file mode 100644
index a1cbd7facd66..000000000000
--- a/dev-python/trimesh/trimesh-4.5.2.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# 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 optfeature
-
-DESCRIPTION="Python library for loading and using triangular meshes"
-HOMEPAGE="
- https://trimesh.org/
- https://github.com/mikedh/trimesh/
- https://pypi.org/project/trimesh/
-"
-SRC_URI="
- https://github.com/mikedh/${PN}/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
-
-RDEPEND="
- dev-python/chardet[${PYTHON_USEDEP}]
- dev-python/colorlog[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
- dev-python/networkx[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/pycollada[${PYTHON_USEDEP}]
- dev-python/pyglet[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
- dev-python/svg-path[${PYTHON_USEDEP}]
- dev-python/sympy[${PYTHON_USEDEP}]
- dev-python/xxhash[${PYTHON_USEDEP}]
- dev-python/rtree[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/mapbox-earcut[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_TIMEOUT=1800
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # requires manifold3d
- tests/test_boolean.py::test_multiple_difference
- )
- local EPYTEST_IGNORE=(
- # require pyinstrument
- tests/test_sweep.py
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
-
-pkg_postinst() {
- optfeature_header "${PN} functionality can be extended by installing the following packages:"
- optfeature "making GUI applications with 3D stuff" dev-python/glooey
- optfeature "2D triangulations of polygons" dev-python/mapbox-earcut
- optfeature "loading a number of additional mesh formats" dev-python/meshio
- optfeature "figuring out how much memory we have" dev-python/psutil
- optfeature "marching cubes and other nice stuff" dev-python/scikit-image
-}
diff --git a/dev-python/trimesh/trimesh-4.5.3.ebuild b/dev-python/trimesh/trimesh-4.5.3.ebuild
index d21e980779c5..a1cbd7facd66 100644
--- a/dev-python/trimesh/trimesh-4.5.3.ebuild
+++ b/dev-python/trimesh/trimesh-4.5.3.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
RDEPEND="
dev-python/chardet[${PYTHON_USEDEP}]
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index c5ea64495c4f..ae7b50bdba4e 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -7,3 +7,4 @@ DIST uv-0.5.7-crates.tar.xz 46271856 BLAKE2B 5ffadeaaed6797be56f0bb74a696e1fe4d7
DIST uv-0.5.7.gh.tar.gz 2973450 BLAKE2B 7da87d81a53517c075963e5af538ac7f1c5ad8a47931d75c1d6ec8377d533910a2a8953a164f131f269a0d39859fab101f1f9300f22e3af00374d78395bf16b0 SHA512 1bfcfd4406df25b8fd14dba65d7fd16a6b7294e848a9fc5c206f7517cabbf480fac36378d6c03be8b06c978a5118acabf7feed432110a53d305ecc3476b39781
DIST uv-0.5.8-crates.tar.xz 46445240 BLAKE2B 119e471d7f9a851179e2e5d9cd15cb94476355e27db36b05378036b7f9a3e0021a33a2fd29ed9e5a67cd7d962783b3ea96145ca9092da0a6a114899ff2b712fd SHA512 d517fdc9e48b4cb4acacf1d3c986c7e348ee65c89cb5bdbd9c3947f66d450f7f59b5a4f5f0f45560d5241bc8f7756039014cf350a8aea22be876c197759e5aff
DIST uv-0.5.8.gh.tar.gz 3104599 BLAKE2B 40e80eec119c6403f1f2c9f9a0373eedf6cbd510165c385dd9c9647968183cb129b3849755913dcacbca0f85efea7e6d2f1c367a87e0d60ad3ce329cfb48a236 SHA512 eec291c3b0135a4063b6259033387e543dd2e422d169bd4bccbd86d899a3f05add4f6348249f4c6fc3c026b612bb92e5d9dd941f2f37613453a6730ff8f5844e
+DIST uv-0.5.9.gh.tar.gz 3127431 BLAKE2B fd3e1c31c232a535c4f4f1c8f58bc5609cfe87680da36261b0dccd0db40ac0287e7c04988476a916da6994659ec1a7a2eeceb0b1555a18d5ee96734cf2f0c257 SHA512 e022095b9014a6b760b6dd0dd37ca158cd3a4089faec74a14b8d7039a34e337a19e43b96bf1fc374999172f50031008c86476189adca9e45cebf353b573e557d
diff --git a/dev-python/uv/uv-0.5.6.ebuild b/dev-python/uv/uv-0.5.6.ebuild
index c67a480aec6d..6cbd917e3fc3 100644
--- a/dev-python/uv/uv-0.5.6.ebuild
+++ b/dev-python/uv/uv-0.5.6.ebuild
@@ -46,7 +46,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
diff --git a/dev-python/uv/uv-0.5.9.ebuild b/dev-python/uv/uv-0.5.9.ebuild
new file mode 100644
index 000000000000..9a8229ffe794
--- /dev/null
+++ b/dev-python/uv/uv-0.5.9.ebuild
@@ -0,0 +1,170 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;57832d0588fbb7aab824813481104761dc1c7740;pubgrub-%commit%'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;57832d0588fbb7aab824813481104761dc1c7740;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.80.1"
+
+inherit cargo check-reqs
+
+CRATE_PV=0.5.8
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/uvicorn/uvicorn-0.32.1.ebuild b/dev-python/uvicorn/uvicorn-0.32.1.ebuild
index c1433bec504a..dc783871b69c 100644
--- a/dev-python/uvicorn/uvicorn-0.32.1.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.32.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index e8609a3b4888..da9e718483da 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,2 +1 @@
-DIST virtualenv-20.27.1.tar.gz 6491145 BLAKE2B 807f4b2f699098ef3ddff3fad6af9244f1a33468522395a1cfb4e937cdb44b83c54224c4abafb65ba00b266b68b0e91eeadef5b1c4a175dd0c3288f5ddbce073 SHA512 36a84a3ada9ac79fbd6c23f77b45742421af0fdbb6ff4a83660ca3fe0d2a9b2e34e0bb5df633362bb98fcba042fd6d7e5f82587efa124cc1d7cf076df260fea5
DIST virtualenv-20.28.0.tar.gz 7650368 BLAKE2B b18ae57a929bb2a84a7ffa92771913dbd941cc2fc4c2962b18ce34dc105dcdfdb46b01366affea04ec44a7795b9c78a136b385eee8c457274079e65313d19896 SHA512 6a66663af74a240b9ad1cd3170f765ea44aea5f013d63c996a66af4aa0ad4e56c2c38c4f51d43181ac55c6099363694478d7ef15b640c56f8f801d3cd318966e
diff --git a/dev-python/virtualenv/virtualenv-20.27.1.ebuild b/dev-python/virtualenv/virtualenv-20.27.1.ebuild
deleted file mode 100644
index 9496c6370c28..000000000000
--- a/dev-python/virtualenv/virtualenv-20.27.1.ebuild
+++ /dev/null
@@ -1,118 +0,0 @@
-# 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/virtualenv/virtualenv-20.28.0.ebuild b/dev-python/virtualenv/virtualenv-20.28.0.ebuild
index e0d39662ed5d..c8204c9d2907 100644
--- a/dev-python/virtualenv/virtualenv-20.28.0.ebuild
+++ b/dev-python/virtualenv/virtualenv-20.28.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-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"
RDEPEND="
>=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
diff --git a/dev-python/webtest/Manifest b/dev-python/webtest/Manifest
index 19004ac6c0d5..25d970d10aa6 100644
--- a/dev-python/webtest/Manifest
+++ b/dev-python/webtest/Manifest
@@ -1,2 +1 @@
-DIST webtest-3.0.1.tar.gz 79278 BLAKE2B 3466e0d291cc8b02f5f11c8174dcf99cf56696d394de195fce721bb4f01cb76140bf39a955a264f84daad091ad8c37b6302e39c351373b77c4ec0d8a40d74575 SHA512 58417f2d533bd8339258f756d16d1f1cf26f89d8bc387cc7a7ba8fa2b30346454c053b531f79238939112b318fe1972d960d681c605e178d223acc53a8784be4
DIST webtest-3.0.2.tar.gz 79331 BLAKE2B 2fa124c25889e5d256861b9df6d2b7b3af18a8ea367197b7dcf38e6182c64e8c3fbba6855f1b95f69917caef6cc82bab3a24064f8ec496775fe1f972d838c63d SHA512 f94d78a09368575f772136f7263244d0dfacd344d94d819b15a7e7d5af2a4186cb88659249f1e7009754ac45fbb9f5a3ee0f9bb7f6eccf903f955b9072bb0433
diff --git a/dev-python/webtest/webtest-3.0.1.ebuild b/dev-python/webtest/webtest-3.0.1.ebuild
deleted file mode 100644
index 8c5b557c4e6b..000000000000
--- a/dev-python/webtest/webtest-3.0.1.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_PN="WebTest"
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Helper to test WSGI applications"
-HOMEPAGE="
- https://docs.pylonsproject.org/projects/webtest/en/latest/
- https://github.com/Pylons/webtest/
- https://pypi.org/project/WebTest/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
-
-RDEPEND="
- dev-python/paste[${PYTHON_USEDEP}]
- dev-python/pastedeploy[${PYTHON_USEDEP}]
- >=dev-python/webob-1.2[${PYTHON_USEDEP}]
- >=dev-python/waitress-0.8.5[${PYTHON_USEDEP}]
- dev-python/beautifulsoup4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/pyquery[${PYTHON_USEDEP}]
- dev-python/wsgiproxy2[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/legacy-cgi[${PYTHON_USEDEP}]
- ' 3.13)
- )
-"
-
-PATCHES=(
- "${FILESDIR}/webtest-2.0.33-no-pylons-theme.patch"
-)
-
-distutils_enable_sphinx docs
-distutils_enable_tests pytest
diff --git a/dev-python/webtest/webtest-3.0.2.ebuild b/dev-python/webtest/webtest-3.0.2.ebuild
index 743b1bccb30e..b49d6e31fc54 100644
--- a/dev-python/webtest/webtest-3.0.2.ebuild
+++ b/dev-python/webtest/webtest-3.0.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
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="
dev-python/paste[${PYTHON_USEDEP}]
diff --git a/dev-python/zope-interface/zope-interface-7.2.ebuild b/dev-python/zope-interface/zope-interface-7.2.ebuild
index c40b2aeb3b46..581088b5d18f 100644
--- a/dev-python/zope-interface/zope-interface-7.2.ebuild
+++ b/dev-python/zope-interface/zope-interface-7.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+native-extensions"
BDEPEND="