summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-17 19:13:19 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-17 19:13:19 +0000
commit924c6a6e377c71895de209229d6b0f08c13ece36 (patch)
tree57b50951ac6c234be2395070bd6682be11ed7640 /dev-python
parent0d0b0b913f6213904a6b870cfea6c05f7d03e3a1 (diff)
downloadbaldeagleos-repo-924c6a6e377c71895de209229d6b0f08c13ece36.tar.gz
baldeagleos-repo-924c6a6e377c71895de209229d6b0f08c13ece36.tar.xz
baldeagleos-repo-924c6a6e377c71895de209229d6b0f08c13ece36.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp-cors/Manifest1
-rw-r--r--dev-python/aiohttp-cors/aiohttp-cors-0.8.0.ebuild40
-rw-r--r--dev-python/aiohttp/Manifest1
-rw-r--r--dev-python/aiohttp/aiohttp-3.11.14.ebuild135
-rw-r--r--dev-python/async-lru/Manifest1
-rw-r--r--dev-python/async-lru/async-lru-2.0.5.ebuild40
-rw-r--r--dev-python/clang/Manifest1
-rw-r--r--dev-python/clang/clang-21.0.0_pre20250301.ebuild53
-rw-r--r--dev-python/coverage/Manifest1
-rw-r--r--dev-python/coverage/coverage-7.7.0.ebuild112
-rw-r--r--dev-python/deepdiff/Manifest2
-rw-r--r--dev-python/deepdiff/deepdiff-8.4.1.ebuild (renamed from dev-python/deepdiff/deepdiff-8.2.0.ebuild)2
-rw-r--r--dev-python/frozen-flask/frozen-flask-1.0.2.ebuild2
-rw-r--r--dev-python/huawei-lte-api/Manifest1
-rw-r--r--dev-python/huawei-lte-api/huawei-lte-api-1.11.0.ebuild40
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.129.3.ebuild110
-rw-r--r--dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild2
-rw-r--r--dev-python/keyutils/keyutils-0.6-r2.ebuild13
-rw-r--r--dev-python/libtmux/Manifest1
-rw-r--r--dev-python/libtmux/libtmux-0.46.1.ebuild53
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-21.0.0_pre20250301.ebuild45
-rw-r--r--dev-python/logutils/files/logutils-0.3.5-py313.patch90
-rw-r--r--dev-python/logutils/logutils-0.3.5-r1.ebuild18
-rw-r--r--dev-python/meshio/files/meshio-5.3.5-numpy-2.patch52
-rw-r--r--dev-python/meshio/meshio-5.3.5-r1.ebuild (renamed from dev-python/meshio/meshio-5.3.5.ebuild)7
-rw-r--r--dev-python/mkdocs-pymdownx-material-extras/Manifest1
-rw-r--r--dev-python/mkdocs-pymdownx-material-extras/mkdocs-pymdownx-material-extras-2.8.ebuild23
-rw-r--r--dev-python/nnpy/nnpy-1.4.2-r1.ebuild2
-rw-r--r--dev-python/numpy/Manifest1
-rw-r--r--dev-python/numpy/numpy-2.2.4.ebuild196
-rw-r--r--dev-python/outputcheck/outputcheck-0.4.2-r2.ebuild2
-rw-r--r--dev-python/pebble/Manifest1
-rw-r--r--dev-python/pebble/pebble-5.1.1.ebuild23
-rw-r--r--dev-python/pecan/pecan-1.5.1.ebuild2
-rw-r--r--dev-python/pelican-minify/pelican-minify-2.0.0.ebuild2
-rw-r--r--dev-python/pycryptodome/Manifest1
-rw-r--r--dev-python/pycryptodome/pycryptodome-3.22.0.ebuild60
-rw-r--r--dev-python/pydantic-core/Manifest11
-rw-r--r--dev-python/pydantic-core/pydantic-core-2.32.0.ebuild178
-rw-r--r--dev-python/pylatex/pylatex-1.4.2.ebuild2
-rw-r--r--dev-python/pypdf/Manifest1
-rw-r--r--dev-python/pypdf/pypdf-5.4.0.ebuild56
-rw-r--r--dev-python/pyqt6/pyqt6-6.8.1.ebuild2
-rw-r--r--dev-python/pysimdjson/pysimdjson-6.0.2.ebuild10
-rw-r--r--dev-python/pyspf/files/pyspf-2.0.14-py313.patch23
-rw-r--r--dev-python/pyspf/pyspf-2.0.14-r3.ebuild7
-rw-r--r--dev-python/pythran/pythran-0.17.0-r2.ebuild95
-rw-r--r--dev-python/ropemode/ropemode-0.6.1.ebuild2
-rw-r--r--dev-python/scipy/Manifest1
-rw-r--r--dev-python/scipy/scipy-1.15.2.ebuild24
-rw-r--r--dev-python/snaketrace/snaketrace-0.3.1-r1.ebuild2
-rw-r--r--dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild2
-rw-r--r--dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild2
-rw-r--r--dev-python/unearth/Manifest2
-rw-r--r--dev-python/unearth/unearth-0.17.3.ebuild (renamed from dev-python/unearth/unearth-0.17.1.ebuild)2
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.9-r1.ebuild2
-rw-r--r--dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild4
-rw-r--r--dev-python/zstandard/zstandard-0.23.0-r2.ebuild2
60 files changed, 1417 insertions, 152 deletions
diff --git a/dev-python/aiohttp-cors/Manifest b/dev-python/aiohttp-cors/Manifest
index 047e1846cfd0..79854b29911a 100644
--- a/dev-python/aiohttp-cors/Manifest
+++ b/dev-python/aiohttp-cors/Manifest
@@ -1 +1,2 @@
DIST aiohttp-cors-0.7.0.gh.tar.gz 39728 BLAKE2B 747499856272f551cf8e2e0911ff7cbb2c7cb8a1f3159327dd8f0d40cabbbd9713a1a9e30ef9c99f3f9642567c99025e049db837c89f907d6698a27005ac2632 SHA512 72e0b365b952c08a02c1123d7672cfea01063e2ff01743a71e10f804d22178edc0f1c6b7f87b7ed484ca7c24e89a32de90d0d279f2f5c060427319182f9bdd3b
+DIST aiohttp-cors-0.8.0.gh.tar.gz 40794 BLAKE2B 92a88f55b49e8cbc86bf970af336ffe742950f2ca2f15667edd37e4ec4daad7c70e3243bd10974569c618978d20a0cdd9b25f95942808d3de06de778dd4d5663 SHA512 6f4b648b62511dfa0ccfbfcb24bed8308576edc801496b34a4541f8f43a23edd04ea7881400e5550e756a422f63aa7935307cdda0a096612a6d66b0161e4a588
diff --git a/dev-python/aiohttp-cors/aiohttp-cors-0.8.0.ebuild b/dev-python/aiohttp-cors/aiohttp-cors-0.8.0.ebuild
new file mode 100644
index 000000000000..f61a55c1b9fd
--- /dev/null
+++ b/dev-python/aiohttp-cors/aiohttp-cors-0.8.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 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="Implements CORS support for aiohttp asyncio-powered asynchronous HTTP server"
+HOMEPAGE="
+ https://github.com/aio-libs/aiohttp-cors/
+ https://pypi.org/project/aiohttp_cors/
+"
+SRC_URI="
+ https://github.com/aio-libs/aiohttp-cors/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/aiohttp-3.9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-aiohttp[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p aiohttp -p asyncio --asyncio-mode=auto
+}
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest
index 7a28386ef99d..7fa17de6b897 100644
--- a/dev-python/aiohttp/Manifest
+++ b/dev-python/aiohttp/Manifest
@@ -1,3 +1,4 @@
DIST aiohttp-3.11.11.tar.gz 7669618 BLAKE2B 148c15503ca2b5449b8afe4d0cadb054625cd12c7e3d958547c7ba6b46ca4d4da1b4091db0f97e2003c8bc7a582c36f4c6aba062a8fe0b0894740042853b68e9 SHA512 7b5c6fdf15a3bdae49b28f6955f31f528aff29f635b8bbbe60f0677dea8fbbe5de8e09b3cbb85f8a846942470b9e44c9d287aaf9eb08f8e8d9fab3bd64079edf
DIST aiohttp-3.11.12.tar.gz 7673175 BLAKE2B 56f511d5bf10c60823bf3fef9552add3c8cac4e68dc6848931bc875417067bf61a0437adce0ffa13a47c595546f31b497f9044b0b3f2c6d48b31bff7a7b75905 SHA512 9f770f5182394acace994d40ca3b7028698242ce5e0caecd16b2e511c9463ae43e3fac9aabfc21afcbb7e17a44e324d19d88f7e1c81d0b4646f81923f9b4f160
DIST aiohttp-3.11.13.tar.gz 7674284 BLAKE2B 1975baf20e3d1b7fa5b6b5fbdf4fb916fea57fbfb2dbe9295300fa2952b1cd7fb8aaa814e37bb5c403e43ea9930ca35f9ca17bba5359e8c07e535dfc1d71d607 SHA512 cd9745ea07041e438bb42508ed86095582b7121d233719e9d16033c34d567063c2fd091536ab45ea1695ba118d49b955c56153fe7d6b51c2ee0a4760bfd816a9
+DIST aiohttp-3.11.14.tar.gz 7676994 BLAKE2B e8e048c01db9600df3bdc7bdc6e5066094b4575d08fef3ec7d0a78763a701cd3501dce435b80d3fbea28d2e7bf4110a5cc9e0ccec2bc3745835cadcb27528404 SHA512 38e51d3640b533d9bd639a59657bf7affbfc0b1a9dc40d77175d6528044e23b1e524589b9a10e0159eb8f9ba29e96b3e67529a9d11f1c53760a70800d813d13f
diff --git a/dev-python/aiohttp/aiohttp-3.11.14.ebuild b/dev-python/aiohttp/aiohttp-3.11.14.ebuild
new file mode 100644
index 000000000000..a0fbae8f985c
--- /dev/null
+++ b/dev-python/aiohttp/aiohttp-3.11.14.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="HTTP client/server for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/aiohttp/
+ https://pypi.org/project/aiohttp/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions test-rust"
+
+RDEPEND="
+ >=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}]
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ <dev-python/async-timeout-6[${PYTHON_USEDEP}]
+ >=dev-python/async-timeout-4.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ www-servers/gunicorn[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' 'python3*')
+ test-rust? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst )
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # increase the timeout a little
+ sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die
+ # xfail_strict fails on py3.10
+ sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die
+ sed -i -e 's:-Werror::' Makefile || die
+
+ distutils-r1_src_prepare
+}
+
+python_configure() {
+ if [[ ! -d tools && ${EPYTHON} != pypy3 ]] && use native-extensions
+ then
+ # workaround missing files
+ mkdir tools || die
+ > requirements/cython.txt || die
+ > tools/gen.py || die
+ chmod +x tools/gen.py || die
+ # force rehashing first
+ emake requirements/.hash/cython.txt.hash
+ > .update-pip || die
+ > .install-cython || die
+ emake cythonize
+ fi
+}
+
+python_compile() {
+ # implicitly disabled for pypy3
+ if ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # proxy is not packaged
+ tests/test_proxy_functional.py
+ # python_on_whales is not packaged
+ tests/autobahn/test_autobahn.py
+ # benchmarks
+ tests/test_benchmarks_client.py
+ tests/test_benchmarks_client_request.py
+ tests/test_benchmarks_client_ws.py
+ tests/test_benchmarks_cookiejar.py
+ tests/test_benchmarks_http_websocket.py
+ tests/test_benchmarks_http_writer.py
+ tests/test_benchmarks_web_fileresponse.py
+ tests/test_benchmarks_web_middleware.py
+ tests/test_benchmarks_web_response.py
+ tests/test_benchmarks_web_urldispatcher.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_client_session.py::test_client_session_timeout_zero
+ # broken by irrelevant deprecation warnings
+ tests/test_circular_imports.py::test_no_warnings
+ )
+
+ # upstream unconditionally blocks building C extensions
+ # on PyPy3 but the test suite needs an explicit switch
+ if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then
+ local -x AIOHTTP_NO_EXTENSIONS=1
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin
+ rm -rf aiohttp || die
+ epytest -m "not internal and not dev_mode" \
+ -p rerunfailures --reruns=5
+}
diff --git a/dev-python/async-lru/Manifest b/dev-python/async-lru/Manifest
index be356de12eb5..0e43bdd59b8f 100644
--- a/dev-python/async-lru/Manifest
+++ b/dev-python/async-lru/Manifest
@@ -1 +1,2 @@
DIST async-lru-2.0.4.gh.tar.gz 13084 BLAKE2B dc3316e63783f36a446fc0d3565e018340787822b4a2663b9759d8bf5222277526b9a1285a34c3d84ccd245f75c6a53d9a693cc13c2b101bcb4bc97fa31835bf SHA512 aed4a043bfb323c1fc01f93def11fe597141778bd8437bd90189e2b6da26b0bb412fa72fb0d12a40b771571f3cb5f06fed8302379aec2e8e0318eab179b64912
+DIST async-lru-2.0.5.gh.tar.gz 13537 BLAKE2B 22adf45b8014d2a2ebd0983805b2478f75d3e22ff5498e79b76f45bee868aae159afc57b119051ad24661a300ade943dfbe2f1ad0e2db3949a091755e28e2131 SHA512 25d4684c0101c51b92a1173984bc6da3f4baaa2f5ac7bd6fb6ede64dc1ede5635f0f1ff3837e17e38c37f3d8a5e3268ffe2e92b6e9cf51d0f9470887dffe93c4
diff --git a/dev-python/async-lru/async-lru-2.0.5.ebuild b/dev-python/async-lru/async-lru-2.0.5.ebuild
new file mode 100644
index 000000000000..686b9d8a11b4
--- /dev/null
+++ b/dev-python/async-lru/async-lru-2.0.5.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2021-2025 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="Simple lru_cache for asyncio"
+HOMEPAGE="
+ https://github.com/aio-libs/async-lru/
+ https://pypi.org/project/async-lru/
+"
+SRC_URI="
+ https://github.com/aio-libs/async-lru/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index c18c84ef8018..d3cf27d0ad4f 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -12,5 +12,4 @@ DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818bef
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
-DIST llvm-project-7e8a06cfa4a2951b8ee77e19e34926e6e535b4d1.tar.gz 228792296 BLAKE2B cd9357bdca9342770820f9fadfbd0b129a83324847f18e2ebac1fed8df4afb101aba2dc19d90264ae1e2d5692e34149ca24ef82a4973e7aeddb157268bb411b6 SHA512 9821a34a559e1db596940d76ce9388360baea43c1a9de814f567bfcf1428a0c6e3ced61b1e07537058454785d9c3aa3f443cbcf742a01fb40dd20b476a906442
DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14
diff --git a/dev-python/clang/clang-21.0.0_pre20250301.ebuild b/dev-python/clang/clang-21.0.0_pre20250301.ebuild
deleted file mode 100644
index a99c5601e047..000000000000
--- a/dev-python/clang/clang-21.0.0_pre20250301.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-inherit llvm.org python-r1
-
-DESCRIPTION="Python bindings for llvm-core/clang"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# The module is opening libclang.so directly, and doing some blasphemy
-# on top of it.
-DEPEND="
- >=llvm-core/clang-${PV}:*
- !llvm-core/llvm:0[clang(-),python(-)]
- !llvm-core/clang:0[python(-)]
-"
-RDEPEND="
- ${DEPEND}
- ${PYTHON_DEPS}
-"
-BDEPEND="
- ${PYTHON_DEPS}
- test? (
- llvm-core/clang:${LLVM_MAJOR}
- )
-"
-
-LLVM_COMPONENTS=( clang/bindings/python )
-llvm.org_set_globals
-
-python_test() {
- # tests rely on results from a specific clang version, so override
- # the search path
- local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
- local -x CLANG_NO_DEFAULT_CONFIG=1
- "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
-}
-
-src_test() {
- python_foreach_impl python_test
-}
-
-src_install() {
- python_foreach_impl python_domodule clang
-}
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 6637535cb66f..55b5c20bbf19 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1,3 +1,4 @@
DIST coverage-7.6.10.tar.gz 803868 BLAKE2B 88ab379f33ca3056b03020befa56406b3e4d8ce57f9152abddefbf77186dbccd993e855078ea6f61ed2da3d198aab9b63e65fb9db3789a80bb080b1907e9de80 SHA512 3badf42f8f1f1dc19ff7dd7cca7fe57cd738364fea71b1fee52ec7774fbebd2bb241154d2ca06adb6ed87766179bcf0b6eb9a5120af5ec8f3df7b6fd0c27fa02
DIST coverage-7.6.11.tar.gz 805460 BLAKE2B f035dfb27242926727875a806acd6725720d8828de0285cdcdc3aac406395b2648b00c75b206338ff282d0c98e70d2abf4fc13c4a1862317c7fd88c5d83de1b4 SHA512 83ce4fd99900bb4902fc25ecf386e0128f0c073f5c1ce3403149e175d8a55b177209c9413ae33b1ab3d2f6decdd4614f5a5a3c3f36d326cfc0d62c13e64d1250
DIST coverage-7.6.12.tar.gz 805941 BLAKE2B bebcd2f29706445ac73ca1e1ba7a80b88eb7b71ee0f475ea6fe4d7e2bd535b709af6cc5e1dda9734e9487cdcf8d3b6f24c96eb2e7161a9d8356afe733b162339 SHA512 6f5f089938b0d107796ec7f5eb62047533bb45377612845cc044f44ceb10285252783d5ad1aefde698374d8330c012ff59007d21b00e4cee79c268fac70f6a71
+DIST coverage-7.7.0.tar.gz 809969 BLAKE2B fd55156b50d44c4ff4304cc0b14a634cb74a170d7558c33479618f4d402c5d0cbf3fe1c37f5f25062a02ac32c07d26ff7c821acba8cbb44f398c10d777739988 SHA512 5025d1305d0d4ff6cfc9d7494c5c027c26645a94f572d99026a24d497d8c9f43ad9df230f864fc92e88ebb0f95b0a377206cbbb15548dd7da5a1c4ddb4d77d63
diff --git a/dev-python/coverage/coverage-7.7.0.ebuild b/dev-python/coverage/coverage-7.7.0.ebuild
new file mode 100644
index 000000000000..766320211b30
--- /dev/null
+++ b/dev-python/coverage/coverage-7.7.0.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+ https://coverage.readthedocs.io/en/latest/
+ https://github.com/nedbat/coveragepy/
+ https://pypi.org/project/coverage/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/flaky[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e '/addopts/s:-q -n auto::' pyproject.toml || die
+}
+
+python_compile() {
+ if ! use native-extensions; then
+ local -x COVERAGE_DISABLE_EXTENSION=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+test_tracer() {
+ local -x COVERAGE_CORE=${1}
+ einfo " Testing with the ${COVERAGE_CORE} core ..."
+ epytest -p flaky -p hypothesis -p xdist tests
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO: fails because of additional "Terminated" print on SIGTERM
+ tests/test_concurrency.py::SigtermTest::test_sigterm_threading_saves_data
+ # broken because of pytest plugins explicity loaded
+ tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
+ # these expect specific availability of C extension matching
+ # COVERAGE_CORE (which breaks testing pytracer on CPython)
+ tests/test_cmdline.py::CmdLineStdoutTest::test_version
+ tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
+ # mismatch of expected concurrency in error message
+ # TODO: report upstream?
+ tests/test_concurrency.py::ConcurrencyTest::test_greenlet
+ tests/test_concurrency.py::ConcurrencyTest::test_greenlet_simple_code
+ )
+ local EPYTEST_IGNORE=(
+ # pip these days insists on fetching build deps from Internet
+ tests/test_venv.py
+ )
+
+ "${EPYTHON}" igor.py zip_mods || die
+
+ local -x COVERAGE_TESTING=True
+ # TODO: figure out why they can't be imported inside test env
+ local -x COVERAGE_NO_CONTRACTS=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+
+ local prev_opt=$(shopt -p nullglob)
+ shopt -s nullglob
+ local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+ ${prev_opt}
+
+ if [[ -n ${c_ext} ]]; then
+ cp "${c_ext}" coverage/ || die
+ test_tracer ctrace
+ fi
+
+ test_tracer pytrace
+
+ case ${EPYTHON} in
+ python3.1[01]|pypy3|pypy3.11)
+ ;;
+ *)
+ # available since Python 3.12
+ test_tracer sysmon
+ ;;
+ esac
+
+ if [[ -n ${c_ext} ]]; then
+ rm coverage/*.so || die
+ fi
+}
diff --git a/dev-python/deepdiff/Manifest b/dev-python/deepdiff/Manifest
index 1fe342203648..955cd4b693fa 100644
--- a/dev-python/deepdiff/Manifest
+++ b/dev-python/deepdiff/Manifest
@@ -1,2 +1,2 @@
-DIST deepdiff-8.2.0.tar.gz 432573 BLAKE2B 6259761631b7706dc9143e6ff941b79ea956270e332f9c3026e35752ff921647e19ecfa50ca7f68fce40c1f6c9643b3f64f008168dbdca0ffaa322acf9a8a9d8 SHA512 ef1883b5300eba4f99f5fed84fc63c22f5473f1cbc5790cef9c0ce7b1a65c28537756f4266259133a4b808734b2cba295c542630a2f0b8a0e4d8c5b58c14028d
DIST deepdiff-8.3.0.tar.gz 509468 BLAKE2B 24e6f610c1d90fdb2b9d20939e2bb053db690b284ce00d76f0859e504dfa6dd434c52c424b7da2b01688647791e336a53209dc31dab5adb51b48a92e598da7da SHA512 5327a738d182a9e546d5a827d3a5d1e04323e7765d49f9f7d51dc20c8fc13869bb16b84ee193c478f43bb47901e16cc6ec45c890967de061a839a33d636040eb
+DIST deepdiff-8.4.1.tar.gz 514141 BLAKE2B f2dd5910c35f949f34c7846228a04eeb16a90315181bccdaf53a7fd5e518c79ea67da6da60481ba3f39515f226c2fb71ebf25a12b31cef59f80c7fa8f4f36687 SHA512 fc7f16c4dd5b66430a6aaa5e2ecb089ad7b5713ef57b190a4d74f686ac101baf6fd7d5e6655f15b526b410666d0fd05b7b369f473d2f8f7de3731c044fdcd0dc
diff --git a/dev-python/deepdiff/deepdiff-8.2.0.ebuild b/dev-python/deepdiff/deepdiff-8.4.1.ebuild
index fa0755ebf899..8a727daa1349 100644
--- a/dev-python/deepdiff/deepdiff-8.2.0.ebuild
+++ b/dev-python/deepdiff/deepdiff-8.4.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/click-8.1.3[${PYTHON_USEDEP}]
diff --git a/dev-python/frozen-flask/frozen-flask-1.0.2.ebuild b/dev-python/frozen-flask/frozen-flask-1.0.2.ebuild
index 84a598af744a..834b4ce08967 100644
--- a/dev-python/frozen-flask/frozen-flask-1.0.2.ebuild
+++ b/dev-python/frozen-flask/frozen-flask-1.0.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/huawei-lte-api/Manifest b/dev-python/huawei-lte-api/Manifest
index 3b24cca2c156..6534f100ac98 100644
--- a/dev-python/huawei-lte-api/Manifest
+++ b/dev-python/huawei-lte-api/Manifest
@@ -1 +1,2 @@
DIST huawei-lte-api-1.10.gh.tar.gz 43853 BLAKE2B 568da364ecc709716a040a5f6c32f79b028ceca42ffce29949d064115279a4653544df50e30ac07ad873a1e98ba203093fcf000bca65b4b1ea6f4f009217d4c8 SHA512 7ffe128817bf38d60ee5dcbdb6668516a3ab47a02d34868ab9c9cc6b26cfae10c334a779b4ba63f0ec635b834fce46b12409b913f7c9b45a746ff5ba875e1758
+DIST huawei-lte-api-1.11.0.gh.tar.gz 45445 BLAKE2B 8bb2deaeb91eb02fbafd6b177b0299f17b7d459b51c963bad938371daa47f66daeea11296f64a75ebf11608f9ca144857b5ba86a66bf3f2f1d0512e559cf8f4f SHA512 04e01c54d6393b93947bd054a3f5723ebc77566bb384fdac6b9848000d4b5e398822e0ca91cc52fc643f64a6409113cf798c1f8b0e3931d5b2f5f1af90ffe344
diff --git a/dev-python/huawei-lte-api/huawei-lte-api-1.11.0.ebuild b/dev-python/huawei-lte-api/huawei-lte-api-1.11.0.ebuild
new file mode 100644
index 000000000000..d87d95eafdcb
--- /dev/null
+++ b/dev-python/huawei-lte-api/huawei-lte-api-1.11.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 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="API For huawei LAN/WAN LTE Modems"
+HOMEPAGE="
+ https://github.com/Salamek/huawei-lte-api/
+ https://pypi.org/project/huawei-lte-api/
+"
+SRC_URI="
+ https://github.com/Salamek/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/pycryptodome[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+"
+
+python_prepare_all() {
+ # make cryptodome-friendly
+ sed -i -e 's:pycryptodomex:pycryptodome:' setup.py || die
+ find -name '*.py' -exec \
+ sed -i -e 's:Cryptodome:Crypto:g' {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+distutils_enable_tests pytest
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 01cd042c77fd..a78ae683637b 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -4,3 +4,4 @@ DIST hypothesis-6.128.2.gh.tar.gz 9522813 BLAKE2B cc466d24bf45b5a0916f47d6a7ed12
DIST hypothesis-6.129.0.gh.tar.gz 9526187 BLAKE2B 632fa6dfa60725caab11e12682389d48cd54b0bbe093a86a8cbda8a251d4b969e394afe32a6d439266a0b226c474879afcbda565f9cfbf81d3b3871c2a06e2f4 SHA512 e0d0e79631d26c4f9813f750185568fc8c19d37cb5cbcd6ebac69a4da73338a28cd54408753d2c3a200855e710142582f7057b24331d7233aea221740db66d6e
DIST hypothesis-6.129.1.gh.tar.gz 9526811 BLAKE2B fe69773a70d8c6615f586dda7acacfbc2f9309659faedcecfd12317124c5c868f53987f9e56670f09a44de96d9baec08a43823d15ad7dc847f4260ed8deb0486 SHA512 3745d590dcfc968a96eb62a6f159214b5741f2de1e03bd57bb22663237801f7d4d5df98c0da9f798d1b127e7c43039527f903994e3b9a884d1f654d2a842fea8
DIST hypothesis-6.129.2.gh.tar.gz 9527087 BLAKE2B 675261d8ed0c77ead1555e0ae26b6a199886b3189cb46f193af492313428c171d129b5aefd6f52e3f6ecd634302c4356643b0324547aa19cd4bb190114887354 SHA512 c71342ea5f53ca7374b0311a8185b7ab40802cc68c76225d87db7a8f2911942768bca37a6f229b22c6f2c53fcf531d4d5a7a72de69d4172db598a298d4aa8681
+DIST hypothesis-6.129.3.gh.tar.gz 9527091 BLAKE2B e4baafe9e9af45d940a207d55d1a03bd2998d9bdabcdc724830d52bf9fd6ded528606fd7d82a17684fc58ed2ea3db3ae96f7da342fdf45aacd354a99af18ffd3 SHA512 7a3fdc7e7353a2b5fb8c5e98008218d1ed58112839f1afc88678eb0fb5bde7efd77a763bb2174e5b6acdc3edd3043d69eed74f2453e5fddb1bdf05efd07ee442
diff --git a/dev-python/hypothesis/hypothesis-6.129.3.ebuild b/dev-python/hypothesis/hypothesis-6.129.3.ebuild
new file mode 100644
index 000000000000..08befcf116e3
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.129.3.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( pypy3 python3_{10..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ ;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # TODO
+ 'hypothesis-python/tests/cover/test_reflection.py::test_clean_source[case-5]'
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -p rerunfailures --reruns=5 \
+ tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild b/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild
index a312b8801c25..96231eaf3464 100644
--- a/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild
+++ b/dev-python/jinja2-pluralize/jinja2-pluralize-0.3.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/keyutils/keyutils-0.6-r2.ebuild b/dev-python/keyutils/keyutils-0.6-r2.ebuild
index ae29ce1c9d67..0de49700e309 100644
--- a/dev-python/keyutils/keyutils-0.6-r2.ebuild
+++ b/dev-python/keyutils/keyutils-0.6-r2.ebuild
@@ -1,16 +1,21 @@
-# Copyright 2021-2024 Gentoo Authors
+# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
inherit distutils-r1
DESCRIPTION="A set of python bindings for keyutils"
HOMEPAGE="https://github.com/sassoftware/python-keyutils/"
-SRC_URI="https://github.com/sassoftware/python-keyutils/archive/refs/tags/${PV}.tar.gz -> python-keyutils-${PV}.gh.tar.gz"
+SRC_URI="
+ https://github.com/sassoftware/python-keyutils/archive/${PV}.tar.gz
+ -> python-keyutils-${PV}.gh.tar.gz
+"
+S="${WORKDIR}/python-keyutils-${PV}"
LICENSE="Apache-2.0"
SLOT="0"
@@ -22,8 +27,6 @@ RDEPEND="${DEPEND}"
distutils_enable_tests pytest
-S="${WORKDIR}/python-keyutils-${PV}"
-
src_prepare() {
default
sed -i -e '/pytest-runner/d' setup.py || die
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index 465b9e600b07..51e36db00bdc 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -5,3 +5,4 @@ DIST libtmux-0.42.0.gh.tar.gz 318655 BLAKE2B 5d462bd78e81bd38cfb0c42a2100287fc79
DIST libtmux-0.44.2.gh.tar.gz 326828 BLAKE2B ac2441ac13157bdce2465b1388f3e1570eb48193f26a37cfe6d68e56e93f659410af2851be20cd2f94011298c2b93a54eee20f5d07b4fbff15d26e00bbae6c0c SHA512 383784bb335c0f6e8200e20e8afd5b643658ee081a2c07cb9df2ee682d4b411b3ea17c7607587b8855f7d6571f5db7dd75318eefdd8946e6e38560309b5fa35f
DIST libtmux-0.45.0.gh.tar.gz 329763 BLAKE2B 3c8184b9e7ab874b4a85e3d3c3be3e96e48bfb14a02bf26a683062374c0a5258d911026a8c994639514668c775ab3855201d1daa466a20041635aeb978cffe24 SHA512 e1f921bddabcc26f034c331d3b9e7082c3d6d4cdbd8f0173e1499d8a05fd80ca79317409b29cb9ac95827ccb6e9127c58dffa6198ea5a2dee547fdaef23ba2ee
DIST libtmux-0.46.0.gh.tar.gz 337117 BLAKE2B 23caa10584c943ee1e7c162ce97d9d18d297a52fa15a4ac66be2e29314499d2f99bfa5a3061cef6ad80dc94ba8bf9362725d92e74385973aa717849a78388ac4 SHA512 4143639f0219c5751e69718d79c08efec8f9a6f5229aa48f6a7f7fe6c32486ee4b92f6d962fa6ef8f396852a688e373daf0d416f29b95036d015b3fcbba063a9
+DIST libtmux-0.46.1.gh.tar.gz 337302 BLAKE2B b0e086aab882c9ec82ee5606a7ea02e81a549d3009bf8b0f4bc736d8ba8cc7130afd024781c95e332527bdb72202346558d90a4989c5ff2cbb7f6836960e88ef SHA512 41b526d40373d1251260cea8e4fc94cb176275f2c399030b66266663e831f733fb017bebc32e92b9809212c064b21e539853ec780b8f75f0afe01db8b5cb2236
diff --git a/dev-python/libtmux/libtmux-0.46.1.ebuild b/dev-python/libtmux/libtmux-0.46.1.ebuild
new file mode 100644
index 000000000000..a96cba189ffe
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.46.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 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="Typed library that provides an ORM wrapper for tmux, a terminal multiplexer"
+HOMEPAGE="
+ https://libtmux.git-pull.com/
+ https://github.com/tmux-python/libtmux/
+ https://pypi.org/project/libtmux/
+"
+SRC_URI="
+ https://github.com/tmux-python/libtmux/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=app-misc/tmux-3.0a
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ local issues="https://github.com/tmux-python/libtmux/issues/"
+ sed -r -i "s|:issue:\`([[:digit:]]+)\`|\`issue \1 ${issues}\1\`|" CHANGES || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # tests/test_window.py::test_fresh_window_data fails if TMUX_PANE is set
+ # https://bugs.gentoo.org/927158
+ local -x TMUX_PANE=
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=libtmux.pytest_plugin
+
+ epytest -o addopts= -p pytest_mock -p rerunfailures --reruns=5 tests
+}
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index c18c84ef8018..d3cf27d0ad4f 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -12,5 +12,4 @@ DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818bef
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
-DIST llvm-project-7e8a06cfa4a2951b8ee77e19e34926e6e535b4d1.tar.gz 228792296 BLAKE2B cd9357bdca9342770820f9fadfbd0b129a83324847f18e2ebac1fed8df4afb101aba2dc19d90264ae1e2d5692e34149ca24ef82a4973e7aeddb157268bb411b6 SHA512 9821a34a559e1db596940d76ce9388360baea43c1a9de814f567bfcf1428a0c6e3ced61b1e07537058454785d9c3aa3f443cbcf742a01fb40dd20b476a906442
DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14
diff --git a/dev-python/lit/lit-21.0.0_pre20250301.ebuild b/dev-python/lit/lit-21.0.0_pre20250301.ebuild
deleted file mode 100644
index 4230fa63b2a4..000000000000
--- a/dev-python/lit/lit-21.0.0_pre20250301.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 llvm.org
-
-DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# Tests require 'FileCheck' and 'not' utilities (from llvm)
-BDEPEND="
- test? (
- dev-python/psutil[${PYTHON_USEDEP}]
- llvm-core/llvm
- )
-"
-
-LLVM_COMPONENTS=( llvm/utils/lit )
-llvm.org_set_globals
-
-# TODO: move the manpage generation here (from llvm-core/llvm)
-
-src_prepare() {
- # flaky test
- # https://github.com/llvm/llvm-project/issues/72022
- rm tests/progress-bar.py || die
-
- cd "${WORKDIR}" || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x LIT_PRESERVES_TMP=1
- local litflags=$(get_lit_flags)
- ./lit.py ${litflags//;/ } tests || die
-}
diff --git a/dev-python/logutils/files/logutils-0.3.5-py313.patch b/dev-python/logutils/files/logutils-0.3.5-py313.patch
new file mode 100644
index 000000000000..e6b804f2e042
--- /dev/null
+++ b/dev-python/logutils/files/logutils-0.3.5-py313.patch
@@ -0,0 +1,90 @@
+From f33a518fc04bcb4f875b2c741c7bbee8db9e01d8 Mon Sep 17 00:00:00 2001
+From: Arne Keller <arne.keller@posteo.de>
+Date: Sat, 11 Jan 2025 11:27:21 +0100
+Subject: [PATCH] Fix Python 3.13 compatibility
+
+---
+ logutils/dictconfig.py | 9 +++++++--
+ tests/test_dictconfig.py | 14 ++++++++++----
+ 2 files changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/logutils/dictconfig.py b/logutils/dictconfig.py
+index c774552..2e33031 100644
+--- a/logutils/dictconfig.py
++++ b/logutils/dictconfig.py
+@@ -290,7 +290,12 @@ class DictConfigurator(BaseConfigurator):
+ raise ValueError("Unsupported version: %s" % config['version'])
+ incremental = config.pop('incremental', False)
+ EMPTY_DICT = {}
+- logging._acquireLock()
++ # Python 3.13+ renamed these functions
++ try:
++ acquire, release = logging._prepareFork, logging._afterFork
++ except AttributeError:
++ acquire, release = logging._acquireLock, logging._releaseLock
++ acquire()
+ try:
+ if incremental:
+ handlers = config.get('handlers', EMPTY_DICT)
+@@ -431,7 +436,7 @@ class DictConfigurator(BaseConfigurator):
+ raise ValueError('Unable to configure root '
+ 'logger: %s' % e)
+ finally:
+- logging._releaseLock()
++ release()
+
+ def configure_formatter(self, config):
+ """Configure a formatter from a dictionary."""
+diff --git a/tests/test_dictconfig.py b/tests/test_dictconfig.py
+index 3aee984..e56d267 100644
+--- a/tests/test_dictconfig.py
++++ b/tests/test_dictconfig.py
+@@ -30,6 +30,12 @@ def handlerFunc():
+ class CustomHandler(logging.StreamHandler):
+ pass
+
++# Python 3.13+ renamed these functions
++try:
++ acquire, release = logging._prepareFork, logging._afterFork
++except AttributeError:
++ acquire, release = logging._acquireLock, logging._releaseLock
++
+ class ConfigDictTest(unittest.TestCase):
+
+ """Reading logging config from a dictionary."""
+@@ -39,7 +45,7 @@ class ConfigDictTest(unittest.TestCase):
+ self.adapter = LoggerAdapter(l, {})
+
+ logger_dict = logging.getLogger().manager.loggerDict
+- logging._acquireLock()
++ acquire()
+ try:
+ self.saved_handlers = logging._handlers.copy()
+ self.saved_handler_list = logging._handlerList[:]
+@@ -50,7 +56,7 @@ class ConfigDictTest(unittest.TestCase):
+ self.saved_level_to_name = logging._levelToName.copy()
+ self.saved_name_to_level = logging._nameToLevel.copy()
+ finally:
+- logging._releaseLock()
++ release()
+
+ self.root_logger = logging.getLogger("")
+ self.original_logging_level = self.root_logger.getEffectiveLevel()
+@@ -58,7 +64,7 @@ class ConfigDictTest(unittest.TestCase):
+
+ def tearDown(self):
+ self.root_logger.setLevel(self.original_logging_level)
+- logging._acquireLock()
++ acquire()
+ try:
+ if hasattr(logging, '_levelNames'):
+ logging._levelNames.clear()
+@@ -75,7 +81,7 @@ class ConfigDictTest(unittest.TestCase):
+ loggerDict.clear()
+ loggerDict.update(self.saved_loggers)
+ finally:
+- logging._releaseLock()
++ release()
+
+ message_num = 0
+
diff --git a/dev-python/logutils/logutils-0.3.5-r1.ebuild b/dev-python/logutils/logutils-0.3.5-r1.ebuild
index 72c5cfc007d2..2cf438455758 100644
--- a/dev-python/logutils/logutils-0.3.5-r1.ebuild
+++ b/dev-python/logutils/logutils-0.3.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -9,7 +9,10 @@ PYTHON_COMPAT=( python3_{9,10,11,12,13} )
inherit distutils-r1 pypi
DESCRIPTION="The logutils package provides a set of handlers for the Python standard"
-HOMEPAGE="https://bitbucket.org/vinay.sajip/logutils"
+HOMEPAGE="
+ https://bitbucket.org/vinay.sajip/logutils/
+ https://pypi.org/project/logutils/
+"
LICENSE="BSD"
SLOT="0"
@@ -24,6 +27,17 @@ BDEPEND="
distutils_enable_tests unittest
+PATCHES=(
+ # https://bitbucket.org/vinay.sajip/logutils/pull-requests/5
+ "${FILESDIR}/${P}-py313.patch"
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:assertEquals:assertEqual:' tests/*.py || die
+}
+
python_test() {
eunittest -s tests
}
diff --git a/dev-python/meshio/files/meshio-5.3.5-numpy-2.patch b/dev-python/meshio/files/meshio-5.3.5-numpy-2.patch
new file mode 100644
index 000000000000..dc7662c3042f
--- /dev/null
+++ b/dev-python/meshio/files/meshio-5.3.5-numpy-2.patch
@@ -0,0 +1,52 @@
+diff --git a/src/meshio/dolfin/_dolfin.py b/src/meshio/dolfin/_dolfin.py
+index e43dbd54..0a2c1eaa 100644
+--- a/src/meshio/dolfin/_dolfin.py
++++ b/src/meshio/dolfin/_dolfin.py
+@@ -207,7 +207,7 @@ def _write_cell_data(filename, dim, cell_data):
+ )
+
+ for k, value in enumerate(cell_data):
+- ET.SubElement(mesh_function, "entity", index=str(k), value=repr(value))
++ ET.SubElement(mesh_function, "entity", index=str(k), value=str(value))
+
+ tree = ET.ElementTree(dolfin)
+ tree.write(filename)
+diff --git a/src/meshio/gmsh/common.py b/src/meshio/gmsh/common.py
+index 717e82ee..adcae241 100644
+--- a/src/meshio/gmsh/common.py
++++ b/src/meshio/gmsh/common.py
+@@ -273,7 +273,7 @@ def _write_data(fh, tag, name, data, binary):
+ tmp.tofile(fh)
+ fh.write(b"\n")
+ else:
+- fmt = " ".join(["{}"] + ["{!r}"] * num_components) + "\n"
++ fmt = " ".join(["{}"] * (num_components + 1)) + "\n"
+ # TODO unify
+ if num_components == 1:
+ for k, x in enumerate(data):
+diff --git a/src/meshio/mdpa/_mdpa.py b/src/meshio/mdpa/_mdpa.py
+index afa39eca..e49358af 100644
+--- a/src/meshio/mdpa/_mdpa.py
++++ b/src/meshio/mdpa/_mdpa.py
+@@ -418,7 +418,7 @@ def _write_data(fh, tag, name, data, binary):
+ data = data[:, 0]
+
+ # Actually write the data
+- fmt = " ".join(["{}"] + ["{!r}"] * num_components) + "\n"
++ fmt = " ".join(["{}"] * (num_components + 1)) + "\n"
+ # TODO unify
+ if num_components == 1:
+ for k, x in enumerate(data):
+diff --git a/src/meshio/ugrid/_ugrid.py b/src/meshio/ugrid/_ugrid.py
+index 6fa57c09..f1d5818d 100644
+--- a/src/meshio/ugrid/_ugrid.py
++++ b/src/meshio/ugrid/_ugrid.py
+@@ -145,7 +145,7 @@ def read_buffer(f, file_type):
+ def _write_section(f, file_type, array, dtype):
+ if file_type["type"] == "ascii":
+ ncols = array.shape[1]
+- fmt = " ".join(["%r"] * ncols)
++ fmt = " ".join(["%s"] * ncols)
+ np.savetxt(f, array, fmt=fmt)
+ else:
+ array.astype(dtype).tofile(f)
diff --git a/dev-python/meshio/meshio-5.3.5.ebuild b/dev-python/meshio/meshio-5.3.5-r1.ebuild
index e9496d843ffb..a0332435860d 100644
--- a/dev-python/meshio/meshio-5.3.5.ebuild
+++ b/dev-python/meshio/meshio-5.3.5-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -30,3 +30,8 @@ BDEPEND="
"
distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/nschloe/meshio/pull/1513
+ "${FILESDIR}/${P}-numpy-2.patch"
+)
diff --git a/dev-python/mkdocs-pymdownx-material-extras/Manifest b/dev-python/mkdocs-pymdownx-material-extras/Manifest
index 3946355473dd..9ec5d67e9cbf 100644
--- a/dev-python/mkdocs-pymdownx-material-extras/Manifest
+++ b/dev-python/mkdocs-pymdownx-material-extras/Manifest
@@ -1 +1,2 @@
DIST mkdocs_pymdownx_material_extras-2.7.tar.gz 25619 BLAKE2B 5be865ef8d4c5dbcdebaee9ee36d239b40e5bc3df5241c9f3fc036a26fc54cc93f328b4dfdfdbb8e5df018e72c783c5a6c7ec80831e1aba95cdf1fc2be7a13ce SHA512 3fac8fed8e045e8e98eaf024a53d5522a4cd42b62c140ece98f2c6615fcfdaf5e2670d91aa90abe9e3c9dcea56657c0f0379b24b08eda0cca263034f006dcb46
+DIST mkdocs_pymdownx_material_extras-2.8.tar.gz 26512 BLAKE2B 09982c3ebaa916259e5b1dcfbcb83ca3cbbad62faf71f44ef6a67d9fc61932ac3332b95507c1114c8873d5bbc016719fa510432ef8dd95eb681bf4fcda87f51d SHA512 f6c9d8990eabef9fb790d42fc38fa5b9b8d7ddc62c2a02f1ca114f85d7a793f885b8be9eedc5302abe35f7e3eedda2c5eb98c9fd0c6f5a2600d60bdc73b4f8ac
diff --git a/dev-python/mkdocs-pymdownx-material-extras/mkdocs-pymdownx-material-extras-2.8.ebuild b/dev-python/mkdocs-pymdownx-material-extras/mkdocs-pymdownx-material-extras-2.8.ebuild
new file mode 100644
index 000000000000..f87d217183ac
--- /dev/null
+++ b/dev-python/mkdocs-pymdownx-material-extras/mkdocs-pymdownx-material-extras-2.8.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Custom alterations based on Mkdocs-Material"
+HOMEPAGE="
+ https://github.com/facelessuser/mkdocs_pymdownx_material_extras/
+ https://pypi.org/project/mkdocs-pymdownx-material-extras/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/mkdocs-material-8.3.3[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/nnpy/nnpy-1.4.2-r1.ebuild b/dev-python/nnpy/nnpy-1.4.2-r1.ebuild
index 54a53c46bd86..0b3f337f08a2 100644
--- a/dev-python/nnpy/nnpy-1.4.2-r1.ebuild
+++ b/dev-python/nnpy/nnpy-1.4.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
index f7185a80d97c..8b1ee390a74e 100644
--- a/dev-python/numpy/Manifest
+++ b/dev-python/numpy/Manifest
@@ -3,3 +3,4 @@ DIST numpy-2.0.2.tar.gz 18902015 BLAKE2B 63f993e3429bff1dac1ff79fad23a36a2493fd2
DIST numpy-2.1.3.tar.gz 20166090 BLAKE2B 746d343b17039d58738358168a613a2b85d6fb9cad1eeb367b851cd8d46fd42647990b47f0b4fb794ce5c4da2fa0a5d61e3ba42ea2f1945680f36cff31bb7b0d SHA512 59568acda3a77160908a23c354f0574970cb3daeea79ab535762a75a5f3a52a5cedd5754bb507cc238cf5948b37f0045523ed59c04cf6fc4a94ed22b9b77b8c1
DIST numpy-2.2.2.tar.gz 20233295 BLAKE2B 5b95ae4ff511468e55c0367066e9d4b8939fd1da2dd7ce39e5c7cb5897789599ba622c3c7ad53e787903042c1fcfd6225205f0da3d54110410b635e4179f9941 SHA512 f30c400b0a0296ac7990bfe143d4e01e9429e14a09f0525843c6f8e29d2e589289774e4c803fc9de640bf920749dcb3e50663da812b3541f4dc1b7046ab27b40
DIST numpy-2.2.3.tar.gz 20262700 BLAKE2B 9e165ea70a49dfd4f361438575433b4cec9d202282408f1710cb1b16316c34ba59964d9665d782689cf129dc49a314fd2958b37cbd3587121e0530ca6ba658d1 SHA512 78c876d8ecc13aa0f802460f6c1462b53162dfdf85c658e32f1cf9823eeef829b6f1af8285a6c0c75719f5a2e05ff8b987dab88a416df6a8371c16fd032f5e6a
+DIST numpy-2.2.4.tar.gz 20270701 BLAKE2B 608ec0002af890cee76c0d09d1c96ea320c297f8dcb11dc186c1ad7e5b1ab3e8f0023bc14a508ecc97baf74cb388e067824abaf1a6a22e362b34ab4625e07fe8 SHA512 7500cb7a336c2e7762a87d902fecc7153cd991f05a638e1b6740598c044abe3b49d06819b66fa29d99644b3a4efc281fda726795f751ba8c65191f61e7d0d511
diff --git a/dev-python/numpy/numpy-2.2.4.ebuild b/dev-python/numpy/numpy-2.2.4.ebuild
new file mode 100644
index 000000000000..8d14eb0dd30c
--- /dev/null
+++ b/dev-python/numpy/numpy-2.2.4.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2025 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="threads(+)"
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 flag-o-matic fortran-2 pypi
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="
+ https://numpy.org/
+ https://github.com/numpy/numpy/
+ https://pypi.org/project/numpy/
+"
+
+LICENSE="BSD"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+# +lapack because the internal fallbacks are pretty slow. Building without blas
+# is barely supported anyway, see bug #914358.
+IUSE="big-endian +lapack"
+
+RDEPEND="
+ lapack? (
+ >=virtual/cblas-3.8
+ >=virtual/lapack-3.8
+ )
+"
+BDEPEND="
+ ${RDEPEND}
+ >=dev-build/meson-1.1.0
+ >=dev-python/cython-3.0.6[${PYTHON_USEDEP}]
+ lapack? (
+ virtual/pkgconfig
+ )
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # https://bugs.gentoo.org/925367
+ vrndq_f32
+)
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # bug #922457
+ filter-lto
+ # https://github.com/numpy/numpy/issues/25004
+ append-flags -fno-strict-aliasing
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ -Dallow-noblas=$(usex !lapack true false)
+ -Dblas=$(usev lapack cblas)
+ -Dlapack=$(usev lapack lapack)
+ # TODO: cpu-* options
+ )
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Very disk-and-memory-hungry
+ numpy/lib/tests/test_io.py::TestSaveTxt::test_large_zip
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_fid
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_zipfile_after_load
+
+ # Precision problems
+ numpy/_core/tests/test_umath_accuracy.py::TestAccuracy::test_validate_transcendentals
+
+ # Runs the whole test suite recursively, that's just crazy
+ numpy/core/tests/test_mem_policy.py::test_new_policy
+
+ numpy/typing/tests/test_typing.py
+ # Uses huge amount of memory
+ numpy/core/tests/test_mem_overlap.py
+ )
+
+ if [[ $(uname -m) == armv8l ]]; then
+ # Degenerate case of arm32 chroot on arm64, bug #774108
+ EPYTEST_DESELECT+=(
+ numpy/_core/tests/test_cpu_features.py::Test_ARM_Features::test_features
+ )
+ fi
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO: warnings
+ numpy/_core/tests/test_umath.py::TestSpecialFloats::test_unary_spurious_fpexception
+
+ # TODO
+ numpy/_core/tests/test_function_base.py::TestLinspace::test_denormal_numbers
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precisionn
+
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ hppa)
+ EPYTEST_DESELECT+=(
+ # https://bugs.gentoo.org/942689
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[int]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[float]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[datetime64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[timedelta64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[<f]"
+ "numpy/_core/tests/test_dtype.py::TestPickling::test_pickle_dtype[dt28]"
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_reference_cycles
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_segmentation_fault
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_scalar
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_subarray
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure_aligned
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_union
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_padded_union
+ )
+ ;;
+ ppc|x86)
+ EPYTEST_DESELECT+=(
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ esac
+
+ if [[ ${CHOST} == powerpc64le-* ]]; then
+ EPYTEST_DESELECT+=(
+ # long double thingy
+ numpy/_core/tests/test_scalarprint.py::TestRealScalars::test_ppc64_ibm_double_double128
+ )
+ fi
+
+ if use big-endian; then
+ EPYTEST_DESELECT+=(
+ # ppc64 and sparc
+ numpy/linalg/tests/test_linalg.py::TestDet::test_generalized_sq_cases
+ numpy/linalg/tests/test_linalg.py::TestDet::test_sq_cases
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[t1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[t1]"
+ )
+ fi
+
+ if ! has_version -b "~${CATEGORY}/${P}[${PYTHON_USEDEP}]" ; then
+ # depends on importing numpy.random from system namespace
+ EPYTEST_DESELECT+=(
+ 'numpy/random/tests/test_extending.py::test_cython'
+ )
+ fi
+
+ if has_version ">=dev-python/setuptools-74[${PYTHON_USEDEP}]"; then
+ # msvccompiler removal
+ EPYTEST_DESELECT+=(
+ numpy/tests/test_public_api.py::test_all_modules_are_expected_2
+ numpy/tests/test_public_api.py::test_api_importable
+ )
+ EPYTEST_IGNORE+=(
+ numpy/distutils/tests/test_mingw32ccompiler.py
+ numpy/distutils/tests/test_system_info.py
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest -p rerunfailures --reruns=5
+}
+
+python_install_all() {
+ local DOCS=( LICENSE.txt README.md THANKS.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/outputcheck/outputcheck-0.4.2-r2.ebuild b/dev-python/outputcheck/outputcheck-0.4.2-r2.ebuild
index a833b63aa5e8..449432d6c7bf 100644
--- a/dev-python/outputcheck/outputcheck-0.4.2-r2.ebuild
+++ b/dev-python/outputcheck/outputcheck-0.4.2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pebble/Manifest b/dev-python/pebble/Manifest
index e5ddd0ba24ca..d51494b20133 100644
--- a/dev-python/pebble/Manifest
+++ b/dev-python/pebble/Manifest
@@ -1 +1,2 @@
DIST Pebble-5.1.0.tar.gz 35060 BLAKE2B 0209578de0170ac01a25676debdd6ae7c8045171d97430fb48b23ab4a1ad7fadf03a6bb8ec56d05bf77f3a821bcb1dcfe6bbd1028fbe7a5eeff99637ebe92c17 SHA512 804fe43c82c7f7604c258a5ce1d219fecd5674fcfb6ef6dfdf1fe1cfdea23e79659e7d3633055cb9367433d9e6143323e512e69d8cfbe5a4ebba6fcc1fbb812b
+DIST pebble-5.1.1.tar.gz 38672 BLAKE2B 664c72006c0ac48cab72c8c28f131d881155e9abd59928fee13c4d037b913c87069fe46dd9b4126440991c76564f3dbd89a806a455461ecaa152c19aecbfa403 SHA512 ee63faa442e0d5f7c6b34b7a9af35a3979ef6bfde8d5672dd73d605afbb6647df9a298194f0271a5ae7e34f6a20ffb70af0e00b21dfbc612240fe213189dfdeb
diff --git a/dev-python/pebble/pebble-5.1.1.ebuild b/dev-python/pebble/pebble-5.1.1.ebuild
new file mode 100644
index 000000000000..993bc8818a4e
--- /dev/null
+++ b/dev-python/pebble/pebble-5.1.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 2020-2025 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} )
+
+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/pecan/pecan-1.5.1.ebuild b/dev-python/pecan/pecan-1.5.1.ebuild
index 534942ecfa61..6956657deb7c 100644
--- a/dev-python/pecan/pecan-1.5.1.ebuild
+++ b/dev-python/pecan/pecan-1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pelican-minify/pelican-minify-2.0.0.ebuild b/dev-python/pelican-minify/pelican-minify-2.0.0.ebuild
index 5a401d926576..260b6bf65d64 100644
--- a/dev-python/pelican-minify/pelican-minify-2.0.0.ebuild
+++ b/dev-python/pelican-minify/pelican-minify-2.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pycryptodome/Manifest b/dev-python/pycryptodome/Manifest
index 63a8717be459..d2a7e81bf0fa 100644
--- a/dev-python/pycryptodome/Manifest
+++ b/dev-python/pycryptodome/Manifest
@@ -1 +1,2 @@
DIST pycryptodome-3.21.0.gh.tar.gz 17464067 BLAKE2B 5fcf62317053ae3d1dddd90bb223e9866944b4c4325ae146c17c48d2345c06c3fc9951dc72c135ec5a61043b7eced92b69c9bc5f43d47e1f512b9c9ce94fa310 SHA512 cfb66b1e53547992b9405bc6a2d90ed3bc3d1857a01ef619069b9d1aa24d809a9d46d8b0d824999588dd6c0de9a5e39db70b572a9954f0ead0dd39f9b7cedbcc
+DIST pycryptodome-3.22.0.gh.tar.gz 19700949 BLAKE2B 381aec9085ce2e54dd99061b5966409aca4e0da4315c0e7234f7620438cfbec303d1914ddc20ac529a5504bbdb3354976e56f0cb9c37030da142da33bf620798 SHA512 e997b4ffa2d003bfcd4b53af58d18e07db5aee4fea539f76c3b13c2ed92a9067d73f5bdfd19c649a2584ef143a918e9905f10e6d57a927a5d50ce19e5e95268f
diff --git a/dev-python/pycryptodome/pycryptodome-3.22.0.ebuild b/dev-python/pycryptodome/pycryptodome-3.22.0.ebuild
new file mode 100644
index 000000000000..e05be52e0ef0
--- /dev/null
+++ b/dev-python/pycryptodome/pycryptodome-3.22.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="A self-contained cryptographic library for Python"
+HOMEPAGE="
+ https://www.pycryptodome.org/
+ https://github.com/Legrandin/pycryptodome/
+ https://pypi.org/project/pycryptodome/
+"
+SRC_URI="
+ https://github.com/Legrandin/pycryptodome/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2 Unlicense"
+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"
+
+DEPEND="
+ dev-libs/gmp:=
+ >=dev-libs/libtomcrypt-1.18.2-r1:=
+"
+BDEPEND="
+ $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}/pycryptodome-3.10.1-system-libtomcrypt.patch"
+)
+
+python_prepare_all() {
+ # make sure we're unbundling it correctly
+ rm -r src/libtom || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTHONPATH=${S}/test_vectors:${PYTHONPATH}
+ "${EPYTHON}" - <<-EOF || die
+ import sys
+ from Crypto import SelfTest
+ SelfTest.run(verbosity=2, stream=sys.stdout)
+ EOF
+
+ # TODO: run cmake tests from src/test?
+}
diff --git a/dev-python/pydantic-core/Manifest b/dev-python/pydantic-core/Manifest
index 93e80cfdbdab..67cf8aaa1761 100644
--- a/dev-python/pydantic-core/Manifest
+++ b/dev-python/pydantic-core/Manifest
@@ -33,9 +33,13 @@ DIST indoc-2.0.5.crate 14396 BLAKE2B fe838c6a855d6ff7396675a3fe9b2e0b06a93cfd401
DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
DIST jiter-0.7.1.crate 143767 BLAKE2B 314bca16d68483e90cae65138c2e1cb6066acc024cc2cd0fa7e838247b559b4372b63d17d23b7b14e031ffd4318f28c6b810890bd00718def7262c5c0ffd98da SHA512 b5377a8e6ca9e948fafd8c257bdd5bdceed3b76b7a6492065c7feb0deaac7b24851c2aa0440b23707cc86ba485065677bd563ee43819cf0f385362782c4afd69
DIST jiter-0.8.2.crate 146173 BLAKE2B d935658e6a07922487daad95b837ccbe292f4d1025cf62eb1bbed9174b36af86f86d3c3d077c9ac41eca19de90c56a387cad9924317466fcc13e4e8432b57ebe SHA512 13ca60f8bcc65b803c8b6d17e81e7aac615801cf38258daa01c02833eee904815fe308637eacc9c0925d97329d788c56375bed16f055ce4439dd635ae34c270d
+DIST jiter-0.9.0.crate 149952 BLAKE2B e2709be1213cdf022141126f4700d2a3041241681c789df1accb26293334e3b9e86610459a6315e4a84c8d92ffa0e2c4c0e5e284aef66fd8b26893df20d42507 SHA512 2abbd018fb13e939068fc1f3b24d732a624c9776cb1ab712a3b6f0f00f4bb376a9919a0bfa57b33a84b7f35db318e0d4bb9f53780a3538a495fbfc6067fd1065
DIST lexical-parse-float-0.8.5.crate 180161 BLAKE2B 881e4db32a21c26a1919fd1373aef1ea16a6fca3d799edb18ff0c9e4a79d481f8ade7a93f9ded2a660ad10cf815eb757f6eec7887945f8203c467e700af7a9a3 SHA512 ef012cbf18f2e306724dd700ac259aaa73b44f6c4531377deb9979c80d31ae66fc1a8b2671bd677e0ebfad8f77e9a5cf25707c67a1c5b1f554953c036cb39d46
+DIST lexical-parse-float-1.0.5.crate 186731 BLAKE2B 145c7cda05e7f1c949a693e77df96f6eaedb7005d864a819e522a787d05102c44352a28ac1e4598162841214bc3f1350ed121e30ca6aa5e243dc78ef1a64fa05 SHA512 3785bac5f2694febf1ce5f094ff04dc032fc1adf992949087bb18f8316fdaf416701365b34defd2529012d077032fe62ba32f898a6dfad7eefb8b7b59a06742e
DIST lexical-parse-integer-0.8.6.crate 33647 BLAKE2B a0ebd7a51c271a163796b0f55bb85e16830bf06e26e3f10d9b13dc5b65af590c77f47fb64360a8738c5ad4be6e6932d58e83e1594a80c067859645c35b907c53 SHA512 e9a814d2928bf5bb2d9dce53e26c65356191c9e21c3aa0e674d58ed879aa52293272f3897f64372d996a3f8c471b0f59348ad48f15a21c2f35ed15f522ac2daa
+DIST lexical-parse-integer-1.0.5.crate 36912 BLAKE2B de63a3241c79a79b12fcc7ac515812bcd17cbd74c10bf0e2d329f4630218001118424b7016918cdfcbe27d5cbb77caf7f6c759883dea4e957d28e44437427cb7 SHA512 3239abf7200d3c480f19848d197168dea36428b1edfa565e21a568642400a32136020b2308a81f55aeaee9f8c7db448d913b1971eab4f146ef2c1a7e29cc9715
DIST lexical-util-0.8.5.crate 85152 BLAKE2B 42a968c6f9d20cb4cb10906399d37d6581b425eadb31439fec4a71395819133249c4fb75b1d962100e77ba35b6f6b4cd428d5b5c161b405b22333ee390e671a6 SHA512 449c7f2a22c109cd179937c36e14d91c742e1a837a85fcf4fb58c21f05317511d1281b564d216a34760ae54a0df2d0ff5caf49da4aa9d43a8d87fcec0033cc39
+DIST lexical-util-1.0.6.crate 106117 BLAKE2B 751538c250e353a28b56c3881ee1ea10dda53847cf75fe0be7023d08dbf189f7f2e765033f5d08a272adaf59264355679075f18db7db24a265629fb0e397986c SHA512 6df0a49097809351fb798cffe783173b357bdd420de035a4eff34ee7b4e8f350d8ef7de976e3393c0e00df1cb6809212a5e0630a7915e9cf937ec532e9faeae6
DIST libc-0.2.155.crate 743539 BLAKE2B 42cdcf8d4a187383548b1f09d404474f168916d626d614463fe10a1fd886e972e1caf6297e75445214af3f31fe631d0927e54ec1cdc63e20082b3587e38dce16 SHA512 05354bba532b8338bda1f88f12c7f3893429734a06e33925fca2b99d49548ae5216e2cd84e782d2368a2dfef20b0e035e2dcad8dd13ede7119462a8c639b2807
DIST litemap-0.7.3.crate 28728 BLAKE2B 00a04ca0e4e774b317218ab990da4c6ca1f342bbf229957db51801f8ec36339b665133bfe3847ca68a40d901d78d87e0041e09f0740898ac38ea3c8504309c31 SHA512 2c3bc6c4cbf6609f3cc2d986e701d23b73f5bac55995887c90aed01bf4392a42c718a69c0050296fa635a46f7cc9ef3dd6c6a2a505d3cccc690899aa345455a8
DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
@@ -50,22 +54,28 @@ DIST proc-macro2-1.0.86.crate 48958 BLAKE2B 4b89e07f23af8328dbb34fe2b3f1b202f1e6
DIST pydantic_core-2.27.2.tar.gz 413443 BLAKE2B 2755ba694b17894ff89704203c275315dc6a600e5e89965f24800ff032802168a9fa5bbb26e9714dae42f645e34e0ac32191415fae04bd53a8d04c41f1d3e2c4 SHA512 4e0bc0137463d3a76bb584da76751916ddaa18383efbe15a303880649df67de22c67a8a6e5f889c76292c4557914811d942fd3373dad65b63d9fb1f84f34ce3e
DIST pydantic_core-2.29.0.tar.gz 417255 BLAKE2B 0803d8fa6bc731b8c58184228abf015ab6608ffdf351cd6bb8bf78ed2da0b2af14899a2c4ed4a29132a1ba2c2a67bdb3519e13ea857ef6a8a1576d7661c8f03a SHA512 a41ada88f70b04362edc3e95fe34c71814291f5eec4260193fa6be69f219ae52cd60ffc55dae9c7b43c75afc107a114e400c4a3fc697520e57ed39c0b8794560
DIST pydantic_core-2.31.1.tar.gz 424824 BLAKE2B faba4f22988c4b094abf7c878c8c0e99cd78e7ee5350c8bec0324dbac2fa0a4c9e2373f16048e1d763d3ed570dc3a57a0cdd2b38462a5cca1625b4723e56d828 SHA512 2a08b12e6d06f9d78ab696b3fe248885240eeec955fbca85cc50a2d5fdce7a87a755c0b6d4bd16c51bc9d8695a4d92ef6e908c1ec9049c4876f93cf308aa5b6f
+DIST pydantic_core-2.32.0.tar.gz 433639 BLAKE2B 4410bea6f961ee9a83c11076f423fccf5e301ebd3bf404ad575361f15975d5b8b083ba38494a7ed383b38ffea17e7758fd67ab398884ad38bf2ced2668218bb8 SHA512 5ea93072b40226400d4ba82fab37f2a7c7c4f32fbfa4816cb6063d1910c3ee466c69b67306328000a61f52abe627471b324be7970a69c4e26185c4fefcbb8949
DIST pyo3-0.22.6.crate 546746 BLAKE2B 2a6f8c5ce2ee96e1812177a11c5fad7e15f3a73d9e30850edf0855b13db6cc95427e186883b4aae25a2d2466d3fe82f56180a39f3e6e0a54bb0a3ef78d495400 SHA512 d746007eae22f5b7bbf173759c61cbd2aa893898d88b8be5680a0237deec4d113246edf5f62fbbec3579ad4bd7307499b94b887ec306112ffe3df5190fe70e44
DIST pyo3-0.23.4.crate 1087676 BLAKE2B 2c7d3530460ff687e8f60dcff0fb01465b2a4642043ebdfc927fc3824b9fbce9c4b304250808a85405d21df12d17a1d1ada7bdf8f3563710692f22223e2732f1 SHA512 0015aa75163ad0ec026d185e15c26f59aaad0eb3cc3044b146e5d703bb375fcd838df2044febbd52e6e129dfba81c8249329fc3e4805695274dac7a69eee0651
DIST pyo3-0.23.5.crate 1088533 BLAKE2B 2efae0a42c1d33e25c5871e3f61a3cea9890d278a20e2777307752b544ab3a634059bba896a1df0df4eadd0ae3c2e63b6d637aecd6699b31fac4107e3a43a387 SHA512 efd3a86dd70c199304463c0ae18dbdf4d9176d1af13b664bdd05a1e218cffda3f29f06d868d0d852d51c3e85b7e07c39617206b3feddc913b3b622f3fcf59d5f
+DIST pyo3-0.24.0.crate 1108432 BLAKE2B 03098e1ed1f2bcb489ab5fbaf2605631f75804ad138591ae88975c287b8e7544e5f70ef7e3261625075498ac00545b79f6c0b5aab3bcdee2897cbbfabc3f7e87 SHA512 2b9be3cc780c48198ccad08c304053c5248d7c3b7a32e8a3eeba48246b962aa71cbf31ab8c49cab9b555933cccd447412761017b477019a35dc2598999fe63ad
DIST pyo3-build-config-0.22.6.crate 31369 BLAKE2B a1a72de120c4ac4f23a3faaf9b2e340231d7a778a29083ef25fd863fa213afb2a9b720333e3d46a6e1d32105f63073276a23b9bcd999a97fe71eaff3afc7db99 SHA512 9ab44c830e56ddb9ee537ce438fc690664d2c5416f01cdf72498ce062e4c1e7192eac8b7dc2de86c9f2212890b133b69a66209b1615c4eabdf4eaa6882a980fe
DIST pyo3-build-config-0.23.4.crate 33885 BLAKE2B 7f95a8a9e08d413899ff1fa64af5a52783bad4a7b4db92835464f12bd8565f152497aaeb45d25cc91eed73950abeea30ca4c7495e3b15423ae588b97038beb18 SHA512 b11442609f43d9baab79daf083caf0366987f6ae182239814ad6df6fe4ad31b95132d74f1162fa9428d229bd8c18ef9b696a4c3329b3960fd705d1705fc5e973
DIST pyo3-build-config-0.23.5.crate 33885 BLAKE2B 14e3897186abb772bcde147a9ebf2a70f5cbd634cb0240e1dbba71079acd2f9cd61fd263a5d32bc583e188ec84b6db8b93f018ab954ac9da66f423183ad5c176 SHA512 72aac032e3026554761eb81dc9c57591abc4d0c329c46918da13a8cc93c0532eba2fe3d971699a50890c66d8853b93a67840b0e8f1c15747d184b873dec2894a
+DIST pyo3-build-config-0.24.0.crate 33982 BLAKE2B 7972eb69fafdfc73ab7e2ef65498a05a5eeb122e332d10db9990d1a7849fc651a9179fa7dba71707150b005258a7f32fe711d7068fac5c5ca071abdb10bdb55d SHA512 f1f571ead6731d1d775210a02df5ca8ef850460eeabfbe04552403477f9d656eebe25a8833ea03b2e2bc7080bdcf9c6ce3b2b3f9b0f746c316ee31b11b5a2365
DIST pyo3-ffi-0.22.6.crate 69352 BLAKE2B 99eea6ed87001b23fdeb263937bc14be0fadadc1ad77d4fa8834045ba2fc6ba5c0b89f4051916a058b7640be655afe22785b1da42aac8a32d10209b7b37bf810 SHA512 616e51a0eae1207830fe95251d5b62f126daf446bec68ac98cb1b8538aaa59761dbde62d446a9ee205c23453dbd32bd8ecb15e26265ed1fa1e5e2056efd96369
DIST pyo3-ffi-0.23.4-pypy3_11.patch.xz 2140 BLAKE2B 29cf1a3b340241bb323192261b11a431a0b78748819dfe05683ce51c18fb53b5e9394fd4269197475d467f6be82df1fdc92e45450a1e2416ddd459bc00174b6e SHA512 43da84518b24022b82314fc509e8125ad6a9e5c47f8e2eb20da2fa38631719759ce821253a62bdd9fc3fdbedf798e9a37168c39d913570a6cfc53aca3ec0eedb
DIST pyo3-ffi-0.23.4.crate 74806 BLAKE2B 650784d46347c00f09c010c39e9762f778efc510ad0b99b5ddf30cab18edaba552207339ad44ed4ae6d87ddfcc56fa540a17e3a4cb331905a0988d5ba2dc682a SHA512 c12097292b4620f4fd98d61fde4a0f0c7d423a94d518fa5b1cf759089b066fede6d83e20171acc2aa7bf268de5700c9b59da32131216734626b0fa5cd5651801
DIST pyo3-ffi-0.23.5.crate 74867 BLAKE2B 5c80f7ac77ee516a891c1cb367e27fa396e55a7504dc8f92312219a90860baba3861ca2e83a1410839b99b6b3beb4c068703b841e18ea1854f70d04fef7404bd SHA512 37c25b21acc3718eab842c04489b0c16c04d33a30fe7f3f58cd80943048203375d8788ce84153ba3720df695fc95bf9f7bccacfa02b0e669a5ddbfc44d65f86c
+DIST pyo3-ffi-0.24.0.crate 76274 BLAKE2B 2f5873a9b2e6bb6a420056a2cfc063e6e04c184bce58a39498307730aa5e061f277de6e805a70ef2448d4473b0bf32e8413c281438464391ffce457749d43c91 SHA512 2206cfaaa157ce7ab7b480823af0f96524e9d78abab1b042c00fd74f872a8df9e9014a3ab1db28492b750e8ecc8150f6519c3190b7ef297837597b72b64f999a
DIST pyo3-macros-0.22.6.crate 8182 BLAKE2B 81998e4f4cb325763e4d3477af05b332e184cabf6391761f850d23508cebcf8d496ce12f747ea241523bb3899886eb20494b076a0651151744bb81d52901a1b4 SHA512 63f7a7b42e099742518c8a3bbc7647e98debb5500d08c39e11e8140fc146e790ab06e005d8d14c89aba79ebc5bf04fe1c92c0e9c5b13421307d3a4682d044179
DIST pyo3-macros-0.23.4.crate 8852 BLAKE2B ba5722fd52e47aa4dc2e89bacd69326bd98943a1670ebeab08a2e9e8070a0975ebbe928a0bce8b53a700b65294fee2b00d2a1e6623a0c48ac15902cdbfcb7a97 SHA512 c36c9005db5a4b48b5fda881130f4e7da8eef46e2c363c395ccca3fe476e0204d98c2a832cd03c787fb37a2664fadd42bf8f47de71eb44d055754ab5766af934
DIST pyo3-macros-0.23.5.crate 8856 BLAKE2B 56e7dea9cc630e21f9e8aa43319db27f3d287baad4035bf8d921b2c8e737142e5a89decf6a04bcc095f97e035cfe4a5edd7091bba79dd68bc110b7420c29477b SHA512 bf9c12b02597cf6f119e92fe827016f393d13cfa21376811ab9bf8f49cbfd6447afe9dcbef564ad2b5b72db5338520c37c77429db8ee1ccb74de3944fc9fce7f
+DIST pyo3-macros-0.24.0.crate 8850 BLAKE2B 7470b3c8af49c3da5da979a08051d549255ed2bbf1e77e2e186ed43daa832ffe51c28c732e5d390effb8662f66c5c138a517a07cd0e90a73a4476e9d018eefdd SHA512 e949224b6ff3368f4594eb946859afd777efc43ca9fd436e176eef9d4549bd7428d04cee55ea8af02c8cb066dd9396a405de5ee6290a966ee52a0f1c64fd2749
DIST pyo3-macros-backend-0.22.6.crate 66312 BLAKE2B ec0b11bee1ad2192e8d95cebab0075d6ec5bf628e3344b86fb8e20a6d0bc1f891b56ccfa4622840a609480581f32bd211b9a3d1dd989716cf255efe3fdc89331 SHA512 87463939b5a5674e30e8ca05ae747f652f8679f0c5c85d20967e9910ad853768a769a914580e82e409188fe4add80a3117ccb9da24c250406bc6f76fe4453799
DIST pyo3-macros-backend-0.23.4.crate 70912 BLAKE2B a428c732f0b17d9a8f620d0e8d58469f2cba339c8a8307393ce252a7860808e5d50e6bbf711cafd0635c844f4b1d48e57db4dd99ef7b5e3d97d6f760164278e9 SHA512 2fe670fbf35724f489cc82f38d3f7c1e6aa15b087a2674b7a68b562572f9bb00cbb7746cccfcb62d0861a18f6d24c5739273c8302d1662a161142f4a6b532b6f
DIST pyo3-macros-backend-0.23.5.crate 70938 BLAKE2B 20d5b00edf806ff19de3e3a03d10a23a29b16d544faf2bb5781032e51c3e07cd7f1a979e00b9f1abca36bc7cf1546b702ee83f85d021d74ac819b8b13bf8d140 SHA512 5e9a971d98a7b70424bf93b1f7fb326564010562dd376789be2fa6b13b89c3d34f760eb61ed49f0b013bbdfff2658d874d24a8a0b65d8f82d10d8f34b8ef5b53
+DIST pyo3-macros-backend-0.24.0.crate 71998 BLAKE2B d3cd57fdf2a8b0f750d8f00fa36f32b95f9f13adf9453e0823fec0791ae99af018db6e596205ff9f9f555489cec024e23eb19c53379c09381c0cb209d8a5a695 SHA512 58b06343fa03b2b7aacdafcf219865bbb5b80cc2b28fdf16133a7d43fb7723cd83718e067bf6e01f96b94738bb83cda87d4ac2703d8d59588708d938df8e66eb
DIST python3-dll-a-0.2.10.crate 74573 BLAKE2B 770c5b070f4dd1b9639b8aff59bb733575eb1117ae8e510818b6e13bdc69b22bcad395bb5cf0d1931de3562775a56e1404bb7fca7384b62e5e782e6284fa1494 SHA512 c1171c29f6914ff809950a9f6c330638e72c58c7c691bf4d9e765dee47166915cc91131b494b65aeb3a812543690c5072f2f5ff32cdebb76ba588330f9c74cdb
DIST python3-dll-a-0.2.12.crate 83731 BLAKE2B 2ae21b085e7a7aae2c17584fa5feacfe35e974f1bf96673027cb6b6f382241d115df7c9cd009b0346840b6366163c08a62e1695b0834385e182d250390e446e2 SHA512 4d9860f7ecf689b8e5c865f4f2d2486baae0d6765ecedef08234973e921461a3af56f007dce178de6539053eab28dec0870c9f110c3c66dbf7b076e18d2e1fd7
DIST python3-dll-a-0.2.13.crate 85018 BLAKE2B 4531172b7e985041fe3cf7d164c67dc74e5974fbdbc80f1b7fb5e351d8115cda0a7a8f64c037ff7fcf4c20918fa2a53a29c8784035c571e0c46be39cdc7faff4 SHA512 01438c7af7a936ae6b95e1b81f4596627043a4b02eea85241a18ed137c23dff644f3e8d8eeb45b8e64ef1fd2693ab47fde47b6341dfc56f6c4eca032da46647c
@@ -95,6 +105,7 @@ DIST syn-2.0.82.crate 272300 BLAKE2B 2982faee84539879f87ad34a426027b4b9117dea9eb
DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
DIST tap-1.0.1.crate 11316 BLAKE2B 60786fd5f12c2f06097330c26809fdcfce62716586d2e1985f8c01406d356ed0ab730a04dfe72ee3e1d6208a53c76c66883d45a76130750b41ba5b82aa721b83 SHA512 d69ff11a46e2fbc276212511878f48eb93640c0b147df6578ea057b23625f9366a7fc3926693fc3809688537af5ca919c91605beed364decf83c35a032310995
DIST target-lexicon-0.12.14.crate 25508 BLAKE2B 5ebb6b49e5c3b0057959557651287d4bf5ffe5b499340019ff64d5fc3b64e780e344982e358c94b1b25a20bf0f526a584aeecc704695b50a55cc268dd65edb97 SHA512 3410ecc0faf854f49c41c99f83972960e67065b1e0e78557a7c4996d996109bfd167d2121a019f5256f996c896cd45af032038ab7918fdcc6ee6311693ce951a
+DIST target-lexicon-0.13.2.crate 27923 BLAKE2B 0761f0ffdc23b9c9df86b384d59611c7b8b5e29ff068f03367ad2fe84cfb6d11e1af149b9338236978e9566fedc51387db9f239d2a602db41045ac3db907faec SHA512 d25e3cc3d679cb6b6f24c03e0c24db9d6ca31b8ed42ac9531bd7637557fbba225a6c8ac4f68a8eaf3569195814d599e668a968afbc73b940a77cbc27552cc90a
DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25
DIST tinyvec-1.6.1.crate 46657 BLAKE2B 0579dd18a6ad47d995200535950ce0c2a0f63ac081ff5c54a5be5e6a9d5f0545266a2e44b09b847e2fbe88e374a9467ddcf7fcea6ad404e443c387d343eac3e9 SHA512 fc00617fe56c438ed417b9c18fb2525e624b6b6effd1b729da9b8f144b36cd02dbcefbbb6fd423c30b1f19309d42117a1eaab99deb0a46b2a474c2cdc02c1695
DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
diff --git a/dev-python/pydantic-core/pydantic-core-2.32.0.ebuild b/dev-python/pydantic-core/pydantic-core-2.32.0.ebuild
new file mode 100644
index 000000000000..3ca6cc648fba
--- /dev/null
+++ b/dev-python/pydantic-core/pydantic-core-2.32.0.ebuild
@@ -0,0 +1,178 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+CRATES="
+ ahash@0.8.11
+ aho-corasick@1.1.3
+ autocfg@1.3.0
+ base64@0.22.1
+ bitvec@1.0.1
+ cc@1.0.101
+ cfg-if@1.0.0
+ displaydoc@0.2.5
+ enum_dispatch@0.3.13
+ equivalent@1.0.1
+ form_urlencoded@1.2.1
+ funty@2.0.0
+ getrandom@0.2.15
+ hashbrown@0.14.5
+ heck@0.5.0
+ hex@0.4.3
+ icu_collections@1.5.0
+ icu_locid@1.5.0
+ icu_locid_transform@1.5.0
+ icu_locid_transform_data@1.5.0
+ icu_normalizer@1.5.0
+ icu_normalizer_data@1.5.0
+ icu_properties@1.5.1
+ icu_properties_data@1.5.0
+ icu_provider@1.5.0
+ icu_provider_macros@1.5.0
+ idna@1.0.3
+ idna_adapter@1.2.0
+ indexmap@2.2.6
+ indoc@2.0.5
+ itoa@1.0.11
+ jiter@0.9.0
+ lexical-parse-float@1.0.5
+ lexical-parse-integer@1.0.5
+ lexical-util@1.0.6
+ libc@0.2.155
+ litemap@0.7.3
+ memchr@2.7.4
+ memoffset@0.9.1
+ num-bigint@0.4.6
+ num-integer@0.1.46
+ num-traits@0.2.19
+ once_cell@1.19.0
+ percent-encoding@2.3.1
+ portable-atomic@1.6.0
+ proc-macro2@1.0.86
+ pyo3-build-config@0.24.0
+ pyo3-ffi@0.24.0
+ pyo3-macros-backend@0.24.0
+ pyo3-macros@0.24.0
+ pyo3@0.24.0
+ python3-dll-a@0.2.13
+ quote@1.0.36
+ radium@0.7.0
+ regex-automata@0.4.8
+ regex-syntax@0.8.5
+ regex@1.11.1
+ rustversion@1.0.17
+ ryu@1.0.18
+ serde@1.0.218
+ serde_derive@1.0.218
+ serde_json@1.0.138
+ smallvec@1.14.0
+ speedate@0.15.0
+ stable_deref_trait@1.2.0
+ static_assertions@1.1.0
+ strum@0.26.3
+ strum_macros@0.26.4
+ syn@2.0.82
+ synstructure@0.13.1
+ tap@1.0.1
+ target-lexicon@0.13.2
+ tinystr@0.7.6
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ url@2.5.4
+ utf16_iter@1.0.5
+ utf8_iter@1.0.4
+ uuid@1.15.1
+ version_check@0.9.5
+ wasi@0.11.0+wasi-snapshot-preview1
+ write16@1.0.0
+ writeable@0.5.5
+ wyz@0.5.1
+ yoke-derive@0.7.4
+ yoke@0.7.4
+ zerocopy-derive@0.7.34
+ zerocopy@0.7.34
+ zerofrom-derive@0.1.4
+ zerofrom@0.1.4
+ zerovec-derive@0.10.3
+ zerovec@0.10.4
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Core validation logic for pydantic written in Rust"
+HOMEPAGE="
+ https://github.com/pydantic/pydantic-core/
+ https://pypi.org/project/pydantic-core/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 Unicode-DFS-2016
+ || ( Apache-2.0 Boost-1.0 )
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.7.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/dirty-equals-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.63.0[${PYTHON_USEDEP}]
+ >=dev-python/inline-snapshot-0.13.3[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.10.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-timeout-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-1.10.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/pydantic_core/_pydantic_core.*.so"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e '/--benchmark/d' pyproject.toml || die
+ sed -i -e '/^strip/d' Cargo.toml || die
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ tests/benchmarks
+ )
+ local EPYTEST_DESELECT=(
+ # TODO: recursion till segfault
+ tests/serializers/test_functions.py::test_recursive_call
+ )
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # different repr() in exception
+ # https://github.com/pypy/pypy/issues/5220
+ tests/validators/test_arguments.py::test_error_display
+ tests/validators/test_definitions_recursive.py::test_error_inside_definition_wrapper
+ tests/validators/test_string.py::test_invalid_regex
+ tests/validators/test_string.py::test_backtracking_regex_rust_unsupported
+ tests/validators/test_union.py::test_empty_choices
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ rm -rf pydantic_core || die
+ # tests link to libpython, so they fail to link on pypy3
+ [[ ${EPYTHON} != pypy3* ]] && cargo_src_test
+ epytest -p pytest_mock -p timeout -o xfail_strict=False -o addopts=
+}
diff --git a/dev-python/pylatex/pylatex-1.4.2.ebuild b/dev-python/pylatex/pylatex-1.4.2.ebuild
index 178401aef40f..0e0ee20af946 100644
--- a/dev-python/pylatex/pylatex-1.4.2.ebuild
+++ b/dev-python/pylatex/pylatex-1.4.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2023 Gentoo Authors
+# Copyright 2020-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index 9e3e815ad530..8de3d6df4526 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -1,3 +1,4 @@
DIST pypdf-5.3.0.gh.tar.gz 8036039 BLAKE2B dfdbcf5112da7e82aaa87753433cd236dbfbac20e5c83194d18da13b878713bb7c8b102f0c62e35f157bb28bc125fdc491a0720fd59d1a0a30c8a13476d24a9d SHA512 c656fb766d6e7d550768150c83b289450e8da8632353aa90ce9f355a99b613dbb6be84f1d0742b53ca093dc747dee6ac56f243a96ad60ad7764b1e66e0cca3bd
DIST pypdf-5.3.1.gh.tar.gz 8045063 BLAKE2B 03af1f1ac8be5ac63899515c21d1821a38b225923825ea0075a689cf299c0b8e73a66e8e8d2c8bd3c45ce1a01777c1fce0c5eaacdb2df1c59fef6b154b3c8714 SHA512 5f9b0efdb51f9d56d9c10f7660718755c0bb731c77337530ebdf47472e837a97d0516b105c657881e424d1cded2fc6b44a5c5415600f4dc562d56faf66551b2b
+DIST pypdf-5.4.0.gh.tar.gz 8046505 BLAKE2B 8816362edd28d0c0dc0ed2abbec56f0adfdf9377fe3770f494cf1dc301a2636a4ca579c86a6fa8ee65532965f347cc2b8c08df074131f7373d1ef6f9ab5125e6 SHA512 530853e2839164c3159c5d6b466ddd95859af2ed5473d7d1c1fbf8350d2860685439565cc50bf093fa4c662a04775660fd3e6e70f5fd134fcb9cdea93c88eac2
DIST pypdf-sample-files-8c405ece5eff12396a34a1fae3276132002e1753.gh.tar.gz 11748093 BLAKE2B c5989200893b28a3c2062bb024a5cfc6f3389dc259ec129857979fa43469e1274559612b4d555499e2c7e16cf34be07825229932bf4d147fa6d7324d043e97d5 SHA512 c9771129b7668a2fd1fa79bb859ae9213f3d60341cf1b9937ff0eaab0de9bf4c35adcb7b896e93329038dc0f3809a0c697c523f8fe41b43030b0b029a88058e3
diff --git a/dev-python/pypdf/pypdf-5.4.0.ebuild b/dev-python/pypdf/pypdf-5.4.0.ebuild
new file mode 100644
index 000000000000..3d9d8dd28243
--- /dev/null
+++ b/dev-python/pypdf/pypdf-5.4.0.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2025 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
+
+SAMPLE_COMMIT=8c405ece5eff12396a34a1fae3276132002e1753
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI="
+ https://github.com/py-pdf/pypdf/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${S}"/sample-files/ || die
+ fi
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pyqt6/pyqt6-6.8.1.ebuild b/dev-python/pyqt6/pyqt6-6.8.1.ebuild
index 1e4b67b9d5f5..7540d89bf8f2 100644
--- a/dev-python/pyqt6/pyqt6-6.8.1.ebuild
+++ b/dev-python/pyqt6/pyqt6-6.8.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86"
# defaults match what is provided with qtbase by default (except testlib),
# reduces the need to set flags but does increase build time a fair amount
IUSE="
diff --git a/dev-python/pysimdjson/pysimdjson-6.0.2.ebuild b/dev-python/pysimdjson/pysimdjson-6.0.2.ebuild
index 61f60af0515a..59f778400240 100644
--- a/dev-python/pysimdjson/pysimdjson-6.0.2.ebuild
+++ b/dev-python/pysimdjson/pysimdjson-6.0.2.ebuild
@@ -1,11 +1,12 @@
-# Copyright 2020-2024 Gentoo Authors
+# Copyright 2020-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-DISTUTILS_EXT=1
+
inherit distutils-r1
DESCRIPTION="Python bindings for simdjson"
@@ -46,6 +47,11 @@ src_prepare() {
rm simdjson/simdjson.cpp || die
echo "#include_next <simdjson.h>" > simdjson/simdjson.h || die
+ # regressions (new simdjson version?)
+ rm jsonexamples/test_parsing/i_number_very_big_negative_int.json || die
+ rm jsonexamples/test_parsing/i_number_too_big_pos_int.json || die
+ rm jsonexamples/test_parsing/i_number_too_big_neg_int.json || die
+
distutils-r1_src_prepare
export BUILD_WITH_CYTHON=1
diff --git a/dev-python/pyspf/files/pyspf-2.0.14-py313.patch b/dev-python/pyspf/files/pyspf-2.0.14-py313.patch
new file mode 100644
index 000000000000..d6f71759fa49
--- /dev/null
+++ b/dev-python/pyspf/files/pyspf-2.0.14-py313.patch
@@ -0,0 +1,23 @@
+From 7c92c9db299a466aad981dd747bbfd2a57db6827 Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwatson@debian.org>
+Date: Sun, 12 Jan 2025 15:40:39 +0000
+Subject: [PATCH] Fix doctest registration for Python 3.13
+
+`unittest.makeSuite` was deprecated in Python 3.11 and removed in 3.13.
+---
+ test/testspf.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/testspf.py b/test/testspf.py
+index eb8d933..beac450 100644
+--- a/test/testspf.py
++++ b/test/testspf.py
+@@ -225,7 +225,7 @@ def makeSuite(filename):
+ return suite
+
+ def docsuite():
+- suite = unittest.makeSuite(SPFTestCases,'test')
++ suite = unittest.defaultTestLoader.loadTestsFromTestCase(SPFTestCases)
+ try:
+ import authres
+ except:
diff --git a/dev-python/pyspf/pyspf-2.0.14-r3.ebuild b/dev-python/pyspf/pyspf-2.0.14-r3.ebuild
index 390559805804..64ed834f8c03 100644
--- a/dev-python/pyspf/pyspf-2.0.14-r3.ebuild
+++ b/dev-python/pyspf/pyspf-2.0.14-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -33,6 +33,11 @@ BDEPEND="
)
"
+PATCHES=(
+ # https://github.com/sdgathman/pyspf/pull/42
+ "${FILESDIR}/${P}-py313.patch"
+)
+
python_test() {
cd test || die
"${EPYTHON}" testspf.py || die "Test fail with ${EPYTHON}"
diff --git a/dev-python/pythran/pythran-0.17.0-r2.ebuild b/dev-python/pythran/pythran-0.17.0-r2.ebuild
new file mode 100644
index 000000000000..e57419cf27dc
--- /dev/null
+++ b/dev-python/pythran/pythran-0.17.0-r2.ebuild
@@ -0,0 +1,95 @@
+# Copyright 2021-2025 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
+
+MY_P=${P/_p/.post}
+DESCRIPTION="Ahead of Time compiler for numeric kernels"
+HOMEPAGE="
+ https://pypi.org/project/pythran/
+ https://github.com/serge-sans-paille/pythran/
+"
+SRC_URI="
+ https://github.com/serge-sans-paille/pythran/archive/${PV/_p/.post}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-libs/boost
+ dev-cpp/xsimd
+ =dev-python/beniget-0.4*[${PYTHON_USEDEP}]
+ =dev-python/gast-0.6*[${PYTHON_USEDEP}]
+ dev-python/numpy:=[${PYTHON_USEDEP}]
+ >=dev-python/ply-3.4[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-73.0.1[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ dev-libs/boost
+ dev-cpp/xsimd
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ virtual/cblas
+ !!dev-python/setuptools-declarative-requirements
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_configure() {
+ # vendored C++ headers -- use system copies
+ rm -r pythran/{boost,xsimd} || die
+
+ # https://bugs.gentoo.org/916461
+ sed -i \
+ -e 's|blas=blas|blas=cblas|' \
+ -e 's|libs=|libs=cblas|' \
+ pythran/pythran-*.cfg || die
+ # boost.math 1.82.0+ requires -std=c++14
+ sed -i \
+ -e 's|-std=c++11|-std=c++14|' \
+ pythran/pythran-*.cfg || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ if has_version ">=dev-python/numpy-2[${PYTHON_USEDEP}]"; then
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # tries to link to libpypy*.so
+ pythran/tests/test_distutils.py::TestMeson::test_meson_build
+ )
+ ;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # repr() differences?
+ pythran/tests/test_xdoc.py::TestDoctest::test_tutorial
+ )
+ ;;
+ esac
+ fi
+
+ local -x COLUMNS=80
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/ropemode/ropemode-0.6.1.ebuild b/dev-python/ropemode/ropemode-0.6.1.ebuild
index 8e51139fb2b0..1d9974ce4d16 100644
--- a/dev-python/ropemode/ropemode-0.6.1.ebuild
+++ b/dev-python/ropemode/ropemode-0.6.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/scipy/Manifest b/dev-python/scipy/Manifest
index 25055964b12e..b3006c00e5df 100644
--- a/dev-python/scipy/Manifest
+++ b/dev-python/scipy/Manifest
@@ -4,3 +4,4 @@ DIST scipy-1.15.1.tar.gz 59407493 BLAKE2B 959e1e311c5e53c2751794f629777a611ebd79
DIST scipy-1.15.2.tar.gz 59417316 BLAKE2B 7ae748a58b6a7fb2674dc6627c3d6f4f28694283bf19ca9973fcf5796ccb0e2e35bb7cd8fbfbefa21cb832b771e563f478bc09ded61d989ea47625e7ac35e1bd SHA512 e772aa040622ef457478e08eb41471af33784cafc2022f091a30563f6abed067cdbae424a5ae86f9dab8c1adc67276794b67cb7cb7c7963ca55a38529df63834
DIST scipy-html-1.14.0.zip 65723829 BLAKE2B ba47dbf00a5d2a53a9addc5ea68ab18b42f211a018b89aa4b0b57ff0dee02e410a3effc59ddf8fbbc5aa33075d45d86880aed3a14068da5bd7b62ee526199967 SHA512 93be0bafcc64cea1ba130bbcc77c0741acc4f819c84a5030391a22657a1bc63abe8434a2723f66b7ad04c0809dc6d02e3a97ffb8d94bd3d4a4bb759ee796b475
DIST scipy-html-1.15.1.zip 68514487 BLAKE2B 328550d3d5700c520b2a6404c326a54ffecacc95ad5d05c727d833803d698346fb0188b6bcb659838c1a0f26355b28d70df02cddff48b8bdf564292e6cab56bc SHA512 14311da185c9454fe7dd2a8253dc4fad434664df4c7261b22a3415de576a49d51ce9a00dfb3c3ea4df9ce2bf1c9d7547ceeeb5af72eeda823243d7a2541db676
+DIST scipy-html-1.15.2.zip 68568078 BLAKE2B 270f1d89bbcb707616f7af0e1bd90909c1f33d647cf55e42dbf27128ecd90f619f0d579d8897eb04851b6327df1682236c5fd9c4c948b1fd99b083145681a202 SHA512 48e09d3678547775c6c86b82cdb4ef5e7eed7722c6ba8d53170384c3a9380b2bb29fc467b5ee66ae2ec1a621930c8bf20adfc8db3a75546a6ba8e9906df03426
diff --git a/dev-python/scipy/scipy-1.15.2.ebuild b/dev-python/scipy/scipy-1.15.2.ebuild
index 836e81ce8cec..77cbef5cdf4d 100644
--- a/dev-python/scipy/scipy-1.15.2.ebuild
+++ b/dev-python/scipy/scipy-1.15.2.ebuild
@@ -29,7 +29,7 @@ else
inherit pypi
# Upstream is often behind with doc updates
- DOC_PV=1.15.1
+ DOC_PV=1.15.2
SRC_URI+="
doc? (
@@ -117,21 +117,9 @@ python_test() {
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=()
@@ -142,18 +130,10 @@ python_test() {
fi
case ${EPYTHON} in
- pypy3)
+ 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
diff --git a/dev-python/snaketrace/snaketrace-0.3.1-r1.ebuild b/dev-python/snaketrace/snaketrace-0.3.1-r1.ebuild
index cf3a999dbbca..085ed586c567 100644
--- a/dev-python/snaketrace/snaketrace-0.3.1-r1.ebuild
+++ b/dev-python/snaketrace/snaketrace-0.3.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2023 Gentoo Authors
+# Copyright 2020-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild b/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild
index 1dc3ba86489f..d34bac2bd11c 100644
--- a/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild
+++ b/dev-python/sphinx-lv2-theme/sphinx-lv2-theme-1.4.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild b/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild
index 9ddbb461a8b6..c081d4f763c3 100644
--- a/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild
+++ b/dev-python/sphinxemoji/sphinxemoji-0.3.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/unearth/Manifest b/dev-python/unearth/Manifest
index 427cbd179973..60aa3096471b 100644
--- a/dev-python/unearth/Manifest
+++ b/dev-python/unearth/Manifest
@@ -1,2 +1,2 @@
-DIST unearth-0.17.1.tar.gz 284159 BLAKE2B 55b8f18f06613f0398316bbcadee6b928e6f20fdc978bdde6c0c1ce3b75a46e1cd2734d036302b8b5a98e9ec5a92aa7d00b00ff01ae815149d507cdab2f6dd5f SHA512 3e451d6f40b16520d4a6e1f4ca6f3997bc346f189330c7373089701d9203543f159b5af843aa8144c2b0ca871a84909292b34b5a666e3a0b541fdbc643340050
DIST unearth-0.17.2.tar.gz 284430 BLAKE2B ca55cd4feb50a3803400bc70f499cfb26c6dd951966f0a37cddde5c186a1f91aa3d041f504d1b85cf632478caaf33a9b4da472070fce1e7b51ea1436d1b7b95a SHA512 927ba9004d8e893bb461a0dd8741476e39cabefca47885708b5d155514726946898dd9eb9870d86982b191aeb189490310108fbb2a70e8983dae4974d711384b
+DIST unearth-0.17.3.tar.gz 284628 BLAKE2B c9163afe1a7c57e3d3afc3643ee0e55f0cc71093369c0a7225988f12b945eb8ab3cbb7226bccecca5f1bd2d0423ff3f1342286d6123d12631059321c6886eeff SHA512 c7f68efc2efe11eb85c2b835a021996980e1b839ec6303058ff2e5f4186d3867db1e72e899b28e1fea722b4f1a0c2c33851768b89ef176c44a7c63478b5ea686
diff --git a/dev-python/unearth/unearth-0.17.1.ebuild b/dev-python/unearth/unearth-0.17.3.ebuild
index 0c4424ab096d..db0f086f694a 100644
--- a/dev-python/unearth/unearth-0.17.1.ebuild
+++ b/dev-python/unearth/unearth-0.17.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.9-r1.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.9-r1.ebuild
index a01380e725a5..b898f28fc952 100644
--- a/dev-python/xvfbwrapper/xvfbwrapper-0.2.9-r1.ebuild
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.9-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild b/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild
index 2448b1b36667..a3ff287759d6 100644
--- a/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild
+++ b/dev-python/yaxmldiff/yaxmldiff-0.2.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -24,3 +24,5 @@ RDEPEND="
BDEPEND="
>=dev-python/hatch-fancy-pypi-readme-24.1.0[${PYTHON_USEDEP}]
"
+
+distutils_enable_tests pytest
diff --git a/dev-python/zstandard/zstandard-0.23.0-r2.ebuild b/dev-python/zstandard/zstandard-0.23.0-r2.ebuild
index dd8b76cdccde..49b67411b6c3 100644
--- a/dev-python/zstandard/zstandard-0.23.0-r2.ebuild
+++ b/dev-python/zstandard/zstandard-0.23.0-r2.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
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"
DEPEND="
>=app-arch/zstd-1.5.7:=