summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-12-06 21:12:23 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-12-06 21:12:23 +0000
commit3ee8ce5325844d3b0c6de1e928d3e99927bfc028 (patch)
tree9310bb2491a7f23747afc9aeb34e18e45487b277 /dev-python
parent48362e99aa1ce7a2900af949d1d3711254e309ce (diff)
downloadbaldeagleos-repo-3ee8ce5325844d3b0c6de1e928d3e99927bfc028.tar.gz
baldeagleos-repo-3ee8ce5325844d3b0c6de1e928d3e99927bfc028.tar.xz
baldeagleos-repo-3ee8ce5325844d3b0c6de1e928d3e99927bfc028.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiodns/Manifest2
-rw-r--r--dev-python/aiodns/aiodns-3.6.0.ebuild33
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.42.4.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.42.4.ebuild67
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/librt/Manifest3
-rw-r--r--dev-python/librt/librt-0.6.3.ebuild2
-rw-r--r--dev-python/librt/librt-0.7.2.ebuild (renamed from dev-python/librt/librt-0.6.2.ebuild)18
-rw-r--r--dev-python/libtmux/Manifest1
-rw-r--r--dev-python/libtmux/libtmux-0.50.1.ebuild37
-rw-r--r--dev-python/marshmallow/Manifest3
-rw-r--r--dev-python/marshmallow/marshmallow-4.1.1.ebuild (renamed from dev-python/marshmallow/marshmallow-4.0.1.ebuild)1
-rw-r--r--dev-python/orjson/Manifest2
-rw-r--r--dev-python/orjson/orjson-3.11.5.ebuild92
-rw-r--r--dev-python/pbs-installer/Manifest2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild31
-rw-r--r--dev-python/phonenumbers/Manifest2
-rw-r--r--dev-python/phonenumbers/phonenumbers-9.0.20.ebuild (renamed from dev-python/phonenumbers/phonenumbers-9.0.16.ebuild)2
-rw-r--r--dev-python/platformdirs/Manifest3
-rw-r--r--dev-python/platformdirs/platformdirs-4.5.1.ebuild (renamed from dev-python/platformdirs/platformdirs-4.4.0.ebuild)3
-rw-r--r--dev-python/protobuf/Manifest2
-rw-r--r--dev-python/protobuf/protobuf-6.33.2.ebuild154
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-3.3.2.ebuild123
-rw-r--r--dev-python/pudb/Manifest3
-rw-r--r--dev-python/pudb/pudb-2025.1.1.ebuild37
-rw-r--r--dev-python/pudb/pudb-2025.1.2.ebuild38
-rw-r--r--dev-python/pyqt6/Manifest1
-rw-r--r--dev-python/pyqt6/pyqt6-6.10.1.ebuild193
-rw-r--r--dev-python/pytest-jobserver/Manifest1
-rw-r--r--dev-python/pytest-jobserver/files/pytest-jobserver-1.0.0-gentoo.patch125
-rw-r--r--dev-python/pytest-jobserver/metadata.xml10
-rw-r--r--dev-python/pytest-jobserver/pytest-jobserver-1.0.0.ebuild54
-rw-r--r--dev-python/python-lsp-server/Manifest2
-rw-r--r--dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild (renamed from dev-python/python-lsp-server/python-lsp-server-1.13.0.ebuild)30
-rw-r--r--dev-python/statsmodels/Manifest1
-rw-r--r--dev-python/statsmodels/statsmodels-0.14.6.ebuild80
-rw-r--r--dev-python/urllib3/Manifest2
-rw-r--r--dev-python/urllib3/urllib3-2.6.0.ebuild107
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.9.16.ebuild99
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.9.16.ebuild167
-rw-r--r--dev-python/xarray/Manifest5
-rw-r--r--dev-python/xarray/xarray-2025.12.0.ebuild (renamed from dev-python/xarray/xarray-2025.10.0.ebuild)12
-rw-r--r--dev-python/xarray/xarray-2025.8.0.ebuild129
-rw-r--r--dev-python/xarray/xarray-2025.9.1.ebuild131
52 files changed, 1507 insertions, 391 deletions
diff --git a/dev-python/aiodns/Manifest b/dev-python/aiodns/Manifest
index 3707cc94fd14..d9dd612adac8 100644
--- a/dev-python/aiodns/Manifest
+++ b/dev-python/aiodns/Manifest
@@ -1 +1,3 @@
DIST aiodns-3.5.0.tar.gz 14380 BLAKE2B 7b34d94e7376a0f9ddc5f002bcde64ac15dd31bec97801a35e1b1040f687d5775b5497ba7b76417c45d5cfb35b670d0bce5421e9d6703c7bffe648ee91afaf13 SHA512 0d833cd26db549a06b8bd62835bcac008e24ea4f010065186ff3ca5629c08527eb2c29e6d3f307b8db5d809b264298d3669452a782c19d2454e0b2ce394c814c
+DIST aiodns-3.6.0.tar.gz 15108 BLAKE2B a99b18b877df5da6bc8d21dd8c11de711882dd5daebaa06899f6eb75cf030ff9373a20b6a009f93d02934e98247fe7a5e6f25f693667ab8ce3ade6393e917515 SHA512 4620a16bafc8321569fe749518e039230d466d70ad8e328cbed0a4c3b229df2b2c0ade424d44019d065bc50dc7b1396c6a98fb2591f842d50c0dfd3b878843bd
+DIST aiodns-3.6.0.tar.gz.provenance 9313 BLAKE2B 1afa93bb875a04ed4bc6fcab92feb4b68ead381d19253872067db481499ac12dad73c987336ea4b8980c33611351af3d713b22859ac790907fc60bc270948b78 SHA512 1e35b03a95fb84ef669f55e4ab07821a248eb03965992a5c209d2551b5a85f32db9f750e86dcde2c4afb33cd1c1b94727b48c9b49ba113a980a13a4add81e81d
diff --git a/dev-python/aiodns/aiodns-3.6.0.ebuild b/dev-python/aiodns/aiodns-3.6.0.ebuild
new file mode 100644
index 000000000000..67864267bf7c
--- /dev/null
+++ b/dev-python/aiodns/aiodns-3.6.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/aio-libs/aiodns
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple DNS resolver for asyncio"
+HOMEPAGE="
+ https://pypi.org/project/aiodns/
+ https://github.com/aio-libs/aiodns/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+# Tests fail with network-sandbox, since they try to resolve google.com
+PROPERTIES="test? ( test_network )"
+RESTRICT="test"
+
+RDEPEND=">=dev-python/pycares-4.9.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
+
+python_test() {
+ epytest --asyncio-mode=auto
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index fe04270671b4..981c9731eca8 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -7,3 +7,4 @@ DIST boto3-1.42.0.gh.tar.gz 1051896 BLAKE2B 5bc423d834f4baba83b1e332b67fbfbe76b7
DIST boto3-1.42.1.gh.tar.gz 1054688 BLAKE2B 9722ba8fb97df81abfbcc26f5ab5d5c7819a3cd1f265af9938820968ba79232ed453c594db3bc661ac6bed50058638903700e8c8e16613b59c88bc97807ad966 SHA512 961cae734e2e8db1e0511d19f24f5b509b14fbcc9d32327fa39928b21d502516b4dec8a2723c342bdc77649df292086f2b8281b30d54396f9849445b61fff8b7
DIST boto3-1.42.2.gh.tar.gz 1054980 BLAKE2B 5d361d756f41fb2e1df9f4397ba64a842388abb8f8f239b19c450ab062ec999c10c6a46770a52b3f9f664614c54093959fdbb85cff81bd712cb9b431604661a1 SHA512 1c24227ed467c9406c1cb781a46796d7748f44bbc5dddb53ad1153202111a08f33de7c7696f8294ac57df960a67a338cf37620c13df852cddb8d21ed909cbf20
DIST boto3-1.42.3.gh.tar.gz 1055160 BLAKE2B 86399e22d40747aa40d6d61296e9833f86ddbf8921a157a369bed90c538ce6ca43729c1a69c3f1f99d1b8496414397aa0b1a442d33e81d191fbac6991ab1a840 SHA512 c4f36ae4340e809c398ee9e496af1da5da24be08d6ab443dd434f5612bda97c187375480bb62992cb6129f638f8715cfd476d3a1116f94d3de470756d932d0c3
+DIST boto3-1.42.4.gh.tar.gz 1055570 BLAKE2B a9990bb04ce59111c6371536692c6e4d5440f3f0dc79e1ecc119652603bcd8bc15839400758999faffd7df9bda9efb4991393fcab32baa16c7a0e51ff7c5cc94 SHA512 95950ba80f31c3951a88237ff5edd1367285c3ab263c7f8ad1b7556d610d553dd4e2021fbbcc0d9bdcf578fe34ad9fcf6231511f54ee71917f69c1cdb6adab28
diff --git a/dev-python/boto3/boto3-1.42.4.ebuild b/dev-python/boto3/boto3-1.42.4.ebuild
new file mode 100644
index 000000000000..6f9b5b5d57b1
--- /dev/null
+++ b/dev-python/boto3/boto3-1.42.4.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=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.16.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index a41bc49be902..d55c0ca95928 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -7,3 +7,4 @@ DIST botocore-1.41.6.gh.tar.gz 15619213 BLAKE2B 132f1020643f335793393f34545d7f13
DIST botocore-1.42.1.gh.tar.gz 15695042 BLAKE2B f0587a7e8112d0fd80cb40fb0da6cf88f3c0ec567a803a062f295624ca3541e0adb4cfc6d039e4bfdbcbf0c4ed07ae0117ce1ce691c6e95914bc4767d57324d4 SHA512 627ae08b65839f48fd24b567951e45363bb5d0c1ff566701a5396f6c6b0e5c58ce66143eb5bab64656d80c0751aad22af04a5d1f048d234a854325139c408846
DIST botocore-1.42.2.gh.tar.gz 15699929 BLAKE2B 9f809924aeb031313806c70207c2063c0a421695b2be1a246f886f3214ca1f7fee1ba25b456b654a93c1d682ed7988e9f5648ac91b1703a0ff534603b4e566f4 SHA512 e23157d1ef297f35cddc73ac43604b46e6274fbd1938b8bcb3a9dc142f4c47e377e8f3675e5045755e1ad70914c56a7a84ad3d39798f5486300a25ff3f4464ca
DIST botocore-1.42.3.gh.tar.gz 15700743 BLAKE2B d288896f8538dcb4e7589e641f8b2b0e78b9b45576a592ea105353ebcd3e03f695fff3e71af56dfdebd8cdf9cc35bc36593a30fabb02a78a7531dcbd000f2774 SHA512 d32b4b775f5a692c3f731b83a1538cff002c215a4a3947eb69fd27ddf638d47a41e037f7b8a6d73ec4acfaeaf5fbc649103051383f56190e25b5748fcd0b9d88
+DIST botocore-1.42.4.gh.tar.gz 15703399 BLAKE2B ffd1613284a8487fd2abf10f53fcdaa13746990f519e2bc511bd09daa2efdbbc03cd141f40d36c83dc8180229daddb3a064c6d5aae2bc14f46921f50edf0f528 SHA512 22bbda9f4bc36bd18802812c63d650b2267565c27e432f7105daaa2c85660d2e3786ee11837ce2affe6d130504f9a7bf5c9e7ea3be5699b5d32be3090fb71914
diff --git a/dev-python/botocore/botocore-1.42.4.ebuild b/dev-python/botocore/botocore-1.42.4.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.42.4.ebuild
@@ -0,0 +1,67 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index d12ab8aeaca8..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 271137de443d..7100f5f39dd8 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/librt/Manifest b/dev-python/librt/Manifest
index 6957e769a2b8..7137a5127562 100644
--- a/dev-python/librt/Manifest
+++ b/dev-python/librt/Manifest
@@ -1,3 +1,4 @@
-DIST librt-0.6.2.gh.tar.gz 82045 BLAKE2B 7dd42e06c4bfa77961a73d495bebf94b2046f84299360fdc93ddb9aea0ea50024c7ebf56e369155e1de98556f169a13179d83480d3a939bde362e4a103e39059 SHA512 8b36eab38aaeeffdd2f520a58df66c993efbf7a39dfa7c4c76d440e0d987fbd19b16241acddcac335867ade1f9320385aa01ed957859bd5f7de04ecfd8ffe2a5
DIST librt-0.6.3.tar.gz 54209 BLAKE2B 93f0cfaed3fb4868871149b752c5b2d7a7ec8ab67b9c5b2099f127d3d43fd939ef864d5f39884c8e1252e1c12fbdb0541617966207c0194a797d4f1744959788 SHA512 ea560ac82962ddadaca8b2b8981dae81ff9f1d891a994b0fc7778d48db2528ea7e2333721632665df3c85e86a87a9097992de17ca46abab0c7909d6c6424d645
DIST librt-0.6.3.tar.gz.provenance 9164 BLAKE2B 9c7d26223e381fd14f608f9082a28025db40d281a1d04b7ee56fddf72f4a12d9a31bc97f367306dc924f76f9ed7eea2f9f8f2d49c7a64b7fc3f5c658c3bba82a SHA512 e032f0d68d08f88f01ceedcfba7bca8f7de2f2089044a7bc1e4986e6b4cbd2847d9e40d5c4d16ca7ac526e13cc0f74e04e801c2ba09b2145f54da28c50b77ee0
+DIST librt-0.7.2.tar.gz 144193 BLAKE2B 72e1f613839b493ce823224810057f7f7161b8001eeac46b32b7e784ebc49da6c5de86b4b1074ee1d4fbff14feae963103224a991f54d2d3cef9be9599dd3dfc SHA512 472c4d7077fdb22ef30f6833620553b0b821ff9142d06041b3f84f5247efdeced966d160e61b9218e65ec3ec3463f843dc57c8478fd088c466904792d7096de1
+DIST librt-0.7.2.tar.gz.provenance 9211 BLAKE2B 30abcae4ba65ab329dbc18831407d48d12927dd2a745180cdb1bbb72961d8c73c1375f39494786bbbcf630e9354627e9a9c55e2353e0005a9e26c03935f31181 SHA512 4c6afc3f8b0a640a7f729aac617515dce7fd72a43e177cd550dac1299ee7552b003ac22e8bf0a4249df9738e3a3872741cc20a3b3041982b83a378fed7d73f03
diff --git a/dev-python/librt/librt-0.6.3.ebuild b/dev-python/librt/librt-0.6.3.ebuild
index 8be18b207754..3aa6b405cc0e 100644
--- a/dev-python/librt/librt-0.6.3.ebuild
+++ b/dev-python/librt/librt-0.6.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT PSF-2.4"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~ppc64"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64"
BDEPEND="
test? (
diff --git a/dev-python/librt/librt-0.6.2.ebuild b/dev-python/librt/librt-0.7.2.ebuild
index 0da3aa58605d..3aa6b405cc0e 100644
--- a/dev-python/librt/librt-0.6.2.ebuild
+++ b/dev-python/librt/librt-0.7.2.ebuild
@@ -5,24 +5,20 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/mypyc/librt
PYTHON_COMPAT=( python3_{10..14} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="Mypyc runtime library"
HOMEPAGE="
https://github.com/mypyc/librt/
https://pypi.org/project/librt/
"
-# no tests: https://github.com/mypyc/librt/issues/17
-SRC_URI="
- https://github.com/mypyc/librt/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
LICENSE="MIT PSF-2.4"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64"
BDEPEND="
test? (
@@ -33,14 +29,6 @@ BDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-src_prepare() {
- distutils-r1_src_prepare
-
- # this package is a mess
- # https://github.com/mypyc/librt/issues/17
- mv lib-rt/* . || die
-}
-
python_test() {
rm -rf librt || die
epytest smoke_tests.py
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index 5887db96aa71..c65acf301dd1 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -4,3 +4,4 @@ DIST libtmux-0.47.0.gh.tar.gz 357616 BLAKE2B 3372a0cb7fff2723ac21c364b1be813f4b4
DIST libtmux-0.48.0.post0.tar.gz 359150 BLAKE2B 8e105588e041e9ec106c6fba0419c601c9359242aef486690acf00da5337213f5718a67352f99fbc43abe267fb07feab7f232b9379b6eebcecadc551a2a04e7c SHA512 92df268534cb78fb39462f048b486487d095fab3dc2ff99092edea9dd9342edc2be97d3b7e3709fc39b9029e52ecd3f65ff3676bbce1f1a1545e35a505c8acf0
DIST libtmux-0.49.0.tar.gz 355432 BLAKE2B f6022b474168bfb1a71b319b1c6ebd3e290eaf4577576db72a877243d5ec81da86d4cdb7d1d979b5ef8f5ea22b590a8578285bf09699e122cab91a963a6f4fc4 SHA512 977f4da6f470474106f964559f1a40b0152b91ed7812977dbc504c3f54e1feff370c42b6ec259714b585e54edc55bf5422daa33e4cfafeff98f434038891d2a5
DIST libtmux-0.50.0.tar.gz 401066 BLAKE2B 4f8e24248d30ad5672eff5ea272223a0603eccfd158b735afe0ddb95c47f454c89f4f4fcc3c9d66d9e3e63cf881e6d0d442ea057abb5a925f5eae9760a99e8fd SHA512 101b7a3bc3c980aa9b5d8e3f7d3ce3c00ee778c5bdb6d65ca16782780982539409f2afa822171acc7913ec3c48bfc2e684d5a1142c85ab6b243c36f2efbe72b0
+DIST libtmux-0.50.1.tar.gz 401531 BLAKE2B 0d6490122e21f0a82435e6506e1269fdf33478ab9fd8770b3147d517ba766b48de029d4ce6d7d78e5976bbd280137bd71d1cab590df2ae67e6c85bd4728e3475 SHA512 e3fccda1383b8443da55916f82a892d704248fb12b4afedf87f9fade6d69dcd302300af12fb9be5f783c1422973cd242431ad8f6f70498e1e25d2e90d6d3c663
diff --git a/dev-python/libtmux/libtmux-0.50.1.ebuild b/dev-python/libtmux/libtmux-0.50.1.ebuild
new file mode 100644
index 000000000000..a0efb8667565
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.50.1.ebuild
@@ -0,0 +1,37 @@
+# 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_{10..14} )
+
+inherit distutils-r1 pypi
+
+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/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=app-misc/tmux-3.0a
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-mock )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+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=
+
+ epytest -o addopts= tests
+}
diff --git a/dev-python/marshmallow/Manifest b/dev-python/marshmallow/Manifest
index 9df1daa024f6..25bb19cb91b4 100644
--- a/dev-python/marshmallow/Manifest
+++ b/dev-python/marshmallow/Manifest
@@ -1,4 +1,5 @@
DIST marshmallow-3.26.1.tar.gz 221825 BLAKE2B 37ac0cb401efd046070a406cfbbfb130020dcd0f60e8244f8734b28b9c1a3c151d8550016fb54d83861dd61f7d60c6157469fa575e2df1474f45e70bed7b8cd4 SHA512 b0146313010d03d7c5e4808bfb274e2923df455c34e5d31931a35b76c713dd1e403fdb0da95ba4f0eba3bdb747a57c4f85f296aad870170380e4d54fc6824d1e
-DIST marshmallow-4.0.1.tar.gz 220453 BLAKE2B 1bb1e81ee7e1cf378693f82506bde523b2f701d3e9c0c7e26b97a27323beaa3eac5a1a5f413ceecf291b708fe30ecf809a9675a7d43399f3e5420db8cc50fea7 SHA512 01d5bf587d5ec5b6032cd7595a2eb3ed24b19f903926f8de5a56e3c0692d14cddd037fb27a02b52e8940c5092fcb0c8c66804e1f0a2e861f6caf5d5897890089
DIST marshmallow-4.1.0.tar.gz 220619 BLAKE2B 67ffa46f347064a1a4e6069444fb2d1a020e44ca6680ac593b975c807439e518de0937879f217e75261f3f3688e9aa352f4cc9d1944155c5039602383a0a6647 SHA512 48a8dcea2e7219b7c312f8b9aa2ca17a49253f1abb6994f60052d028252e34227efb32de2a0404c29171a41574e7a75a6f84522b9dcf1822658a47ae40dc8dcb
DIST marshmallow-4.1.0.tar.gz.provenance 9352 BLAKE2B 37cfda9136c3ad48ad94ae465ad09c693ffca729163316fa7f4f70f35bdfce5618ce3360896a019e670067734d88519b92f4164332058e5af48787ffacfd6c42 SHA512 a1cb86a2a1e31ee348ede77a8e300a47dedd1b5ba80519637639b619180c5beaff8624a4b319d65977345ff86092f504eb035b4620c2a1c74684443bcb638cdf
+DIST marshmallow-4.1.1.tar.gz 220720 BLAKE2B 1001529f1bf36cf05233733c9f4cb517a067c2a3f5c5bed69f1d79d24b72257444486e14e63fcefc630091a8799ec6ef5c69a1c24f8304f784e823feeb263876 SHA512 0a2262b93c4f3f732e65df43a194f55c0e9951ab74ce2071fbffd16c9bd9605246e3af08e21e538554ea12f70f82cccffad708607895468056bdf72df24dbf4a
+DIST marshmallow-4.1.1.tar.gz.provenance 9573 BLAKE2B 46a74737e14015f1ff20d6901c8f74f844207a4de1448c0de7ed9875ab864eb81cf0a273d6774ee6c37329c36958c0a3342da8064587de6bdecfde1245bd3051 SHA512 376285359d6e255c5168f9befac7d5538a34228097fe4c262a680c2dec317182e902306ab581184fa0b73469d9b997424b7836b2c7d4bb5738c37aa0c245e8c8
diff --git a/dev-python/marshmallow/marshmallow-4.0.1.ebuild b/dev-python/marshmallow/marshmallow-4.1.1.ebuild
index ff440fb555b2..85752286282a 100644
--- a/dev-python/marshmallow/marshmallow-4.0.1.ebuild
+++ b/dev-python/marshmallow/marshmallow-4.1.1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/marshmallow-code/marshmallow
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/orjson/Manifest b/dev-python/orjson/Manifest
index 2c9f2ab2e468..88498f00a0b4 100644
--- a/dev-python/orjson/Manifest
+++ b/dev-python/orjson/Manifest
@@ -1,3 +1,5 @@
DIST orjson-3.11.3.tar.gz 5482394 BLAKE2B dfe5620b489b360d4370fbdf673bf6b8ef8306aaa628eaa7a58e6096981f22e5bf2def4b181b4a7aec6e8ee8cef360f7c3187ff49a90adbafd3c16a2cddb2808 SHA512 5ca76b94241f154b1f9de575ce0eb73d6a89db4172cf0f6ee2c470cb24a0cb96464558b13bdec5f03f0ae0936f39698d9761933eb3b4ae3654cac32dd24f1620
DIST orjson-3.11.4.tar.gz 5945188 BLAKE2B 255a5d00f084b62059de83745c46c15deccdf8692fa7023566c9cc2c7eb00786b4efc2a021c9b6b329d08042641831e08828f24d9ec9a3ae3bc0cb9daae9f79d SHA512 15e1fe6df2084446301b095b3d1f5665f604f5bdcac25579fd424ddd4df3819413c0d785bc3ef08b7a6ef8d57ba2526028d719c7396db88a477bb0c2e0bbf230
DIST orjson-3.11.4.tar.gz.provenance 9236 BLAKE2B c971dc83058c3d40fc4b96c7afdb4edaedf25fb720f58ce4e6dc0263390c17f1eea5ead4bcc4161d2681b82ba1f89a76a24460fb6ea6c3e93d2fcda5632936a2 SHA512 d57df6d9c3abfbb82777f84c60838c4851083eefa224d85cecde9525e4a4c59f07e8bcd7fe4e276dba80d4554b006554b68a62ae252a30baf0e713ca3db78f01
+DIST orjson-3.11.5.tar.gz 5972347 BLAKE2B d006a0ef4722935024561d58c8c346f59a737904add18f673308d5810f3f7fe2d7f8a657c31866b3806b923d6261c642870011f8d4d53270fcf23796b6d6877e SHA512 8221d883840966d783d24ba61c716884dddf01c42593416a83cb3e4fb3e6d21b49dad47ae9fe3317e4e5132b52d681de211f630f1673b3866dbde962611b098f
+DIST orjson-3.11.5.tar.gz.provenance 9030 BLAKE2B 3f647dfb032c5a61d6b0fc105781197aea53c39c3f57c43f0290b3ae59493511df85761789aa6b8ec3b56e00921129860172714c3f36aaf7c031a44d6d388dae SHA512 00a25d0622ad054fac6b44434736f999b115f1967b06ce472d312f9710414f55c35b93983fd698bfb579a4d1cd51cb90dce780df3b197c830844bbcf135168f3
diff --git a/dev-python/orjson/orjson-3.11.5.ebuild b/dev-python/orjson/orjson-3.11.5.ebuild
new file mode 100644
index 000000000000..439872eda603
--- /dev/null
+++ b/dev-python/orjson/orjson-3.11.5.ebuild
@@ -0,0 +1,92 @@
+# 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
+PYPI_VERIFY_REPO=https://github.com/ijl/orjson
+PYTHON_COMPAT=( python3_{10..14} )
+
+# upstream is vendoring crates
+CRATES="
+ associative-cache@2.0.0
+ bytecount@0.6.9
+ bytes@1.11.0
+ cc@1.2.48
+ cfg-if@1.0.4
+ crunchy@0.2.4
+ encoding_rs@0.8.35
+ find-msvc-tools@0.1.5
+ gimli@0.32.3
+ half@2.7.1
+ itoa@1.0.15
+ itoap@1.0.1
+ jiff-static@0.2.16
+ jiff@0.2.16
+ libc@0.2.178
+ memchr@2.7.6
+ once_cell@1.21.3
+ portable-atomic-util@0.2.4
+ portable-atomic@1.11.1
+ proc-macro2@1.0.103
+ pyo3-build-config@0.27.2
+ pyo3-ffi@0.27.2
+ quote@1.0.42
+ ryu@1.0.20
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.145
+ shlex@1.3.0
+ simdutf8@0.1.5
+ smallvec@1.15.1
+ syn@2.0.111
+ target-lexicon@0.13.3
+ unicode-ident@1.0.22
+ unwinding@0.2.8
+ uuid@1.19.0
+ version_check@0.9.5
+ xxhash-rust@0.8.15
+ zerocopy-derive@0.8.31
+ zerocopy@0.8.31
+"
+RUST_MIN_VER="1.88.0"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
+HOMEPAGE="
+ https://github.com/ijl/orjson/
+ https://pypi.org/project/orjson/
+"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT Unicode-3.0
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ >=dev-util/maturin-1.7.8[${PYTHON_USEDEP}]
+ test? (
+ dev-python/arrow[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+QA_FLAGS_IGNORED=".*"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_unpack() {
+ pypi_src_unpack
+
+ # https://github.com/ijl/orjson/issues/613
+ cargo_gen_config
+}
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index 6cebbbeb8f53..7869acc96191 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -6,3 +6,5 @@ DIST pbs_installer-2025.11.20.tar.gz 64231 BLAKE2B 6b59429ee407ed3dde8b9dbd9b2d1
DIST pbs_installer-2025.11.20.tar.gz.provenance 9511 BLAKE2B 963c57d7836ad2a032570ce2dd928599d4067810b12306f4158fcf848dcf71fb967229b7b2f2d9ef2f4b9b03f6bb297a49f19114556b0b2d1a3bd4dec3a2a554 SHA512 8171f71c6c747b725267b041c02cdcfdd1e5cc7271c7f4bc8d2883035846969d9725d1261800cc7b4ed3d94b978a80dc9c9d7c5a7f9fc6c5d22b3bf3e258d881
DIST pbs_installer-2025.12.2.tar.gz 65622 BLAKE2B 202b64583a0e80c7a9690d0b1b510244c7ff18f24b1f79a328e315930815ab11fea6a10ea6d2be841a2b12559b30c6fd8476a33d7be8fc7c0655ccd818d9dfd3 SHA512 39e67d67c2351b0101410c75d028614be701a4a07c76160df9d7a7263fca8dbf270a756219ec45fd425a516a54245d515fe3ae214c85beb07c5918f2dd49668a
DIST pbs_installer-2025.12.2.tar.gz.provenance 9646 BLAKE2B 16b8d478421f8ccd28a7b79ace3ed97aaa0da0e8fb76181bf25ee6a0f639c1b6d346fff6d2bfb305a0676335976b0e7041ed08eab312d2be3b0ce0e9117daee5 SHA512 3a8214dedb8730123916adfdbe80ff0962f7840dd521b444a77ee6e5f0ebfd354677b21381fc204e03a8b7aff0e49aea81fe62f4374545f5a2e7dc49143c4f32
+DIST pbs_installer-2025.12.5.tar.gz 66986 BLAKE2B 608a6ccfb97f693277b7290cf2b4ae83db63ea997821bddd1d75a34495d07da653054c0ee412e7dd99ae05187cb0bec05425813e16a135837d17cfbcbb6b3dfb SHA512 2c57b420e506b1ddcdacbdd26e7b8a13c451b0def078f539e4a482ddcd7e8473761663b219b817a2f7ba0f67e77512b3d146ab3060f2a8e645ecd2aec9fe59ad
+DIST pbs_installer-2025.12.5.tar.gz.provenance 9458 BLAKE2B cc4927c5460f7ad4da3a3ff1e4d819b02727ae4b21fac220cc4d29624d31fd187b893924f366a761a617fb9652f692a6a17f85a687ba0ecc39a3a87d7e583d19 SHA512 eb32ed101700b502c406170ce07b2a9ac5a6240c5ab36a2824ab1682e0d70edb4117734a96f2c34521f01167c8c9c49c6b4a9308bd0d42314fdda7db25fbe2ea
diff --git a/dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild b/dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild
new file mode 100644
index 000000000000..ba26c68ac2a0
--- /dev/null
+++ b/dev-python/pbs-installer/pbs-installer-2025.12.5.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYPI_VERIFY_REPO=https://github.com/frostming/pbs-installer
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Installer for Python Build Standalone"
+HOMEPAGE="
+ https://pypi.org/project/pbs-installer/
+ https://github.com/frostming/pbs-installer/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# httpx is needed to download builds
+# zstandard is needed to install them
+RDEPEND="
+ <dev-python/httpx-1[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.21.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-import-check )
+distutils_enable_tests import-check
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index fef85a861da6..617103069549 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,4 +1,4 @@
-DIST python-phonenumbers-9.0.16.gh.tar.gz 4916084 BLAKE2B 1e17e917079b336a174f940f955b37b894a39067bcb1539c3023a37e75b8530a6b6448a43413f912f4863427aa80401179fd011d33c94a204ee8a497e37216f3 SHA512 55f28d7b39b455ffbdb8f4c33106057ea7ef3f9b81945564ec982dc37a6bf5b454e2f80e8a36406c4c004490ba30d81a6226d79124ca829504540f2a67904cb7
DIST python-phonenumbers-9.0.17.gh.tar.gz 4916708 BLAKE2B d223c5d980ab50c89dac61e1957e1a7798759eb59a1594e88155dceb2a47eca79a3d8775ae22820bdd19f4b663c78150b23a8e6c60b0a2555bd7cd901b4b62eb SHA512 3f562bea41b2f66a98e4bdfbf73abef8fb6eb596e66bb941ec37f001599b6bf56d9edf7cde25e7f80136bbf7c921e299c499f37a37d4c92a16d2d7cb4b0f52cf
DIST python-phonenumbers-9.0.18.gh.tar.gz 4915674 BLAKE2B 240a3ecbe0c80ddfa6ff6bd9136b82ea9acef0db42e0a82917065b3126b6d55d359a2eb32c136d926b6f42d9a6bdca1d7c5634a2493f48d937003401d8ad4d4e SHA512 a05917d7a654fa1a3a1daa1ad473980b75119e38443bf4fd14d520f42fa74497472acfe2a877a57832f86e1472e1675195bd659585710fb00f92ed64598a5b1c
DIST python-phonenumbers-9.0.19.gh.tar.gz 4916374 BLAKE2B daf5d73eac5cf622c3116aba3f4fa19f79d594fcab92ff89bfa896ece5d09610b4a5b1f4f183de627ed020be7c90a77836199b1f24c634c468b3f41acb7c29de SHA512 cae994c1a1d28755126a1e7e96cbd8f289a342271b19990086bc8bc626250da8e3f31d9b5286bf551420de0f66f01c79d3b1d3009b135a399795669ebd4e6826
+DIST python-phonenumbers-9.0.20.gh.tar.gz 4917117 BLAKE2B 31db2004c93c27a204601e00e2e0923121eedd27c1308e3c23ce0553531d7065314e8dd31daba1eeacc73fe045b26d34ae0115e6420b660661ffa07f9585ef5a SHA512 1622e5460c6897891550f6cee12006414000a4d19029b8eb692cfbff909b98d4cf143f73c69b7712ca1ff32e262e8e8b7d49d1977777e0134b90183a859993c4
diff --git a/dev-python/phonenumbers/phonenumbers-9.0.16.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.20.ebuild
index 51df4f44bd31..e2a1efa5ccaf 100644
--- a/dev-python/phonenumbers/phonenumbers-9.0.16.ebuild
+++ b/dev-python/phonenumbers/phonenumbers-9.0.20.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}/python
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index 0de00930d8a3..8319378c54a5 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1,2 +1,3 @@
-DIST platformdirs-4.4.0.tar.gz 21634 BLAKE2B cdfa2e7bde37b5d1a5e3eaaca33001510a498538909f4c8d61bf4ea32c0f0085aa3bf4559392a6df12da7611e68b854f4d70abcef1eb830457f589074ffed3e4 SHA512 04580eec94b5aa1149427e7a44789dcd443d2b9a4f002669fe1a0e4380c12b97d02ef4314c96e340e664aa251e42a4fd4bfc0d69a8191851962255689544e3b0
DIST platformdirs-4.5.0.tar.gz 21632 BLAKE2B 06de7250dd254e03c29d32d2dbb9da65078c480e2cbdafe3dafd5602182b4472f5078d66a30a04e22c8493904097a60c82ac734b1d0ba304088b0180878dbf7f SHA512 cefe512f8f6cbe989eacdffbbb98a964000855cca46faade62180837d7e21dd6c43eb172211e55fd04090df04e2ef416d49e92d7ccc3a0253ce2a88fc3fb9358
+DIST platformdirs-4.5.1.tar.gz 21715 BLAKE2B f987cafe13a440716d73c6f98183bc1b4ae7d778931a81a4f140273d9fd1bc51e56633ff4a4381dbc2050284d9d0fa085ab54adbf504807c715f3441b8c8dab3 SHA512 33651a2aba8e844027d22f1e7a48fb32750a81a8d73807a4f10f37f1ba7ee8c8d3b2c391920328fb34fce1d3653e6d7f097a2c5e09b350a8ebfb6f21e3b1c488
+DIST platformdirs-4.5.1.tar.gz.provenance 9300 BLAKE2B ede576d4aa1a03871bd448efcd9613a209651bfcd91681a7afd680cf8f75e5dd8fbe6bca298a9cb51807da06f32fd80b27ba6adedf8b504c556724bfc18c3bf9 SHA512 6ad9983c790a1765ac70544f1ab04ecae0697d883fb355b6771688ac1b564e3b0fa7e8f538e586315d8a1e2f8e970b5818ba254546c6ed578ecbc56d6bfa42b0
diff --git a/dev-python/platformdirs/platformdirs-4.4.0.ebuild b/dev-python/platformdirs/platformdirs-4.5.1.ebuild
index dc28e7a1cbaa..7808a235fbbf 100644
--- a/dev-python/platformdirs/platformdirs-4.4.0.ebuild
+++ b/dev-python/platformdirs/platformdirs-4.5.1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
@@ -16,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
BDEPEND="
test? (
diff --git a/dev-python/protobuf/Manifest b/dev-python/protobuf/Manifest
index 4b3fdbe5c5b8..ca46d585bd76 100644
--- a/dev-python/protobuf/Manifest
+++ b/dev-python/protobuf/Manifest
@@ -3,6 +3,7 @@ DIST protobuf-32.0.gh.tar.gz 9692366 BLAKE2B 37e09bec62a5c35a3ca45d4bd4fd27e719a
DIST protobuf-32.1.gh.tar.gz 9694736 BLAKE2B 37a310799eaa58b14f67c62410f1e150c031b94db5a499ceeda749bd13a1165403a5d4c86ffa45729ae333080697ce0619b29a51d2bc345de012f99a3ce5dd20 SHA512 840239f4fb57450ffe61f2cdc73daf5f1f3ea317b1ab1135a90303783e62722cfa410ff27bb2c5c6d3106be39ccdc95cdfbc5bf271ba79f935ab85f9b8ce3075
DIST protobuf-33.0.gh.tar.gz 6869946 BLAKE2B ee9a600d67873f129138cb3ab13b3d5197301e8cfc682f194317c8389f7115d10bab73e410116570f8f0ccfe2dc20f8f629b47c90f7b31a3df54acfacda18506 SHA512 365f975f2e982dd2d5588dc0ff435316bf6e50d272e419c01793e4d02f1a9f1e98026fc854ec73f1ee4eb0391701201ae82c7af9b18f3b677d451dd3dd78c468
DIST protobuf-33.1.gh.tar.gz 6869948 BLAKE2B 7eaa5ee84d0869bb8e0adcbee094f8893130a957a16772a9f0dae855f914c8a2957b69765601552e3630c18c567a270e31eb24e20ef1bea16082fba7e41c0d35 SHA512 1d93ba3ec5a38de4d2ad7f139ab017c5539580b33694f659fffde08aadc7ed986f8fa93eaa98462d911472031c387194982220ef9e1a0631fcb1fa7eba8ba227
+DIST protobuf-33.2.gh.tar.gz 6875303 BLAKE2B 74e09134d5a8c524f1c2c11244d41c7b26a075872fbf99a95759878cf8e6a3effaf946b7e1994f3cbdfd8a465218bd1f226278e9e6ac6b1f9a1f7d54a0a366cf SHA512 7b84fee0cb0a3b5de4b59899b12a7cccfe330b588a26bf397ec46c3ac61ce883018116f6a0ef73e621b35e7eacde1d13086317dad5cfa1066aa558c950ef48a2
DIST protobuf-5.29.5.py.tar.gz 425226 BLAKE2B 1d7461e94ba8bc097d6f52170678665e3cd97ef44e4757e6c20bcb1bdfbfe673d26cd4a63f8e6972af964e381dfffedeb9a4959ec7a7d5a3a3f87f917c8aa329 SHA512 cbb39efe7f6499362b3e4cc9f073df921c8b83d3aafde245a2ca3432f3e744a428e946799c48b2797e08312342e164eced0bf2b8865b8d042b54913855abb1c8
DIST protobuf-6.30.2.gh.tar.gz 9523913 BLAKE2B d3950abfe8b3b61dc2bb61f683b014de29451252c46b670dee75a81eb0b8ed30a3209227aa9483800244af16058469deb281521609d769a3456a798ca8a9a4a3 SHA512 f2ee857a36b49f87257a306b3f3c361770d74aaf24c4650b9d00994e1e1a0b09079fb0ce5ffb4d5a4a32d8ca46e3247d6db454918fa0b104fc8d58e8a0546a96
DIST protobuf-6.30.2.py.tar.gz 429315 BLAKE2B 6b56e23a8a962ce9da282ec49c4807877f4bfb677ad84bb6930b83cc436e9839f5791cfb19105678881c8361e27d62d3dde51e5e6c42f7a0e146d9e469282780 SHA512 48ddb2b63acc91759ba4243926c50bb0d16601aace9019129975701634b77a59415659751c69b06464afe994a0fbbd8da6640a208b743ba7df8bf6d60c5ec2b9
@@ -12,3 +13,4 @@ DIST protobuf-6.32.0.py.tar.gz 440614 BLAKE2B 615338e96a26c5a9f254b41da41598d982
DIST protobuf-6.32.1.py.tar.gz 440635 BLAKE2B 4d6c7c398378e04f130ec281234a96ef59fc34511d9c1c3153851a2623b894dc64d559e02bd8f55c9b7f82d98d43e914ca5967481dcf4eb92f7cd22aa47a4e77 SHA512 f8aeb9cdbde385e728f3006d16f26c540a5ec46f7046486b34cdf254a22acdcf6a152791517cd852cfa866809b0b79b3233757c4f898e4768d00b0d902c30776
DIST protobuf-6.33.0.py.tar.gz 443463 BLAKE2B 32d7a4e03912356836f748a6d255f171778c91f8d45718d9d1cd67c0c1e5123d74dbd2529baef13c09b022cb2555c1a0852490bde9b6aa7aeda320f062278bab SHA512 9173f832a2e285095ab2e479f7b8155e1005f38cbd385f3752ecd3f68281f1b2f530a12cd784d293263a233fdb94f5f6c5dc988e29fe3345d3e721d8d7ba2dcf
DIST protobuf-6.33.1.py.tar.gz 443432 BLAKE2B caded926803516b1d9a37f3ee4dd05ba683a23fd5bfb53b3a26e6dd06a967e91da21e4fa6b85adbe568c0abc264b67de1c9d15b965606011d7f20e6a7b6096e9 SHA512 bb9eb03a4cd59f2e0085fe72b6099a8ac749b16abcf26c9ba98410dc3258559cb5fdf7a090830234d575e3d648cfeb3dce4413bc4804026227762f18daf9c960
+DIST protobuf-6.33.2.py.tar.gz 444296 BLAKE2B d91fd1164ac67c33b04a4f882aba253bd9736de61bf23c082808fa311a2a17ae6b1b26a8fcf11257127a3374e1f8ae979261f3f1ebdbd51d4b3a19f310a5170d SHA512 ee52d5d3f8726e0d86cdeb522ec22b5366ee87cfea86a679cd188857103ba040bb6f0cae956ba7e3ecc05ef7e4ad3c691ecfd99b0710e909a7ebf66108cf1b7a
diff --git a/dev-python/protobuf/protobuf-6.33.2.ebuild b/dev-python/protobuf/protobuf-6.33.2.ebuild
new file mode 100644
index 000000000000..d7dcaa3cbc5a
--- /dev/null
+++ b/dev-python/protobuf/protobuf-6.33.2.ebuild
@@ -0,0 +1,154 @@
+# Copyright 2008-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Default implementation currently is upb, which doesn't match dev-libs/protobuf
+# https://github.com/protocolbuffers/protobuf/blob/main/python/README.md#implementation-backends
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+GH_PV=$(ver_cut 2-3)
+GH_P=${PN}-${GH_PV}
+
+DESCRIPTION="Google's Protocol Buffers - Python bindings"
+HOMEPAGE="
+ https://protobuf.dev/
+ https://pypi.org/project/protobuf/
+"
+# Rename sdist to avoid conflicts with dev-libs/protobuf
+SRC_URI="
+ $(pypi_sdist_url) -> ${P}.py.tar.gz
+ test? (
+ https://github.com/protocolbuffers/protobuf/archive/v${GH_PV}.tar.gz
+ -> ${GH_P}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# need protobuf compiler
+BDEPEND="
+ test? (
+ dev-libs/protobuf[protoc(+)]
+ dev-python/absl-py[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ unpack "${P}.py.tar.gz"
+
+ if use test; then
+ mkdir "${WORKDIR}/test" || die
+ cd "${WORKDIR}/test" || die
+ unpack "${GH_P}.gh.tar.gz"
+ fi
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip old-style namespace
+ rm google/__init__.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ local EPYTEST_IGNORE=(
+ # TODO: figure out how to build the pybind11 test extension
+ google/protobuf/internal/recursive_message_pybind11_test.py
+ )
+
+ case ${EPYTHON} in
+ python3.11)
+ EPYTEST_IGNORE+=(
+ # syntax error...
+ google/protobuf/internal/json_format_test.py
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ # exception message mismatch
+ google/protobuf/internal/json_format_test.py::JsonFormatTest::testInvalidTimestamp
+ google/protobuf/internal/well_known_types_test.py::TimeUtilTest::testInvalidTimestamp
+ )
+ ;;
+ esac
+
+ cp -r "${BUILD_DIR}"/{install,test} || die
+ local -x PATH="${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}"
+ cd "${BUILD_DIR}/test$(python_get_sitedir)" || die
+
+ # copy test files from the source tree
+ cp -r "${WORKDIR}/test/${GH_P}/python/google/protobuf/internal/." \
+ google/protobuf/internal/ || die
+ # link the test data for text_format_test.py
+ # (it traverses directories upwards until to finds src/google...)
+ ln -s "${WORKDIR}/test/${GH_P}/src" ../src || die
+
+ # compile test-related protobufs
+ local test_protos=(
+ # from src
+ any_test.proto
+ map_proto2_unittest.proto
+ map_unittest.proto
+ unittest.proto
+ unittest_custom_options.proto
+ unittest_delimited.proto
+ unittest_delimited_import.proto
+ unittest_features.proto
+ unittest_import.proto
+ unittest_import_option.proto
+ unittest_import_public.proto
+ unittest_legacy_features.proto
+ unittest_mset.proto
+ unittest_mset_wire_format.proto
+ unittest_no_field_presence.proto
+ unittest_no_generic_services.proto
+ unittest_proto3.proto
+ unittest_proto3_arena.proto
+ unittest_proto3_extensions.proto
+ unittest_retention.proto
+ util/json_format.proto
+ util/json_format_proto3.proto
+ # from python
+ internal/descriptor_pool_test1.proto
+ internal/descriptor_pool_test2.proto
+ internal/factory_test1.proto
+ internal/factory_test2.proto
+ internal/file_options_test.proto
+ internal/import_test_package/import_public.proto
+ internal/import_test_package/import_public_nested.proto
+ internal/import_test_package/inner.proto
+ internal/import_test_package/outer.proto
+ internal/message_set_extensions.proto
+ internal/missing_enum_values.proto
+ internal/more_extensions.proto
+ internal/more_messages.proto
+ internal/no_package.proto
+ internal/packed_field_test.proto
+ internal/self_recursive.proto
+ internal/test_bad_identifiers.proto
+ internal/test_proto2.proto
+ internal/test_proto3_optional.proto
+ internal/well_known_types_test.proto
+ )
+ local proto
+ for proto in "${test_protos[@]}"; do
+ protoc --python_out=. -I"${WORKDIR}/test/${GH_P}/src" -I. \
+ "google/protobuf/${proto}" || die
+ done
+
+ epytest
+}
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index 09721d36820c..7fec59d6c41a 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -5,5 +5,6 @@ DIST psycopg-3.2.13.gh.tar.gz 585567 BLAKE2B 244c9b51ae88dfafb235c65cec69b556ab6
DIST psycopg-3.2.9.gh.tar.gz 565735 BLAKE2B 5b9b16e5e310214bdbf12198a7b8d9d86ed7b7e947a33c7333fe79bca946b76f09c60ea25960d3cf3f99423598a65ce33b53bd6dc10a9c68a930a46068b54fd6 SHA512 3e455852dd19c9639a8ee18773486295ea76f9a16146997be9dd4f3f6350257440e0d8fff9494acb79e95f04e74c0c14ec7968694fe329abeb74edcfb297d4dd
DIST psycopg-3.3.0.gh.tar.gz 607828 BLAKE2B 494ce84ffaaecafccb353697198077d7bb60f9ed17171bb3946f5501c8e67d1e240fa08f228bdc9f61988c9c6487930df49112be7f658d1b8e3146c8aa95f729 SHA512 48a184e2629d7317c9a6b80addf5405feac4ba0f477c12c5ee9bc826bc132c8874020b62c28df9ba92e2655edf15daa2a619c9961cbe71dd2ad7d5b9580c6389
DIST psycopg-3.3.1.gh.tar.gz 607864 BLAKE2B 6cc1ead0c0fc612dd15ba24f067c80b4b6efff73fa3cfe193d617b34f1e2d7f3aa4e793f264703d1ded48da376599e3ee7e045f87420abe024aeca27c80ba19d SHA512 abd7c49e1607a0262434f4f506af71a0c4aea30093ed1f63b5919a5d7bc81e2c82aa933f345c3bbe2b15e92a300246bb3378d0cca72aec189b4a26818d35d4ff
+DIST psycopg-3.3.2.gh.tar.gz 607955 BLAKE2B 8a7d9e74f573ceb5e51b0eab6fd7a17de371de084d48b15ec4a61e3a9e00c8027bb2d024b768f1b57e12fe9d125d1724b164613e9b872dfb8eab1f87e16f8079 SHA512 354e3b6666d0ce346734f290ff6907e0b0be0959dbf739ea6c0f6503a063f710ff5c0a3b02a63df407059ecc9ff2310b3a8617df754d237af44b249d7e92ae80
DIST psycopg2-2.9.10.tar.gz 385672 BLAKE2B 4a3ad64f406c427b785ffeb85f6520aa67ed04de2d1749eb22d8275146b71ba451f7c04c9ead401d6f7a273781492cd6a5a36beba68b36b1e5203ee75f7df503 SHA512 d0916f6a645b5e87f89f2463dc22fad78340a85fbff320d099bf429a42557f40d3a4eebdc670768469aef1e9fcee60123767bfe49e1186e8574f95bfd6f46900
DIST psycopg2-2.9.11.tar.gz 379598 BLAKE2B 78608a2b4a9b1db9ba9873ce01b84f898489de8ff6db5522ecc2fa68606b0ef8cdab7f137c86cf840509c9161b329a2efc1e1aadc494b565226099e8651372ab SHA512 44f7b03d958dc62822be8a8c38d738c4016c3a1f860c824158b78ba0a23f04ca63377171b22a14e38b76df868458ede25f29e4643197912adb2f1a1db8c0d5c0
diff --git a/dev-python/psycopg/psycopg-3.3.2.ebuild b/dev-python/psycopg/psycopg-3.3.2.ebuild
new file mode 100644
index 000000000000..a140998eddd6
--- /dev/null
+++ b/dev-python/psycopg/psycopg-3.3.2.ebuild
@@ -0,0 +1,123 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="
+ https://www.psycopg.org/psycopg3/
+ https://github.com/psycopg/psycopg/
+ https://pypi.org/project/psycopg/
+"
+SRC_URI="
+ https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="+native-extensions"
+
+DEPEND="
+ native-extensions? (
+ >=dev-db/postgresql-8.1:=
+ )
+ !native-extensions? (
+ >=dev-db/postgresql-8.1:*
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
+ ' 3.11 3.12)
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-db/postgresql-8.1[server]
+ >=dev-python/dnspython-2.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio )
+distutils_enable_tests pytest
+
+python_compile() {
+ # Python code + ctypes backend
+ cd psycopg || die
+ distutils-r1_python_compile
+
+ # optional C backend
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ local DISTUTILS_USE_PEP517=standalone
+ cd ../psycopg_c || die
+ distutils-r1_python_compile
+ fi
+ cd .. || die
+}
+
+src_test() {
+ rm -r psycopg{,_c} || die
+
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" test || die
+
+ local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for the psycopg_pool package
+ tests/pool
+ # some broken mypy magic
+ tests/test_module.py::test_version
+ tests/test_module.py::test_version_c
+ tests/test_typing.py
+ tests/crdb/test_typing.py
+ # TODO, relying on undefined ordering in Python?
+ tests/test_dns_srv.py::test_srv
+ # requires pproxy?
+ tests/test_waiting.py::test_remote_closed
+ tests/test_waiting.py::test_wait_remote_closed
+ tests/test_waiting_async.py::test_remote_closed
+ tests/test_waiting_async.py::test_wait_remote_closed
+ )
+
+ case ${ARCH} in
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/types/test_numpy.py::test_classes_identities
+ )
+ ;;
+ esac
+
+ local impls=( python )
+ if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
+ impls+=( c )
+ fi
+
+ local -x PSYCOPG_IMPL
+ for PSYCOPG_IMPL in "${impls[@]}"; do
+ einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
+ # leak and timing tests are fragile whereas slow tests are slow
+ epytest -k "not leak" \
+ -m "not timing and not slow and not flakey"
+ done
+}
diff --git a/dev-python/pudb/Manifest b/dev-python/pudb/Manifest
index 597c727e0271..5bf7badf782e 100644
--- a/dev-python/pudb/Manifest
+++ b/dev-python/pudb/Manifest
@@ -1,5 +1,2 @@
-DIST pudb-2025.1.1.tar.gz 224765 BLAKE2B 997e1f7b905ad02da01560379de3d7a01f1089e3ec39d7282f78b783fadc2a625147ab6ed2c584cb1a9d6db24098512294d821466cd826f786812e697977006e SHA512 b4d66303226064101efc0809328bf91a7c2d86dae5aab46df128694a68943c128fe390608b774134572e0283aa6f6fc1ed4b4fe2f7ade290f9fbb017fab15a66
-DIST pudb-2025.1.2.tar.gz 225444 BLAKE2B 257cf7a72df34a6f80ba18fc79c92739e5714c5dfcba9d42da48591de6fb0289dbaead776db582d2dd47a1a8bed86b1e857946987871bc51593c9b4ba5f9d8f0 SHA512 b7dbf5fe9ab757bf7ba01fda235607eda17a44f33b9585bd48b8ae1c576f969874032dec2513c661564c913b5edf5c6611f4d29818f9a0d156c45a04b3cd05a6
-DIST pudb-2025.1.2.tar.gz.provenance 9451 BLAKE2B 91a6febccd0e406fbafc4fe2ae7574d66062b725416364eb097a5fa04faf49e0861f01e11dd15e1a2953a92bc0e44ab1e03f40541fbffa091cd2b86b6afc0785 SHA512 aca765a1a2e90e653120eeaab51f2bec1fde8e09f6884c80fb39cabda27df595936949c1d0fa1feefd76270dec19d5d90348023e2faf889742cbefb708f56e5d
DIST pudb-2025.1.3.tar.gz 225627 BLAKE2B 64e4cf3fe1fed96fb6bb26339d02f85528bb8ef90a62fafea358f405b8303d3a1783fb507503dac28f390b6d4f891268d51aabe72c05408daefaa7d9388e8ed2 SHA512 68be2941ed57e6116b837049838253f2ec4d4f412ece601e8796ea1e33a29fac565e48abeed1e6e61d5a1532ec0bb3eb52b3d2b77598e6922f4565fea21ed398
DIST pudb-2025.1.3.tar.gz.provenance 9451 BLAKE2B c0d9c787aee05712c5c081c21155ad9b723fce29c6a4a5ceb5acc9f3f470dac9c52bcf188d628fe409e3882e777810509a5b7473711b18d8f7843d7e78811e5f SHA512 9fa91482449f60d0e46ceb41fb9c485cdde40272f88ef2424b1782fad02d5fcbfe7530865fe422b1d60ca216dd8980a978bbe6a7ac3af0092163d6ae2aa20677
diff --git a/dev-python/pudb/pudb-2025.1.1.ebuild b/dev-python/pudb/pudb-2025.1.1.ebuild
deleted file mode 100644
index cef84770cac8..000000000000
--- a/dev-python/pudb/pudb-2025.1.1.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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_{10..14} )
-
-inherit distutils-r1 pypi optfeature
-
-DESCRIPTION="A full-screen, console-based Python debugger"
-HOMEPAGE="
- https://documen.tician.de/pudb/
- https://github.com/inducer/pudb/
- https://pypi.org/project/pudb/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/jedi-0.18[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.7.4[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.13[${PYTHON_USEDEP}]
- >=dev-python/urwid-2.4[${PYTHON_USEDEP}]
- dev-python/urwid-readline[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-pkg_postinst() {
- optfeature_header "Install the following packages for additional functionality:"
- optfeature "Auto-complete support" dev-python/jedi
-}
diff --git a/dev-python/pudb/pudb-2025.1.2.ebuild b/dev-python/pudb/pudb-2025.1.2.ebuild
deleted file mode 100644
index 1dbafc331d90..000000000000
--- a/dev-python/pudb/pudb-2025.1.2.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYPI_VERIFY_REPO=https://github.com/inducer/pudb
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi optfeature
-
-DESCRIPTION="A full-screen, console-based Python debugger"
-HOMEPAGE="
- https://documen.tician.de/pudb/
- https://github.com/inducer/pudb/
- https://pypi.org/project/pudb/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=dev-python/jedi-0.18[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.7.4[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.13[${PYTHON_USEDEP}]
- >=dev-python/urwid-2.4[${PYTHON_USEDEP}]
- dev-python/urwid-readline[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-pkg_postinst() {
- optfeature_header "Install the following packages for additional functionality:"
- optfeature "Auto-complete support" dev-python/jedi
-}
diff --git a/dev-python/pyqt6/Manifest b/dev-python/pyqt6/Manifest
index 8ffec94ca687..ba5ca83273cc 100644
--- a/dev-python/pyqt6/Manifest
+++ b/dev-python/pyqt6/Manifest
@@ -1,2 +1,3 @@
DIST pyqt6-6.10.0.tar.gz 1079921 BLAKE2B bd3b3fd2a109920320079c885d1b6cc25e5a8b74f38a84b22fcbb57406a8ba586fab6f345bd4f961527f95bcb34e5a63cba636e9279310a83e753e036da8a64b SHA512 ef88adff167ea2ff7c946500371168c5dd9fc8d7c0f9d8ab8b43aedcbfa1bf80cf6d4ef3fc5f3969a1e3a76db90f9c1bd5755ae9739cb86b3f924c4ba8f66d96
+DIST pyqt6-6.10.1.tar.gz 1085250 BLAKE2B cebdae9fc19c9e07cb9ce8963f04aa380a81f78ed6026e863a6d37c02e46b44200aa3ed2afcaac234f3b3993ead9c1a2a97655ff7c65760705abace2603574d9 SHA512 af9bb54b20fd177cf1dac5fe8fb0ff289e1e7e42716d09093d49dd99a7d8065c6b6f34784ed19e21e7e07ba0d550b270cb6be7273f7180e2bf886160fc773d01
DIST pyqt6-6.9.1.tar.gz 1067230 BLAKE2B 93b301fca3a7d97f872ca96f00eb27d434378f49dd19da6ffd5c26dbce378a7ea01786c0e7de34ce24620a14fa036b2187c5f7b0a4efa5a908ceaf557f748e9d SHA512 e2f10d6dc1ea9f420857abe248bfd488f8945e9c6c84887745f072815875ce7e806788a9048a57215266fa561b1489c3b092c276816062323262e6911271c552
diff --git a/dev-python/pyqt6/pyqt6-6.10.1.ebuild b/dev-python/pyqt6/pyqt6-6.10.1.ebuild
new file mode 100644
index 000000000000..85c918c7190f
--- /dev/null
+++ b/dev-python/pyqt6/pyqt6-6.10.1.ebuild
@@ -0,0 +1,193 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=sip
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 flag-o-matic multiprocessing pypi qmake-utils
+
+# can work with older Qt depending on the features the ebuild enables,
+# but a same major.minor version lower bound is simpler to manage/test
+QT_PV=$(ver_cut 1-2):6
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/"
+
+LICENSE="GPL-3"
+SLOT="0"
+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="
+ +X bluetooth +dbus debug designer examples gles2-only +gui help
+ multimedia +network nfc opengl pdfium positioning +printsupport
+ qml quick quick3d remoteobjects scxml serialport sensors
+ spatialaudio speech +sql +ssl svg testlib webchannel websockets
+ vulkan wayland +widgets +xml
+"
+# see `grep -r "%Import " sip` and `grep qmake_QT project.py`
+REQUIRED_USE="
+ designer? ( gui widgets )
+ help? ( gui widgets )
+ multimedia? ( gui network )
+ opengl? ( gui )
+ pdfium? ( gui )
+ printsupport? ( gui widgets )
+ qml? ( network )
+ quick3d? ( gui qml )
+ quick? ( gui qml )
+ remoteobjects? ( network )
+ scxml? ( gui )
+ spatialaudio? ( multimedia )
+ sql? ( widgets )
+ svg? ( gui )
+ testlib? ( gui widgets )
+ vulkan? ( gui )
+ webchannel? ( network )
+ websockets? ( network )
+ widgets? ( gui )
+"
+
+# may use qt private symbols wrt qtbase's :=
+# non-trivially broken with Qt6.8 wrt upper bound, waiting for PyQt6-6.8.0
+COMMON_DEPEND="
+ >=dev-qt/qtbase-${QT_PV}=[X?,dbus?,gles2-only=,gui?,network?,opengl?,sql?,ssl=,vulkan?,wayland?,widgets?,xml?]
+ bluetooth? ( >=dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ sys-apps/dbus
+ )
+ designer? ( >=dev-qt/qttools-${QT_PV}[designer] )
+ help? ( >=dev-qt/qttools-${QT_PV}[assistant] )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ nfc? ( >=dev-qt/qtconnectivity-${QT_PV}[nfc] )
+ opengl? (
+ gles2-only? ( media-libs/libglvnd )
+ )
+ pdfium? ( >=dev-qt/qtwebengine-${QT_PV}[pdfium,widgets?] )
+ positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
+ qml? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] )
+ quick3d? ( >=dev-qt/qtquick3d-${QT_PV} )
+ quick? ( >=dev-qt/qtdeclarative-${QT_PV}[opengl] )
+ remoteobjects? ( >=dev-qt/qtremoteobjects-${QT_PV} )
+ scxml? ( >=dev-qt/qtscxml-${QT_PV} )
+ sensors? ( >=dev-qt/qtsensors-${QT_PV} )
+ serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+ speech? (
+ >=dev-qt/qtdeclarative-${QT_PV}
+ >=dev-qt/qtspeech-${QT_PV}
+ )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
+ websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=dev-python/pyqt6-sip-13.8[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ vulkan? ( dev-util/vulkan-headers )
+"
+BDEPEND="
+ >=dev-python/pyqt-builder-1.19[${PYTHON_USEDEP}]
+ >=dev-python/sip-6.13.1[${PYTHON_USEDEP}]
+ >=dev-qt/qtbase-${QT_PV}
+ dbus? ( virtual/pkgconfig )
+"
+
+src_prepare() {
+ default
+
+ # hack: PyQt-builder runs qmake without our arguments and calls g++
+ # or clang++ depending on what qtbase was built with, not used for
+ # building but fails with -native-symlinks
+ mkdir "${T}"/cxx || die
+ local cxx
+ ! cxx=$(type -P "${CHOST}"-g++) || ln -s -- "${cxx}" "${T}"/cxx/g++ || die
+ ! cxx=$(type -P "${CHOST}"-clang++) || ln -s -- "${cxx}" "${T}"/cxx/clang++ || die
+ PATH=${T}/cxx:${PATH}
+}
+
+python_configure_all() {
+ append-cxxflags -std=c++17 # for old gcc / clang that use <17 (bug #892331)
+ append-cxxflags ${CPPFLAGS} # respect CPPFLAGS notably for DISTUTILS_EXT=1
+
+ pyqt_use_enable() {
+ local state=$(usex ${1} --enable= --disable=)
+ shift
+ echo ${*/#/${state}}
+ }
+
+ DISTUTILS_ARGS=(
+ --jobs="$(makeopts_jobs)"
+ --qmake="$(qt6_get_bindir)"/qmake
+ --qmake-setting="$(qt6_get_qmake_args)"
+ --verbose
+ --confirm-license
+
+ --enable=QtCore
+
+ $(pyqt_use_enable bluetooth QtBluetooth)
+ $(pyqt_use_enable dbus QtDBus)
+ $(pyqt_use_enable designer QtDesigner)
+ $(pyqt_use_enable help QtHelp)
+ $(pyqt_use_enable gui QtGui)
+ #--disable=QtLocation # force-disabled in project.py
+ $(pyqt_use_enable multimedia QtMultimedia \
+ $(usev widgets QtMultimediaWidgets))
+ $(pyqt_use_enable network QtNetwork)
+ $(pyqt_use_enable nfc QtNfc)
+ $(pyqt_use_enable opengl QtOpenGL \
+ $(usev widgets QtOpenGLWidgets))
+ $(pyqt_use_enable pdfium QtPdf \
+ $(usev widgets QtPdfWidgets))
+ $(pyqt_use_enable positioning QtPositioning)
+ $(pyqt_use_enable printsupport QtPrintSupport)
+ $(pyqt_use_enable qml QtQml)
+ $(pyqt_use_enable quick QtQuick \
+ $(usev widgets QtQuickWidgets))
+ $(pyqt_use_enable quick3d QtQuick3D)
+ $(pyqt_use_enable remoteobjects QtRemoteObjects)
+ $(pyqt_use_enable scxml QtStateMachine)
+ $(pyqt_use_enable sensors QtSensors)
+ $(pyqt_use_enable serialport QtSerialPort)
+ $(pyqt_use_enable spatialaudio QtSpatialAudio)
+ $(pyqt_use_enable sql QtSql)
+ $(pyqt_use_enable svg QtSvg \
+ $(usev widgets QtSvgWidgets))
+ $(pyqt_use_enable testlib QtTest)
+ $(pyqt_use_enable speech QtTextToSpeech)
+ $(pyqt_use_enable webchannel QtWebChannel)
+ $(pyqt_use_enable websockets QtWebSockets)
+ $(pyqt_use_enable widgets QtWidgets)
+ $(pyqt_use_enable xml QtXml)
+
+ $(usev debug '--debug --qml-debug --tracing')
+
+ $(usev !dbus --no-dbus-python)
+ # note: upstream currently intentionally skips installing these two
+ # plugins when using wheels w/ pep517 so, *if* something does need
+ # them, it will need to be handled manually
+ $(usev !designer --no-designer-plugin)
+ $(usev !qml --no-qml-plugin)
+
+ $(usev !X --disabled-feature=PyQt_XCB)
+ $(usev !gles2-only --disabled-feature=PyQt_OpenGL_ES2)
+ $(usev !opengl --disabled-feature=PyQt_OpenGL)
+ $(usev !ssl --disabled-feature=PyQt_SSL)
+ $(usev !vulkan --disabled-feature=PyQt_Vulkan)
+ $(usev !wayland --disabled-feature=PyQt_Wayland)
+
+ # intended for Windows / Android or others
+ --disable=QAxContainer
+ --disabled-feature=PyQt_Permissions
+ )
+}
+
+python_install_all() {
+ einstalldocs
+ use examples && dodoc -r examples
+}
diff --git a/dev-python/pytest-jobserver/Manifest b/dev-python/pytest-jobserver/Manifest
new file mode 100644
index 000000000000..0c5a8e225949
--- /dev/null
+++ b/dev-python/pytest-jobserver/Manifest
@@ -0,0 +1 @@
+DIST pytest-jobserver-1.0.0.tar.gz 6286 BLAKE2B 88020a09b605c52745761e22e925329ef18f3c1f5bb69c92f430621eb454810f6e533135959a59c19e557c1cc98e1c808ae2b5917e0e947f1d01579ce25918b0 SHA512 e98d3908357930e3ee11082e88477c4225e86c7a357ac0e9120ebd75b3cc6ffa38d65fc37d72bbcf35530fe0949badd9c6a1ccb7a370d1ca6ae69c9694ba8e48
diff --git a/dev-python/pytest-jobserver/files/pytest-jobserver-1.0.0-gentoo.patch b/dev-python/pytest-jobserver/files/pytest-jobserver-1.0.0-gentoo.patch
new file mode 100644
index 000000000000..c26422e30b17
--- /dev/null
+++ b/dev-python/pytest-jobserver/files/pytest-jobserver-1.0.0-gentoo.patch
@@ -0,0 +1,125 @@
+diff --git a/pytest_jobserver/configure.py b/pytest_jobserver/configure.py
+index aa3c998..364729d 100644
+--- a/pytest_jobserver/configure.py
++++ b/pytest_jobserver/configure.py
+@@ -21,9 +21,6 @@ def path_to_file_descriptors(jobserver_path: str) -> Optional[FileDescriptorsRW]
+ if os.path.exists(jobserver_path) is False:
+ raise pytest.UsageError("jobserver doesn't exist: {}".format(jobserver_path))
+
+- if is_fifo(jobserver_path) is False:
+- raise pytest.UsageError("jobserver is not a fifo: {}".format(jobserver_path))
+-
+ if is_rw_ok(jobserver_path) is False:
+ raise pytest.UsageError(
+ "jobserver is not read/writeable to current user: {}".format(jobserver_path)
+@@ -50,16 +47,19 @@ def jobserver_from_env_make(config: Config) -> Optional[FileDescriptorsRW]:
+
+ parser = argparse.ArgumentParser(prog="makeflags")
+ parser.add_argument("--jobserver-fds", default=None)
+- parser.add_argument("--jobserver-auth", default=None)
++ parser.add_argument("--jobserver-auth", default="")
+ args, _ = parser.parse_known_args(shlex.split(makeflags))
+
++ if args.jobserver_auth.startswith("fifo:"):
++ return path_to_file_descriptors(args.jobserver_auth[5:])
++
+ fds = args.jobserver_fds or args.jobserver_auth
+ if fds is None:
+ return None
+
+ if config.pluginmanager.hasplugin("xdist"):
+ raise pytest.UsageError(
+- "pytest-jobserver does not support using pytest-xdist with MAKEFLAGS"
++ "pytest-jobserver does not support using pytest-xdist with fd-based jobserver in MAKEFLAGS"
+ )
+
+ fd_read, fd_write = tuple(FileDescriptor(int(fd)) for fd in fds.split(","))
+diff --git a/pytest_jobserver/plugin.py b/pytest_jobserver/plugin.py
+index fc4f11c..c3b781e 100644
+--- a/pytest_jobserver/plugin.py
++++ b/pytest_jobserver/plugin.py
+@@ -23,16 +23,29 @@ class JobserverPlugin(object):
+ self._fd_read, self._fd_write = fds
+ self._thread_locals = threading.local()
+
++ @pytest.hookimpl(hookwrapper=True, tryfirst=True)
++ def pytest_collection(self, session: pytest.Session) -> Iterator[Any]:
++ if os.environ.get("PYTEST_XDIST_WORKER", "gw0") != "gw0":
++ token = os.read(self._fd_read, 1)
++ yield
++ os.write(self._fd_write, token)
++ else:
++ yield
++
+ @pytest.hookimpl(hookwrapper=True, tryfirst=True)
+ def pytest_runtest_protocol(self, item: Item) -> Iterator[Any]:
+- token = os.read(self._fd_read, 1)
+- self._thread_locals.token = ord(token)
+- yield
+- os.write(self._fd_write, token)
++ if os.environ.get("PYTEST_XDIST_WORKER", "gw0") != "gw0":
++ token = os.read(self._fd_read, 1)
++ self._thread_locals.token = ord(token)
++ yield
++ os.write(self._fd_write, token)
++ else:
++ self._thread_locals.token = None
++ yield
+
+ @pytest.fixture(scope="function", autouse=True)
+- def jobserver_token(self, request: Any) -> int:
+- int_token: int = self._thread_locals.token
++ def jobserver_token(self, request: Any) -> int | None:
++ int_token: int | None = self._thread_locals.token
+ return int_token
+
+ def pytest_report_header(self, config: Config) -> str:
+diff --git a/pytest_jobserver/test/test_plugin.py b/pytest_jobserver/test/test_plugin.py
+index 6f51376..45cce4d 100644
+--- a/pytest_jobserver/test/test_plugin.py
++++ b/pytest_jobserver/test/test_plugin.py
+@@ -68,6 +68,25 @@ def test_config_env_pytest(testdir: TestDir) -> None:
+ assert result.ret == 0
+
+
++def test_config_makeflags_pytest(testdir: TestDir) -> None:
++ testdir.makepyfile(
++ """
++ def test_pass(request):
++ pass
++ """
++ )
++ make_jobserver(testdir.tmpdir, "jobserver_fifo", 1)
++ testdir.monkeypatch.setenv("MAKEFLAGS", "--jobserver-auth=fifo:jobserver_fifo")
++
++ result = testdir.runpytest("-v")
++
++ result.stdout.fnmatch_lines(["*::test_pass PASSED*"])
++ result.stdout.fnmatch_lines(
++ ["jobserver: configured at file descriptors (read: *, write: *)"]
++ )
++ assert result.ret == 0
++
++
+ def test_jobserver_token_fixture(testdir: TestDir) -> None:
+ testdir.makepyfile(
+ f"""
+@@ -94,7 +113,9 @@ def test_xdist_makeflags_fails(testdir: TestDir) -> None:
+ result = testdir.runpytest("-v", "-n2")
+ assert result.ret == 4, "Expected pytest would fail to run with MAKEFLAGS and xdist"
+ result.stderr.fnmatch_lines(
+- ["ERROR: pytest-jobserver does not support using pytest-xdist with MAKEFLAGS"]
++ [
++ "ERROR: pytest-jobserver does not support using pytest-xdist with fd-based jobserver in MAKEFLAGS"
++ ]
+ )
+
+
+@@ -166,6 +187,7 @@ def test_server_not_found(testdir: TestDir) -> None:
+
+
+ def test_server_not_fifo(testdir: TestDir) -> None:
++ return
+ testdir.makefile(".txt", jobserver="X")
+ testdir.makepyfile(
+ """
diff --git a/dev-python/pytest-jobserver/metadata.xml b/dev-python/pytest-jobserver/metadata.xml
new file mode 100644
index 000000000000..a0d4c5913ba0
--- /dev/null
+++ b/dev-python/pytest-jobserver/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pytest-jobserver/pytest-jobserver-1.0.0.ebuild b/dev-python/pytest-jobserver/pytest-jobserver-1.0.0.ebuild
new file mode 100644
index 000000000000..424e21d5f1e7
--- /dev/null
+++ b/dev-python/pytest-jobserver/pytest-jobserver-1.0.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Limit parallel tests with POSIX jobserver"
+HOMEPAGE="
+ https://github.com/tommilligan/pytest-jobserver/
+ https://pypi.org/project/pytest-jobserver/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/pytest[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ # Combined Gentoo patches:
+ # 1. Update MAKEFLAGS parsing:
+ # https://github.com/tommilligan/pytest-jobserver/pull/147
+ # 2. Do not require FIFO:
+ # https://github.com/tommilligan/pytest-jobserver/pull/149
+ # 3. Acquire job tokens for test collection:
+ # https://github.com/tommilligan/pytest-jobserver/pull/150
+ # 4. Do not acquire tokens for gw0 (not submitted yet).
+ "${FILESDIR}/${P}-gentoo.patch"
+)
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ pytest_jobserver/test/test_plugin.py::test_xdist_makeflags_fails
+ # broken by implicit slot fix
+ pytest_jobserver/test/test_plugin.py::test_jobserver_token_fixture
+ pytest_jobserver/test/test_plugin.py::test_server_xdist
+ )
+
+ unset A MAKEFLAGS
+
+ # missing conftest.py
+ epytest -p pytester
+}
diff --git a/dev-python/python-lsp-server/Manifest b/dev-python/python-lsp-server/Manifest
index 6b6ac3a09dc0..7bf14006cdb9 100644
--- a/dev-python/python-lsp-server/Manifest
+++ b/dev-python/python-lsp-server/Manifest
@@ -1,3 +1,3 @@
-DIST python_lsp_server-1.13.0.tar.gz 119147 BLAKE2B 385aeb08f0f43a7a7e77a07c0f0a5799ff4aa9c4d4f6b80350ed0ef8c2d2da5979583e1696aac642308b851de3964ef2c9ae342ec7ff3e677c96e6ed8913a57a SHA512 140fb56e2fda6131c1e481792537c3ede1d511c48994416f2629d71c3b3e4fb2b05da583c6371780c4022b2cc8439a4d9e763962403a5a7f214fa1a1f3031f0c
DIST python_lsp_server-1.13.1.tar.gz 120484 BLAKE2B f07ed8546e4e1691a4fc03ead5bc4834755bee12fbe34abda3ec460a2ca261c3c7a14a98194ad085f217af1369bfc878b696770e2c8adb43135808dd196ade13 SHA512 9a8ef547a0d8383eace9aa0efeb83fca9852f3fc79676397c428508a3d8d90c045da7e4c98c9ff34016e9da6a41181e4dc1c881d2262856c9dfd4921f9a35d9a
DIST python_lsp_server-1.13.2.tar.gz 120665 BLAKE2B c45d7775f8af055f4b4e084e1ed6dbbf5a8788155691e04a742cb9494231ce7f8f80fb8fb01041edb7540f6d8fa0bd44187ef68a2cf3246c50808ac13905449d SHA512 0be67a934dd700346227e17e6b695c4e593d04dc82b49153868617a81af949a9ee11b4ada5dffe031c64d1dbfc4d1864c4d9dbf94ade0be606abef8eb8b2eaaf
+DIST python_lsp_server-1.14.0.tar.gz 121536 BLAKE2B 207d43b758d6bb75070ac88174d483d9347593ca2b5cbe9fc724f916d73654e6907aced7e6fb19e339740b09d0ea3dc1e2bc18f7610ea2984f8c29cd441c92ad SHA512 6362bb87a1fc75751a37c42a899377bc420daa0bed4aa7206e956b41e09495a9d949820bcf789508ebe5b5646c6c1af8dba753b7cef06891c46b8ebed80d51dc
diff --git a/dev-python/python-lsp-server/python-lsp-server-1.13.0.ebuild b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
index 80e449d31353..e6339963bcc0 100644
--- a/dev-python/python-lsp-server/python-lsp-server-1.13.0.ebuild
+++ b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="all-plugins"
PLUGIN_DEP="
@@ -55,6 +55,19 @@ BDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
+EPYTEST_DESELECT=(
+ # broken by presence of pathlib2
+ 'test/plugins/test_autoimport.py'
+ # Requires pyqt5
+ 'test/plugins/test_completion.py::test_pyqt_completion'
+ # TODO: fails on teardown; also hangs the test suite
+ test/test_language_server.py::test_missing_message
+)
+EPYTEST_IGNORE=(
+ # pydocstyle is archived upstream and broken with py3.12
+ test/plugins/test_pydocstyle_lint.py
+)
+
python_prepare_all() {
# remove pytest-cov dep
sed -i -e '/addopts =/d' pyproject.toml || die
@@ -63,21 +76,6 @@ python_prepare_all() {
distutils-r1_python_prepare_all
}
-python_test() {
- local EPYTEST_DESELECT=(
- # broken by presence of pathlib2
- 'test/plugins/test_autoimport.py'
- # Requires pyqt5
- 'test/plugins/test_completion.py::test_pyqt_completion'
- )
- local EPYTEST_IGNORE=(
- # pydocstyle is archived upstream and broken with py3.12
- test/plugins/test_pydocstyle_lint.py
- )
-
- epytest
-}
-
pkg_postinst() {
optfeature "Automatically format Python code to conform to the PEP 8 style guide" dev-python/autopep8
optfeature "A wrapper around PyFlakes, pep8 & mccabe" dev-python/flake8
diff --git a/dev-python/statsmodels/Manifest b/dev-python/statsmodels/Manifest
index 5fb18b806050..57ea23f9161f 100644
--- a/dev-python/statsmodels/Manifest
+++ b/dev-python/statsmodels/Manifest
@@ -1,2 +1,3 @@
DIST statsmodels-0.14.4.tar.gz 20354802 BLAKE2B c721c5b2e7b22ad1be10099627230f7344f966a335f37757dc6bb622fedcb1e84a7d708ee25bfdde64357394e059567e41dad19fc5b1daeb3d5ee29e52a3b2af SHA512 db3bd19b8b47af453ad6fbd24449a621895e4237bbc8b7813810306748c32a3fbf005387a0e1e8db550c9c4a59666bdd50aeb49e24f0ecb86619bc90f166f5f9
DIST statsmodels-0.14.5.tar.gz 20525016 BLAKE2B ea0a76aaecfb75fe21bcd6c6df625a86745dc93d568f35fa9d8d230f216487ed311706810245ce16a86dc9cc8e465c4fd6d09f1406899838ff82b80d1d1ff310 SHA512 b36763d2ea3a1db2181838cc05834e96c9914789155b4723ee260f94a6f481fd8ea5c07294e375efd783b06d28cf9b71385c00b94ed0271189da551f562948f3
+DIST statsmodels-0.14.6.tar.gz 20689085 BLAKE2B fc6fe72d2f4016add10b25fb6aee7fe6a24187e4156534d7ae309c7f0b596b025b093ef45ad3201055a00361be4b8f42ba57dd0684efda8e01f6899b7ade3254 SHA512 5bb28aea779236d5f48743db624c048f78117456e1752414bd156f650098a996a81d882fd271fc5e203298dc941a656450f252a94b2d05e86b571e5ebb0b29fd
diff --git a/dev-python/statsmodels/statsmodels-0.14.6.ebuild b/dev-python/statsmodels/statsmodels-0.14.6.ebuild
new file mode 100644
index 000000000000..48ae137efe39
--- /dev/null
+++ b/dev-python/statsmodels/statsmodels-0.14.6.ebuild
@@ -0,0 +1,80 @@
+# 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_{10..14} )
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Statistical computations and models for use with SciPy"
+HOMEPAGE="
+ https://www.statsmodels.org/stable/index.html
+ https://github.com/statsmodels/statsmodels/
+ https://pypi.org/project/statsmodels/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86 ~amd64-linux"
+IUSE="examples"
+
+# NB: upstream requires building with numpy-2 but supports 1.x
+# at runtime
+DEPEND="
+ >=dev-python/numpy-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.8[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ >=dev-python/numpy-1.22.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.3[${PYTHON_USEDEP}]
+ >=dev-python/pandas-1.4[${PYTHON_USEDEP}]
+ >=dev-python/patsy-0.5.6[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.8[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${DEPEND}
+ >=dev-python/cython-3.0.10[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs \
+ 'dev-python/ipykernel' \
+ 'dev-python/jupyter-client' \
+ 'dev-python/matplotlib' \
+ 'dev-python/nbconvert' \
+ 'dev-python/numpydoc'
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ export VARTEXFONTS="${T}"/fonts
+ export MPLCONFIGDIR="${T}"
+ printf -- 'backend : Agg\n' > "${MPLCONFIGDIR}"/matplotlibrc || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x MKL_NUM_THREADS=1
+ local -x OMP_NUM_THREADS=1
+
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest statsmodels
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x /usr/share/doc/${PF}/examples
+ dodoc -r examples
+ fi
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Plotting functionality" "dev-python/matplotlib"
+}
diff --git a/dev-python/urllib3/Manifest b/dev-python/urllib3/Manifest
index c4a31cd9b836..6c1aedaeb0a5 100644
--- a/dev-python/urllib3/Manifest
+++ b/dev-python/urllib3/Manifest
@@ -1,2 +1,4 @@
DIST hypercorn-d1719f8c1570cbd8e6a3719ffdb14a4d72880abb.gh.tar.gz 156216 BLAKE2B fcb5f49653401e6e4079e1c770d3cd407602d4d6764437b735bd4ec04191dec59cdc930822fa2aff726ee25cddd0f71fd457dedf31026bff1da121d93af8b768 SHA512 62d6787d88a2e716f0ac04fc49f6cdc586e473a660ee754ff66961922ae78bcc75d1f78b091e78557dd60f006e8e480114738c7b4ff71beac804e4fc9603240b
DIST urllib3-2.5.0.tar.gz 393185 BLAKE2B 3885be1dae81cb63cfd0c52242b8ff342e4fb398816f94b556e929af0328f4063d705f15201005f4247b278420794984277999751170e124c23ac99c6dc881d4 SHA512 f417a2745bc9750da23916690937e5c0dfe0534354f2c1c9f056baf16554a831a28937acca2b1f23941d5b6e87a372f2e074508eaf2c3304fd1014b8afc3295e
+DIST urllib3-2.6.0.tar.gz 432585 BLAKE2B a630f109dd9b191bd0b5fcbfae03c1f492d8396fdc41c9103c15d537472f55d04d5ece2d5af5ee7a381f0560384afcc8c5232320d8d921d01e2d37093ef0ca28 SHA512 b825663ed9e037763c3c8a049f818330ee9cf0d00ba6f3bd368114ed1feb750e0e6613920cde62443aa05aa84752a2cdfa4f7a6f631801031cb2fbf6736675e3
+DIST urllib3-2.6.0.tar.gz.provenance 9060 BLAKE2B 086458bd509d0de661ce4fab4a556884e0eaf77f4df9d34dbefb12865c22282bab24c07410b7fe42417422cc24102cb70c813d4b7a1115a454b3843809751b58 SHA512 a95d98157ad594662f598e06cb6bd326a42e58a48d647bf17c08078fddcd6232d81eb9a93d3369aabe52cd20190a1bbd00106a6f3767223e7378fc9e43c077a2
diff --git a/dev-python/urllib3/urllib3-2.6.0.ebuild b/dev-python/urllib3/urllib3-2.6.0.ebuild
new file mode 100644
index 000000000000..27008c9ef75c
--- /dev/null
+++ b/dev-python/urllib3/urllib3-2.6.0.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/urllib3/urllib3
+PYTHON_TESTED=( python3_{11..14} pypy3_11 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1 pypi
+
+# The package has a test dependency on their own hypercorn fork.
+HYPERCORN_COMMIT=d1719f8c1570cbd8e6a3719ffdb14a4d72880abb
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="
+ https://github.com/urllib3/urllib3/
+ https://pypi.org/project/urllib3/
+"
+SRC_URI+="
+ test? (
+ https://github.com/urllib3/hypercorn/archive/${HYPERCORN_COMMIT}.tar.gz
+ -> hypercorn-${HYPERCORN_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="brotli http2 test zstd"
+RESTRICT="!test? ( test )"
+
+# [secure] extra is deprecated and slated for removal, we don't need it:
+# https://github.com/urllib3/urllib3/issues/2680
+RDEPEND="
+ >=dev-python/pysocks-1.5.8[${PYTHON_USEDEP}]
+ <dev-python/pysocks-2.0[${PYTHON_USEDEP}]
+ brotli? ( >=dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}] )
+ http2? (
+ <dev-python/h2-5[${PYTHON_USEDEP}]
+ >=dev-python/h2-4[${PYTHON_USEDEP}]
+ )
+ zstd? (
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.{11..13})
+ )
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep "
+ ${RDEPEND}
+ dev-python/brotlicffi[\${PYTHON_USEDEP}]
+ dev-python/freezegun[\${PYTHON_USEDEP}]
+ dev-python/h2[\${PYTHON_USEDEP}]
+ dev-python/httpx[\${PYTHON_USEDEP}]
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[\${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[\${PYTHON_USEDEP}]
+ dev-python/quart[\${PYTHON_USEDEP}]
+ dev-python/quart-trio[\${PYTHON_USEDEP}]
+ dev-python/trio[\${PYTHON_USEDEP}]
+ >=dev-python/tornado-4.2.1[\${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}]
+ " "${PYTHON_TESTED[@]}")
+ $(python_gen_cond_dep '
+ >=dev-python/backports-zstd-1.0.0[${PYTHON_USEDEP}]
+ ' 3.{11..13})
+ )
+"
+
+src_prepare() {
+ # upstream considers 0.5 s to be "long" for a timeout
+ # we get tons of test failures on *fast* systems because of that
+ sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTHONPATH=${WORKDIR}/hypercorn-${HYPERCORN_COMMIT}/src
+ local -x CI=1
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # TODO: timeouts
+ test/contrib/test_pyopenssl.py::TestSocketClosing::test_timeout_errors_cause_retries
+ test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_timeout_errors_cause_retries
+ # TODO
+ test/contrib/test_pyopenssl.py::TestSocketClosing::test_socket_shutdown_stops_recv
+ test/with_dummyserver/test_socketlevel.py::TestSocketClosing::test_socket_shutdown_stops_recv
+ # hangs randomly
+ test/contrib/test_pyopenssl.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread
+ test/with_dummyserver/test_https.py::TestHTTPS_TLSv1_{2,3}::test_http2_probe_blocked_per_thread
+ )
+
+ local EPYTEST_PLUGINS=( pytest-timeout )
+ local EPYTEST_RERUNS=10
+ local EPYTEST_XDIST=1
+ epytest --reruns-delay=2
+}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index c4a041b4a6de..8ea7962f719f 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -4,6 +4,7 @@ DIST uv_build-0.9.12.tar.gz 338778 BLAKE2B b11a99bcd9f130107a2529a204bfcb64a3bdc
DIST uv_build-0.9.13.tar.gz 338831 BLAKE2B ba0b4eca782afc52d7303a51ecb18957073c22c0be1dae90ccc044c59cc2a6502c89ce06a5fa6b4014fdd54f641d97523cdad4ab15f19e9ae97541aa51a7a5ec SHA512 6ef5fe809b2fc80778b33c43b3083fdd4320be031818d88f3bf9e7f2dd4bcf59303ccd7b5398eacedbf9c500ae336bf18c7ed15de858b6f369594e14b005d71d
DIST uv_build-0.9.14.tar.gz 339665 BLAKE2B a23fa78e67450d3da7c17ce8828f3c635eddbbe36f2742f7bafa324a140dbf064fd19350263b0a87aec1edba2189a5d219a1e04416659287007598487f678f81 SHA512 ac4d578cf61cfaa4b4b0d38917f6f65de64111d7764bc2e837489fda8c6ce2a18b4256965df9e32b223ce34721bc07fbac7aeef078eaf9cac6d6d3309260180a
DIST uv_build-0.9.15.tar.gz 354021 BLAKE2B a47350ead8d9672d09967bbd7f9ac2f8e231e1dd5afb8c20e59926429792d3872feb1f8e4d7a9318ec447a99ce8add0503dfba0be2b970b2f192f954b472f1a7 SHA512 11fa1ebb1cfc184bd5bedf5e11fb28f14abf118183d94cbe0ac9a1b83f150a69836f0547a671e8cf16527d84ec61dd5b2983efafe5aeccd86e94cda79e1de664
+DIST uv_build-0.9.16.tar.gz 356109 BLAKE2B d1c7269ee1caa4c66e4858871bed357cd3d9251a475cd97699421cba949d915af15b241b8e1ae1b64ff9a496974888590270d77508d91af3f000e3b6c8139b4b SHA512 4031ac8326a16d4eb65948749da157a97c7529713298085d9154ecf974a3469601495e5a0203638a3ea8eeb98ed375ab13348b494637a4452268e5e8b0856410
DIST uv_build-0.9.4.tar.gz 332506 BLAKE2B 3b65cc80192cf3abc33bcf01735c8b7f937a12f2dcd0557d0ae255ce8bd4cb7dbb15522e73802be0e17ac10c4acad6f9075f12d5f853bb1881b0c13f1d120b33 SHA512 c3be52cfbc1cf5a229df91d9e1125925a534e3fca3041e29a16edd2334fa28b055c73e21a6bd1a3d1d63924cf8f112645300530e8cb6139fb549499ca672070f
DIST uv_build-0.9.6.tar.gz 332253 BLAKE2B 2c3fa23dbe36b0866a3a3194b07ee1212cb00acd785c375646c3eb6c97a63435f28c9e934f56c8d6feeec145aace1aad37550b85ae2a611f521fc25a4c7d3bc1 SHA512 e8d8bbd46c92722261722f3d8865b2b24e695edf52652c1d1310adae3cb437ebef5397feda90e3bf863394ca75cf3024eb90a5f80b2b92af24ede4e2f81b0ce1
DIST uv_build-0.9.7.tar.gz 332992 BLAKE2B 069e615f41e78098b61cc073cb01bc77e0e6778f3054ccfcf36985be3755d7e819cc1bd151e875db109461f423cc855cd336467015ec7103e47346f230564679 SHA512 d61249de00640f6e0ab62ab440a8aae1802acbd6cf8ecb8aca3efe26361d7191d057735ab91c174c5772fc04accf0ae3281f447d010c99e2f458829f4c618abc
diff --git a/dev-python/uv-build/uv-build-0.9.16.ebuild b/dev-python/uv-build/uv-build-0.9.16.ebuild
new file mode 100644
index 000000000000..fe8e9650d15e
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.9.16.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maturin compiles uv-build executable for every impl, we do not want
+# that, so we use another backend. And since we use another backend,
+# why not dogfood it in the first place?
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="PEP517 uv build backend"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv-build/
+"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/uv-${PV}
+"
+BDEPEND="
+ test? (
+ app-arch/unzip
+ dev-python/build[${PYTHON_USEDEP}]
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # use the executable from dev-python/uv instead of building
+ # a largely overlapping uv-build executable (at least for now)
+ sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
+
+ # replace the build-system section
+ sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
+ cat >> pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["uv_build<9999"]
+ build-backend = "uv_build"
+ backend-path = ["src"]
+ EOF
+
+ # rename to make uv-build find it
+ mv python src || die
+}
+
+python_test() {
+ "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
+
+ local zip_result=$(
+ unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
+ )
+ local zip_expected="\
+Archive: dist/uv_build-${PV}-py3-none-any.whl
+ testing: uv_build/ OK
+ testing: uv_build/__init__.py OK
+ testing: uv_build/__main__.py OK
+ testing: uv_build/py.typed OK
+ testing: uv_build-${PV}.dist-info/ OK
+ testing: uv_build-${PV}.dist-info/WHEEL OK
+ testing: uv_build-${PV}.dist-info/METADATA OK
+ testing: uv_build-${PV}.dist-info/RECORD OK
+No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
+"
+ if [[ ${zip_result} != ${zip_expected} ]]; then
+ eerror ".zip result:\n${zip_result}"
+ eerror ".zip expected:\n${zip_expected}"
+ die ".whl result mismatch"
+ fi
+
+ local tar_result=$(
+ tar -tf "dist/uv_build-${PV}.tar.gz" || die
+ )
+ local tar_expected="\
+uv_build-${PV}/PKG-INFO
+uv_build-${PV}/
+uv_build-${PV}/README.md
+uv_build-${PV}/pyproject.toml
+uv_build-${PV}/src
+uv_build-${PV}/src/uv_build
+uv_build-${PV}/src/uv_build/__init__.py
+uv_build-${PV}/src/uv_build/__main__.py
+uv_build-${PV}/src/uv_build/py.typed\
+"
+ if [[ ${tar_result} != ${tar_expected} ]]; then
+ eerror ".tar.gz result:\n${tar_result}"
+ eerror ".tar.gz expected:\n${tar_expected}"
+ die ".tar.gz result mismatch"
+ fi
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index aea111cce11a..a6969e6ab250 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -15,6 +15,8 @@ DIST uv-0.9.14-crates.tar.xz 46510364 BLAKE2B f39e68e8419d82dab627525288829f81bc
DIST uv-0.9.14.gh.tar.gz 4859989 BLAKE2B b4e8cdd35c9fc40a1777b2b625e870bf5d89a585ff722674c94abc75700047a69f32ab6651f8a3953c68feb02f8e86f61120b1b86057ae30b0162824c9e0a231 SHA512 d1cbdcc36fd65111ceb875c6ba4cc54bc7762556f2fb17f8bb130ed42d037782c5a5f0d55d33fdc47f8d17c7cea19e776c302b188b883f7a94df2c4227ab32a3
DIST uv-0.9.15-crates.tar.xz 46539408 BLAKE2B 57e582f56e12858292d1dfaec10292eb58fb118051618875eab0d2dcd4f55aa89de6f788b3aa5013ce5e03068bb404ef04faae633d5c208f382366ac5ddf70df SHA512 4db7549d6902682db7af385e5099e74bbd82e54aaf45a44fe64416fda91e065f4bf978b9db55ab72f2872f9e8933b49020102b959c1d2bcef4b9a9877ac1e789
DIST uv-0.9.15.gh.tar.gz 4887603 BLAKE2B 422a3c004abdf052438b145400675010b1adfc8cb8d49979367544e2d381389594188276fe603ffa983f5926be624f5d863053bd79342eeee10caf1260b2a479 SHA512 2605e2e7d5f6fdbb5ec4839363f65c8e71559944ec003cb9c69040be08094eb5c041831151b669e2dbbcf1799e862f484a21a592090524f79686469eac0e3381
+DIST uv-0.9.16-crates.tar.xz 46525668 BLAKE2B b9825d93374f0c3231273606135f0693f94512b5f26ce45cea804ef38a05bbc3e7ce7edff5517c506f54367d304f0dac925e18e67a6fd7bebd635ce28dad8118 SHA512 beb9a9f0bd4ee79841e16ea4b1f7266dea9bfe8270e2e7dd381e3631e4db167e7dc79d18c444318f8e461daede6146f8510e398efab2f742f614f2654ee6eb29
+DIST uv-0.9.16.gh.tar.gz 4907399 BLAKE2B e0394423a5d026dd479a7bf2b781154db56277bdc194b84f520436b8fb41467cb9e2878a15ee2ea192a39f903a35f0c2643524143d81efa0f397273ae2314600 SHA512 f7e563b92c802f561bb33e569d473ac85fb69a72b6e01ccea8284275e7c760bc2eaee9415782adb7d26c16ffad564ceb1152a2f6b853fa9b379cb704fdd1814a
DIST uv-0.9.4-crates.tar.xz 46093644 BLAKE2B bdce4b138718b91a67ccb36e6d8839358ab2ddeeedec3017bc245b0717e32d890a41f8c9c831983681ec715ce458efa8d43356c189b9b7457df3e71122924e3f SHA512 7047b68db7e05abb6a399250a4a531499985d42f12eff61ad1557823b37d62576b38b51ccbe39a02bc9a98af6341de728466b262c49bb48dd30abb64eb804660
DIST uv-0.9.4.gh.tar.gz 4749319 BLAKE2B b46d44830f7a2a621f3ab420db85e9d999b7c42ddebc21403ea2f11e819e8295af37049f1529848a3fd83ef87ac0de26ce1e1c03bf4177c3032b9adfd6dfe1e8 SHA512 ae11c1e777e3d0e036f0a665e2edfb9a4b5b50a9e107d795113b626bc16d406d3fca12e8a133185e54279b2a64f8e3d276372cefc9a96b2ac5f1ed0ece2c10b0
DIST uv-0.9.6-crates.tar.xz 45696768 BLAKE2B 96cff52c0e5477c4e9648e3863d32bde4b34a1a46b6d96703c48fe340b655319e951471aa6403c09818c313a59b0e54804467efa7e13a8410de34299a98f077b SHA512 46964460f3404304faefd1758bb07bcddf1d48efbdd2b890ddb0d2623841e1a0c86108ac3c9312ed8e2f8fcaefbf9b022b57cd6074fdb6d52f43c35e3b3c2d32
diff --git a/dev-python/uv/uv-0.9.16.ebuild b/dev-python/uv/uv-0.9.16.ebuild
new file mode 100644
index 000000000000..253d1ec065af
--- /dev/null
+++ b/dev-python/uv/uv-0.9.16.ebuild
@@ -0,0 +1,167 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+RUST_MIN_VER="1.89.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=${PV}
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
+ CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016
+ ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ dev-lang/python:3.13
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # force thin lto, makes build much faster and less memory hungry
+ # (i.e. makes it possible to actually build uv on 32-bit PPC)
+ sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/xarray/Manifest b/dev-python/xarray/Manifest
index 73ea1c5290a3..965a2f73fb44 100644
--- a/dev-python/xarray/Manifest
+++ b/dev-python/xarray/Manifest
@@ -1,9 +1,8 @@
-DIST xarray-2025.10.0.tar.gz 3058084 BLAKE2B 72df811cb7d7b0af3e6a718564e1061e45d116f108c8d3e431ec91fa0f514451588bd060c9243e773e6f4863294a388c0d48e1322f91a04144bccd40d8f1cc02 SHA512 03f1d3e6c124d85e84ba72ce941381c40dd39aab5ad413f129a6fb52bd0241b3d4a2105a72c5a5463945619b2d751658692e0ff38da20cc9df362eb480d7f9d2
DIST xarray-2025.10.1.tar.gz 3058736 BLAKE2B c0fc6bb4bbec01151841331d051bd10f073ca62e27a9229685937e21d5e4108fe7a1668114d4c2d4ac4f3c31d62aa9d97099a5b081187494d51555b84a54286f SHA512 aa4e0678a7ad4fa18ab1c9cbb6d8ed0ffe99b5461f1b0797e54ad34edf9de0270ee19d9db4c20399de2d7a3a7f3023088a66e4e8585278f1c7db5572651afd1f
DIST xarray-2025.10.1.tar.gz.provenance 9539 BLAKE2B 1a341643aa8787f31dd02a32292ad5c71e6c888d28bd32d7af83946555e0f27c7131ee72d45e2853d53b87816c43a51d56d2b0e6fea2f9dd2c5c88e4544bf6d3 SHA512 5c483fa98e4c190f18963c8305d6343d4c0f97c1d8c62b961b0109ebc03be8bc26f5afc8ab8551180f4c64bb44bbb4c19da55177634e6395407472f2c83894b0
DIST xarray-2025.11.0.tar.gz 3072276 BLAKE2B c7366eaaaa835a02b1605043483b80e5116092e78a9a4be293f1bafdab54108daadaef7911eae6f3d9a7eccc73f15535673ba42decf0beba827f85b01f999ea1 SHA512 8dc1a7dc058d945c19c829f95f1ea132fe4f52471659428d0a4e109f54dbae9c4da10647303b6870548f0b0013469936265206638559096bcc6fe73a0f1f7c1c
DIST xarray-2025.11.0.tar.gz.provenance 9500 BLAKE2B a0c458b4a43668356e9cf899ffee57e2c67e59d90807dc4da9a7f9b8c8ef0d188b66dfe50a4cf5b17be31ef1cf9c76981df82968e0b542e9003078733927ccaf SHA512 1741796728e0bf589970ef5990a64e7c5619ee0a29bb9232ade30cbdc04d5f884bb9cefdbd2f16bf4df63535323755608ea79d2a05b520ffb0f72688046d039d
+DIST xarray-2025.12.0.tar.gz 3082244 BLAKE2B ae7ddcefc9ad76f03b9c0e33a05620bf48c3d812324d8a3fb99a731a172612980af3bce703bc9b270ba150514f3b337b93c5ed325c3da956202b6b50ada51f4a SHA512 7bbdf756d24a91c4a11c5d38d10dfe520e2cb80ba2beecdbf534fae76c6c6148232f2f072d068daab60146d46c89e12800276ebc1bc4d5228b16dde8f80d9793
+DIST xarray-2025.12.0.tar.gz.provenance 9490 BLAKE2B a022f4b1432878278e919ee02cc2986efacb20ddd508119224ab3577ee290ee468ae14031dd2a67ed0359df3e6827b2a6dfe455aed1106dd29fc079645633801 SHA512 1dd1124e767bbbcc25f642528dfebd0a27f220b7ab9df0a92ef8aefe1989c51a19e0b145342e9af226f665c00a2a46018147d5c98094b7900d81a11c4db0a87d
DIST xarray-2025.6.1.tar.gz 3003185 BLAKE2B a75f68947922e922dad94dc6ab5454d9d2b2ec993e5fd06d760b2e3685b3feda2a88fb879e7ebb353b35dea5540fa8899eb8cba33ab0e5f9b59cb3fd885de1af SHA512 4fc7980f843f86c8e83015fbf9ea2c8440b046faaa1589a605cf1e2f64f9380e28e157c8afda5c0058b3fe8cfe01122ba8582f5d61b9f0eabdf7107ce6d81c0c
DIST xarray-2025.7.1.tar.gz 3013717 BLAKE2B 37abbeec6736745a9a0cc098bfdb36b76c5b07a1f762a3207e7a69bda1670ad464c328daabcb5845f65dcb0b9901f045c633fb12fed4524bcc7dacfcc259e65b SHA512 446e50cfa16a3ba54124dc9417203ea96f6232e05515de38dc191b06ee417e165fd2faefaf4718eddb9620d32675abc6c2125ac7555759eb003263a70662cb7e
-DIST xarray-2025.8.0.tar.gz 3034425 BLAKE2B 089eecd4b8928bcc4cae2aa590a06f4d8b45b2886f1cb7f26114f97ea55914fecf83e58eec637c83123e1d81ff2bfb92f1d4ac18161b39495beb4975af71f255 SHA512 2ace4ae6736a5cde298f7d0da6b704326fa5b28d758744e0db022cc3e9ea6514ac447c5d7762fc273bc192ad7b31517edc0cda7a16302c3e9a63d5c952b1bcd2
-DIST xarray-2025.9.1.tar.gz 3057322 BLAKE2B a62f1d69735f0d7776000862a4245ead49df1aa200f05fb6be5f1aec05acf43da0e5bf7c7c99a081cc0b0b22bea030b084a24853ff8bc87a0ff520bbe6dffe7f SHA512 dd720d19a766be6ffe46c6386037ff914e983168bcda8c7d50647039cae618f8e7bf3a89bf9b486ced6457789e07f48e346134c6b08aadbe5f44df6dbde59df6
diff --git a/dev-python/xarray/xarray-2025.10.0.ebuild b/dev-python/xarray/xarray-2025.12.0.ebuild
index 9dbf7237b699..2df47af4aee3 100644
--- a/dev-python/xarray/xarray-2025.10.0.ebuild
+++ b/dev-python/xarray/xarray-2025.12.0.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pydata/xarray
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
@@ -31,7 +32,6 @@ BDEPEND="
test? (
dev-python/bottleneck[${PYTHON_USEDEP}]
dev-python/cftime[${PYTHON_USEDEP}]
- dev-python/hypothesis[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
!riscv? ( !x86? (
>=dev-python/netcdf4-1.6.0[bzip2,szip,${PYTHON_USEDEP}]
@@ -41,7 +41,7 @@ BDEPEND="
)
"
-EPYTEST_PLUGINS=( pytest-asyncio )
+EPYTEST_PLUGINS=( hypothesis pytest-asyncio )
EPYTEST_XDIST=1
distutils_enable_tests pytest
@@ -67,6 +67,14 @@ python_test() {
xarray/tests/test_backends.py::TestGenericNetCDF4InMemory::test_roundtrip_group_via_memoryview
)
+ if has_version ">=dev-python/numpy-2.4[${PYTHON_USEDEP}]" ; then
+ EPYTEST_DESELECT+=(
+ # TODO
+ xarray/tests/test_dataarray.py::TestDataArray::test_curvefit_helpers
+ xarray/tests/test_variable.py::TestIndexVariable::test_concat_periods
+ )
+ fi
+
if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
EPYTEST_DESELECT+=(
'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
diff --git a/dev-python/xarray/xarray-2025.8.0.ebuild b/dev-python/xarray/xarray-2025.8.0.ebuild
deleted file mode 100644
index 7c18e41ee09b..000000000000
--- a/dev-python/xarray/xarray-2025.8.0.ebuild
+++ /dev/null
@@ -1,129 +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_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="N-D labeled arrays and datasets in Python"
-HOMEPAGE="
- https://xarray.pydata.org/
- https://github.com/pydata/xarray/
- https://pypi.org/project/xarray/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-IUSE="big-endian"
-
-RDEPEND="
- >=dev-python/numpy-1.26[${PYTHON_USEDEP}]
- >=dev-python/pandas-2.2[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.1[${PYTHON_USEDEP}]
-"
-# note: most of the test dependencies are optional
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/bottleneck[${PYTHON_USEDEP}]
- dev-python/cftime[${PYTHON_USEDEP}]
- dev-python/hypothesis[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- !riscv? ( !x86? (
- >=dev-python/netcdf4-1.6.0[bzip2,szip,${PYTHON_USEDEP}]
- ) )
- dev-python/toolz[${PYTHON_USEDEP}]
- !hppa? ( >=dev-python/scipy-1.13[${PYTHON_USEDEP}] )
- )
-"
-
-EPYTEST_PLUGINS=( pytest-asyncio )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
- # indirect pin, sigh
- sed -i -e '/numpy/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO: these fail with filter errors even if netcdf4 is built
- # with blosc/zstd support
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[zstd]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4hc]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zlib]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]'
- # requires h5netcdf package
- xarray/tests/test_backends_datatree.py::TestNetCDF4DatatreeIO::test_open_datatree_specific_group
- )
-
- if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
- )
-
- if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_calendar_ops.py::test_interp_calendar
- )
- fi
- fi
-
- if use big-endian ; then
- EPYTEST_DESELECT+=(
- # Appears to be a numpy issue in display? See bug #916460.
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-20-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-09-21T00:12:44.145224808-ns-float64-1e+30-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225216-ns-float64--9.223372036854776e+18-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:21:52.901038080-ns-float32-20.0-True]'
- )
- fi
-
- if [[ ${ABI} != *64* ]]; then
- EPYTEST_DESELECT+=(
- # these tests hardcode object sizes for 64-bit arches
- # https://github.com/pydata/xarray/issues/9127
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex_long
- xarray/tests/test_dataset.py::TestDataset::test_repr
- xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex
- xarray/tests/test_datatree.py::TestRepr::test_doc_example
- xarray/tests/test_datatree.py::TestRepr::test_repr_truncates_nodes
- xarray/tests/test_formatting.py::test_array_repr_dtypes_unix
-
- # converting timestamps into ns, causing an overflow
- xarray/tests/test_cftimeindex.py::test_asi8
- xarray/tests/test_coding_times.py::test_decode_cf_time_bounds
- xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range
- xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units
- )
- fi
-
- case ${ARCH} in
- arm64)
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- )
- ;;
- esac
-
- if ! has_version "dev-python/seaborn[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_plot.py::TestContour::test_colors
- )
- fi
-
- epytest -o addopts=
-}
diff --git a/dev-python/xarray/xarray-2025.9.1.ebuild b/dev-python/xarray/xarray-2025.9.1.ebuild
deleted file mode 100644
index 9dbf7237b699..000000000000
--- a/dev-python/xarray/xarray-2025.9.1.ebuild
+++ /dev/null
@@ -1,131 +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_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="N-D labeled arrays and datasets in Python"
-HOMEPAGE="
- https://xarray.pydata.org/
- https://github.com/pydata/xarray/
- https://pypi.org/project/xarray/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-IUSE="big-endian"
-
-RDEPEND="
- >=dev-python/numpy-1.26[${PYTHON_USEDEP}]
- >=dev-python/pandas-2.2[${PYTHON_USEDEP}]
- >=dev-python/packaging-24.1[${PYTHON_USEDEP}]
-"
-# note: most of the test dependencies are optional
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/bottleneck[${PYTHON_USEDEP}]
- dev-python/cftime[${PYTHON_USEDEP}]
- dev-python/hypothesis[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- !riscv? ( !x86? (
- >=dev-python/netcdf4-1.6.0[bzip2,szip,${PYTHON_USEDEP}]
- ) )
- dev-python/toolz[${PYTHON_USEDEP}]
- !hppa? ( >=dev-python/scipy-1.13[${PYTHON_USEDEP}] )
- )
-"
-
-EPYTEST_PLUGINS=( pytest-asyncio )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
- # indirect pin, sigh
- sed -i -e '/numpy/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO: these fail with filter errors even if netcdf4 is built
- # with blosc/zstd support
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[zstd]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4hc]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zlib]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]'
- # requires h5netcdf package
- xarray/tests/test_backends_datatree.py::TestNetCDF4DatatreeIO::test_open_datatree_specific_group
- # NotImplementedError, seriously?
- xarray/tests/test_backends.py::TestGenericNetCDF4InMemory::test_roundtrip_group_via_memoryview
- )
-
- if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
- )
-
- if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_calendar_ops.py::test_interp_calendar
- )
- fi
- fi
-
- if use big-endian ; then
- EPYTEST_DESELECT+=(
- # Appears to be a numpy issue in display? See bug #916460.
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-20-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-09-21T00:12:44.145224808-ns-float64-1e+30-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225216-ns-float64--9.223372036854776e+18-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:21:52.901038080-ns-float32-20.0-True]'
- )
- fi
-
- if [[ ${ABI} != *64* ]]; then
- EPYTEST_DESELECT+=(
- # these tests hardcode object sizes for 64-bit arches
- # https://github.com/pydata/xarray/issues/9127
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex_long
- xarray/tests/test_dataset.py::TestDataset::test_repr
- xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex
- xarray/tests/test_datatree.py::TestRepr::test_doc_example
- xarray/tests/test_datatree.py::TestRepr::test_repr_truncates_nodes
- xarray/tests/test_formatting.py::test_array_repr_dtypes_unix
-
- # converting timestamps into ns, causing an overflow
- xarray/tests/test_cftimeindex.py::test_asi8
- xarray/tests/test_coding_times.py::test_decode_cf_time_bounds
- xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range
- xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units
- )
- fi
-
- case ${ARCH} in
- arm64)
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- )
- ;;
- esac
-
- if ! has_version "dev-python/seaborn[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_plot.py::TestContour::test_colors
- )
- fi
-
- epytest -o addopts=
-}