summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-11-19 11:07:31 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-11-19 11:07:31 +0000
commite8b4ea171c0801b17f17c79bb763aec86f3f16d7 (patch)
tree5a83e642b8733d339b288831eb38c7fb8b0543f0 /dev-python
parent1a21821952be2422c0a5535d0fd485d6df32d3ab (diff)
downloadbaldeagleos-repo-e8b4ea171c0801b17f17c79bb763aec86f3f16d7.tar.gz
baldeagleos-repo-e8b4ea171c0801b17f17c79bb763aec86f3f16d7.tar.xz
baldeagleos-repo-e8b4ea171c0801b17f17c79bb763aec86f3f16d7.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/ansible-pylibssh/ansible-pylibssh-1.3.0.ebuild2
-rw-r--r--dev-python/asttokens/Manifest1
-rw-r--r--dev-python/asttokens/asttokens-3.0.1.ebuild35
-rw-r--r--dev-python/backrefs/Manifest3
-rw-r--r--dev-python/backrefs/backrefs-6.1.ebuild (renamed from dev-python/backrefs/backrefs-5.9.ebuild)5
-rw-r--r--dev-python/bandit/Manifest2
-rw-r--r--dev-python/bandit/bandit-1.9.1.ebuild42
-rw-r--r--dev-python/blessed/Manifest1
-rw-r--r--dev-python/blessed/blessed-1.25.0.ebuild52
-rw-r--r--dev-python/boto3/Manifest2
-rw-r--r--dev-python/boto3/boto3-1.40.75.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.40.76.ebuild53
-rw-r--r--dev-python/botocore/Manifest2
-rw-r--r--dev-python/botocore/botocore-1.40.75.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.40.76.ebuild67
-rw-r--r--dev-python/certifi/Manifest2
-rw-r--r--dev-python/certifi/certifi-2025.11.12.ebuild (renamed from dev-python/certifi/certifi-2025.08.03.ebuild)0
-rw-r--r--dev-python/cfn-lint/Manifest5
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.40.1.ebuild61
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.40.2.ebuild61
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.40.3.ebuild61
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.41.0.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.40.0.ebuild)0
-rw-r--r--dev-python/click/Manifest2
-rw-r--r--dev-python/click/click-8.3.1-r1.ebuild31
-rw-r--r--dev-python/coverage/Manifest9
-rw-r--r--dev-python/coverage/coverage-7.10.6.ebuild109
-rw-r--r--dev-python/coverage/coverage-7.11.1.ebuild110
-rw-r--r--dev-python/coverage/coverage-7.11.2.ebuild110
-rw-r--r--dev-python/coverage/coverage-7.12.0.ebuild (renamed from dev-python/coverage/coverage-7.11.0.ebuild)4
-rw-r--r--dev-python/dbus-fast/Manifest2
-rw-r--r--dev-python/dbus-fast/dbus-fast-2.46.4.ebuild62
-rw-r--r--dev-python/dbus-fast/dbus-fast-3.1.2.ebuild62
-rw-r--r--dev-python/dirty-equals/Manifest2
-rw-r--r--dev-python/dirty-equals/dirty-equals-0.11.0.ebuild (renamed from dev-python/dirty-equals/dirty-equals-0.9.0.ebuild)6
-rw-r--r--dev-python/executing/executing-2.2.1.ebuild2
-rw-r--r--dev-python/eyed3/Manifest1
-rw-r--r--dev-python/eyed3/eyed3-0.9.9.ebuild60
-rw-r--r--dev-python/hishel/Manifest1
-rw-r--r--dev-python/hishel/hishel-1.1.6.ebuild73
-rw-r--r--dev-python/hypothesis/Manifest2
-rw-r--r--dev-python/hypothesis/hypothesis-6.148.1.ebuild91
-rw-r--r--dev-python/hypothesis/hypothesis-6.148.2.ebuild91
-rw-r--r--dev-python/jupyterlab/Manifest3
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.4.7.ebuild75
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.5.0.ebuild (renamed from dev-python/jupyterlab/jupyterlab-4.4.8.ebuild)3
-rw-r--r--dev-python/keyring/Manifest1
-rw-r--r--dev-python/keyring/keyring-25.7.0.ebuild52
-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/mapbox-earcut/Manifest1
-rw-r--r--dev-python/mapbox-earcut/mapbox-earcut-2.0.0.ebuild46
-rw-r--r--dev-python/ml-dtypes/Manifest2
-rw-r--r--dev-python/ml-dtypes/ml-dtypes-0.5.4.ebuild (renamed from dev-python/ml-dtypes/ml-dtypes-0.5.1.ebuild)4
-rw-r--r--dev-python/moto/Manifest8
-rw-r--r--dev-python/moto/moto-5.1.10.ebuild114
-rw-r--r--dev-python/moto/moto-5.1.11.ebuild114
-rw-r--r--dev-python/moto/moto-5.1.17.ebuild (renamed from dev-python/moto/moto-5.1.12.ebuild)0
-rw-r--r--dev-python/moto/moto-5.1.8.ebuild113
-rw-r--r--dev-python/moto/moto-5.1.9.ebuild114
-rw-r--r--dev-python/narwhals/Manifest2
-rw-r--r--dev-python/narwhals/narwhals-2.12.0.ebuild44
-rw-r--r--dev-python/numpy/Manifest2
-rw-r--r--dev-python/numpy/numpy-2.3.5.ebuild358
-rw-r--r--dev-python/omemo-dr/Manifest1
-rw-r--r--dev-python/omemo-dr/omemo-dr-1.1.0.ebuild28
-rw-r--r--dev-python/plotly/Manifest1
-rw-r--r--dev-python/plotly/plotly-6.5.0.ebuild97
-rw-r--r--dev-python/podcastparser/Manifest1
-rw-r--r--dev-python/podcastparser/podcastparser-0.6.11.ebuild22
-rw-r--r--dev-python/pypdf/Manifest1
-rw-r--r--dev-python/pypdf/pypdf-6.3.0.ebuild51
-rw-r--r--dev-python/pyqtgraph/Manifest1
-rw-r--r--dev-python/pyqtgraph/pyqtgraph-0.14.0.ebuild167
-rw-r--r--dev-python/pytest-check/pytest-check-2.6.0.ebuild2
-rw-r--r--dev-python/pytest-localftpserver/Manifest1
-rw-r--r--dev-python/pytest-localftpserver/pytest-localftpserver-1.5.0.ebuild39
-rw-r--r--dev-python/pytest-reserial/Manifest2
-rw-r--r--dev-python/pytest-reserial/pytest-reserial-0.5.0.ebuild29
-rw-r--r--dev-python/python-ironicclient/Manifest2
-rw-r--r--dev-python/python-ironicclient/python-ironicclient-5.14.0.ebuild (renamed from dev-python/python-ironicclient/python-ironicclient-5.12.0.ebuild)2
-rw-r--r--dev-python/pythran/Manifest1
-rw-r--r--dev-python/pythran/pythran-0.18.1.ebuild93
-rw-r--r--dev-python/pyudev/pyudev-0.24.4.ebuild2
-rw-r--r--dev-python/pyupgrade/Manifest3
-rw-r--r--dev-python/pyupgrade/pyupgrade-3.20.0.ebuild30
-rw-r--r--dev-python/pyupgrade/pyupgrade-3.21.2.ebuild (renamed from dev-python/pyupgrade/pyupgrade-3.21.0.ebuild)0
-rw-r--r--dev-python/reportlab/Manifest2
-rw-r--r--dev-python/reportlab/reportlab-4.4.5.ebuild (renamed from dev-python/reportlab/reportlab-4.4.3.ebuild)2
-rw-r--r--dev-python/rpds-py/Manifest3
-rw-r--r--dev-python/rpds-py/rpds-py-0.29.0.ebuild65
-rw-r--r--dev-python/ruamel-yaml-clib/Manifest2
-rw-r--r--dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch39
-rw-r--r--dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.15.ebuild (renamed from dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild)8
-rw-r--r--dev-python/shtab/Manifest2
-rw-r--r--dev-python/shtab/shtab-1.8.0.ebuild32
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-28.0.0.ebuild93
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-14.0.0.ebuild91
-rw-r--r--dev-python/time-machine/Manifest3
-rw-r--r--dev-python/time-machine/time-machine-2.17.0.ebuild42
-rw-r--r--dev-python/time-machine/time-machine-3.0.0.ebuild (renamed from dev-python/time-machine/time-machine-2.18.0.ebuild)7
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.9.10.ebuild99
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.9.10.ebuild167
-rw-r--r--dev-python/xarray/Manifest2
-rw-r--r--dev-python/xarray/xarray-2025.11.0.ebuild132
-rw-r--r--dev-python/zope-hookable/Manifest1
-rw-r--r--dev-python/zope-hookable/zope-hookable-8.2.ebuild35
-rw-r--r--dev-python/zope-i18nmessageid/Manifest1
-rw-r--r--dev-python/zope-i18nmessageid/zope-i18nmessageid-8.2.ebuild34
114 files changed, 2716 insertions, 1219 deletions
diff --git a/dev-python/ansible-pylibssh/ansible-pylibssh-1.3.0.ebuild b/dev-python/ansible-pylibssh/ansible-pylibssh-1.3.0.ebuild
index 51a24919d3fd..99e6b398fa5a 100644
--- a/dev-python/ansible-pylibssh/ansible-pylibssh-1.3.0.ebuild
+++ b/dev-python/ansible-pylibssh/ansible-pylibssh-1.3.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm ~arm64"
# keywords needed for ansible
# ~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos
diff --git a/dev-python/asttokens/Manifest b/dev-python/asttokens/Manifest
index d3c75d70446f..394eea17b496 100644
--- a/dev-python/asttokens/Manifest
+++ b/dev-python/asttokens/Manifest
@@ -1 +1,2 @@
DIST asttokens-3.0.0.gh.tar.gz 56937 BLAKE2B 38b3c9271ba57c032f552cb6dedd2cd2ef2eb6294b2f5e2fde4821260b73453495576b6641fa9450bd86f08ed4a296e010a5ce5f0f3502cbeb27857e1792802f SHA512 9d0f78ee90758d52fd15ee2f1940ddc14e8fc0d15e83fb01e731c6b79e328510f6c588c7856935aed99017b98f1daa99ee25802964990d59f63c62a0a5646804
+DIST asttokens-3.0.1.gh.tar.gz 57176 BLAKE2B d46da589642008dd9ff2665e6df11f2b582dc768c698f3202651ff68c20cf49a7d4e08361cee9fa0f4fa1b6ad255408b8fca9443bc0664069c026fed3764acac SHA512 653a486f025243e4bf51ff2c23b9b61d3e565106ce2653bcffac484dbd8223d433be680d742a3148c6396482a12faa99236a32ea0e876983a8d24678c8d48740
diff --git a/dev-python/asttokens/asttokens-3.0.1.ebuild b/dev-python/asttokens/asttokens-3.0.1.ebuild
new file mode 100644
index 000000000000..21de7fd62481
--- /dev/null
+++ b/dev-python/asttokens/asttokens-3.0.1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2020-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="Annotate Python AST trees with source text and token information"
+HOMEPAGE="
+ https://github.com/gristlabs/asttokens/
+ https://pypi.org/project/asttokens/
+"
+SRC_URI="
+ https://github.com/gristlabs/asttokens/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/astroid[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/backrefs/Manifest b/dev-python/backrefs/Manifest
index fdf5a391df19..5e9331cbf737 100644
--- a/dev-python/backrefs/Manifest
+++ b/dev-python/backrefs/Manifest
@@ -1,2 +1,3 @@
-DIST backrefs-5.9.tar.gz 5765857 BLAKE2B ab890ecafc57c5e5e26fe0dc199fd431dd2369f342113c660d8c915fa7708b775989aa0ef7078c77c172583b57f00733410f5ff6a4bf3c7aa451eec0ab6a99d7 SHA512 edd26abe9765284a633bb05ddba36869ad80bc57f37065aba05614398476a1b2bfe94fe51ca7de201905c8e7ed4e5582b19610a5b2d13023abfbfd8ebb477b2c
DIST backrefs-6.0.1.tar.gz 5767249 BLAKE2B 157f6eb46b13948ce4a1a8c0e3c924498c4a2782d696d79f5909083744535347f94c754b2507555bf3fba841b8181b5e32b867cf741e728c3720decf317c4650 SHA512 341fd6a5e35cb0a9bd70d7572ab5d4f449d12061508cd736793f20ba71d6ed733305d54b85d3b4ed2ba2330d5cc64caac79608d970a80a8e751384783dda55b6
+DIST backrefs-6.1.tar.gz 7011962 BLAKE2B 0c1b507a1765dc38d4a9f45e86165ca6fe5994ecb63c8450a2ca9411e1458506b1ac881570f8867f5e778b47ee66d5b08418d6abe3ddd2483ef9a2da9820c9ba SHA512 eab73754e72b61b106691ab36c2c5734973a5407f1d88ca3175c3df3ce291f371241855558e593085ff038c4f42ba259eb6a4337dadca2246264951bc9bb90ee
+DIST backrefs-6.1.tar.gz.provenance 9226 BLAKE2B aa05b7f186e6b465b2381a867a3b4a61a05623bc5e68f0949b21aefaf845a531e98d27aeda03510e7d942e70a41fdf3ff0c84f15601984cc600b4d3e5d06e8a5 SHA512 bad5c4b102451b0831582801ce174d2cf01cd9c7dcd3ae689060e907681dc9b50390ee81d5a2f6d524955d72388bbd5d5b560e1dc4c9d0867a99f832fd4c39ec
diff --git a/dev-python/backrefs/backrefs-5.9.ebuild b/dev-python/backrefs/backrefs-6.1.ebuild
index 9d16ea5e0beb..f69ae608afd3 100644
--- a/dev-python/backrefs/backrefs-5.9.ebuild
+++ b/dev-python/backrefs/backrefs-6.1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/facelessuser/backrefs
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
@@ -16,14 +17,14 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
BDEPEND="
test? (
- dev-python/mock[${PYTHON_USEDEP}]
dev-python/regex[${PYTHON_USEDEP}]
dev-vcs/git
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/bandit/Manifest b/dev-python/bandit/Manifest
index e65846f934fc..c2529a7afb5f 100644
--- a/dev-python/bandit/Manifest
+++ b/dev-python/bandit/Manifest
@@ -1 +1,3 @@
DIST bandit-1.8.6.tar.gz 4240271 BLAKE2B b1e9c919b2cb4fb7a732aaa52c35b50e51deb5cc233e884776fe52dec4928d67b2d9c29fecf0d39c1c269430b8c989dbc1f7d8f3dcfa94cac033353a5313067e SHA512 764b5bcd584b35bf36b277ede2cbf276487f99aa2881dd350db56539b968bd03ef2b3121afae075c0be24a8295cc29767e0dfe523923c2fbbb0d093f49658abb
+DIST bandit-1.9.1.tar.gz 4241552 BLAKE2B 7e1c8ef3982f614d64390d843122de346f0b1c34c70244fb81b59167e028b3b24b0cbab3cf073dcc5ce0442f826d8fcaf4557d9e133fd94551d9f59f34fab75f SHA512 3fbf24e72e20b9a0d222c15b085d7b7f5f0b601999440bc176dff7f08fa382632447aba8a3187fd7627ce12d79176b81a49339032254f26adc6615eaf99548b0
+DIST bandit-1.9.1.tar.gz.provenance 9409 BLAKE2B 88640c263ca3a5583cc0e6b0237949654bb3dbd5906cb38db6c574fd80d2ba3025f9df4aa0c24e509fe93c512e9f2cb3c4f669dc730e7098f1c13c5ed12f5d3c SHA512 f2bb72262590cb1f6d04e79ee1c130580a3b1d74e684da1d21a68c273f6c3a2dc931a9370f9985875ff5f9388591ed10bc0a2b27482988cdc1e1e264511b4eea
diff --git a/dev-python/bandit/bandit-1.9.1.ebuild b/dev-python/bandit/bandit-1.9.1.ebuild
new file mode 100644
index 000000000000..8131185c770e
--- /dev/null
+++ b/dev-python/bandit/bandit-1.9.1.ebuild
@@ -0,0 +1,42 @@
+# 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/PyCQA/bandit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A security linter from OpenStack Security"
+HOMEPAGE="
+ https://github.com/PyCQA/bandit/
+ https://pypi.org/project/bandit/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/gitpython-3.1.30[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.3.1[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/beautifulsoup4-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/pylint-1.9.4[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.5.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.3.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/blessed/Manifest b/dev-python/blessed/Manifest
index 6936deb53803..799c4ace6020 100644
--- a/dev-python/blessed/Manifest
+++ b/dev-python/blessed/Manifest
@@ -1,2 +1,3 @@
DIST blessed-1.22.0.tar.gz 6660050 BLAKE2B 7831755658fdd76521bde748184837889167333cdad4c552e12e3809af37c390f7d066d2cab284e20b7c01a62d768eecd92ee976ea44b0ced81225ac5afa2902 SHA512 0bdb10332420ab078151790b4b090d4d8703659ce34cdf9465dc160feb03b51eed49c4f5226b29e9290918ba5a4311626efe18028717f454e3b73e7f6bad9695
DIST blessed-1.23.0.tar.gz 6745236 BLAKE2B 4d211d840f964412b62089d96c364409d6ce80e119841b037287f68f667f640aac56ad37dda19ac47bba54053faf26c6c81bab52d01acfa155e2e9738c0a658d SHA512 0b343d4b55df2aaa516e7c0ac41f0bf5ad00bdc282eeace219eb5515fe464770bb1d35fbed9f65705213394e679691c96aa957f93652d6dda6d1958d4074bfda
+DIST blessed-1.25.0.tar.gz 6746381 BLAKE2B d729c5963fc388d9672a660719ecafbd995b6b1b38feacd26b6db57a5857846286b6f3d99bf391f008bed28d111918a3cc50e47db30490285b85a032c7f1ebd6 SHA512 28ffc5bb6b84d9ae4019ec74bb6a5144611cdbf72f2aebb1c9776179a018b454e0a5f9a5e771ac3f46cdda4a1c074c18e72aa27ba7fdf6d6bcfda9864ce39264
diff --git a/dev-python/blessed/blessed-1.25.0.ebuild b/dev-python/blessed/blessed-1.25.0.ebuild
new file mode 100644
index 000000000000..43aaeec1b8bf
--- /dev/null
+++ b/dev-python/blessed/blessed-1.25.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Library for making terminal apps using colors, keyboard input and positioning"
+HOMEPAGE="
+ https://github.com/jquast/blessed/
+ https://pypi.org/project/blessed/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/wcwidth-0.1.4[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=()
+# tests are flaky with xdist
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # Skip those extensions as they don't have a Gentoo package
+ # Remove calls to scripts that generate rst files because they
+ # are not present in the tarball
+ sed -e '/sphinxcontrib.manpage/d' -e '/sphinx_paramlinks/d' \
+ -e '/^for script in/,/runpy.run_path/d' \
+ -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # fragile to timing
+ tests/test_sixel.py::test_sixel_height_and_width_fallback_to_xtwinops
+ )
+
+ # COLORTERM must not be truecolor
+ # See https://github.com/jquast/blessed/issues/162
+ local -x COLORTERM=
+ # Ignore coverage options
+ epytest --override-ini="addopts="
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 14a3fdef5d17..f3490eebd3b3 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,3 +4,5 @@ DIST boto3-1.40.59.gh.tar.gz 1017517 BLAKE2B 31511c062e6991ba14b7bc7227f4b4a214d
DIST boto3-1.40.64.gh.tar.gz 1023920 BLAKE2B ca8af519caa4d3d4a20c808b3b9d263ad4d684327c29513d9fd37fc820f2d38c6a6450d6450d9a5355bdf4182e875a01939d69546821b00594b51b985fec31b5 SHA512 58010e4fbca89978aee5703e6e39ffe6116b31c1afb409335937de07e447e9027eea9523ac04e059c12cbf46b84ce88583b49356457978dc8d8491688fc2034d
DIST boto3-1.40.69.gh.tar.gz 1027290 BLAKE2B 5e68da89d063ee063dc79d3fee9958ea6a8d408184f28931f9b21aaaa52c2f1a2ac5ddf293ff7d5dccccd0097ec94e0688fa0cd206f11f19bf0c774ece3c164b SHA512 509b32070e09ebb965d392ced9c064ef97b44f8c530cca807177261eecc3cf522df8d4c0822f7aa3521d7cff81935891e33fcc0570462ba73740ae85f6514d0c
DIST boto3-1.40.74.gh.tar.gz 1032058 BLAKE2B c24653bac3279f688d240390f53a9070d51d7d13bae6d7179c849c189fe70ddcbf35892ad8ddf6dd77e508ea597901db60ecccc083666aa9178b07d2388ffff7 SHA512 0ab155ccf97335ad29f7d62f4fed3979fffa1b45d2ffa4bf5e949c90c864298179e5c3854ec157a7dfdf2dd9efd91df83307a04060e95b77aa38cfcfe8137033
+DIST boto3-1.40.75.gh.tar.gz 1034002 BLAKE2B 3e2e2c88bd0a8972b044a66cf84be171cca77832d0513623172c0ed1039bcc5293de457d69361977ff1fd80ffee6df132d4c5a0a4681f1f9d57b7f65dc1eb6b2 SHA512 cb158f99ba97ecc48ab663a57215cf2fa8e512de84a74b3a7e830f135b6814fd9947685ef3210893922ed0f246da25d6b2c83a8e308897a0d328d90c11bd731a
+DIST boto3-1.40.76.gh.tar.gz 1035550 BLAKE2B 0534ec5d892cd74f1a33479f19ade40575bd1ffdca0f05cf383a2fdb04f8c00820ae661de740e927a7913f986b7b85d7a47f707438f6b7fe0e403a480586bea4 SHA512 d3cdf982774d4d1b501658a12ab8708afc34efa975090dbefd6289477b7bfb23e7d1ac0371289fa0511931b9859c29de48c537d5a3bd4217355253bdc00621b3
diff --git a/dev-python/boto3/boto3-1.40.75.ebuild b/dev-python/boto3/boto3-1.40.75.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.75.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.14.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/boto3/boto3-1.40.76.ebuild b/dev-python/boto3/boto3-1.40.76.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.76.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.14.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 a66f4313ab02..62909b5656fc 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,3 +4,5 @@ DIST botocore-1.40.59.gh.tar.gz 15284317 BLAKE2B f0e5b5ac06292c003ac6dcf0d8b4098
DIST botocore-1.40.64.gh.tar.gz 15230274 BLAKE2B 6156b2d80f6aee5df0d746bf3a2fe1bda6cee3435612d3db12a8134b9fdfa7a6c250752dadb562d1c804052ea6c775f802067d611ba1fb597e9d90439e219b64 SHA512 a8c7793146d25ae5cabe12fa5a65e8195f35029dd2f0dd9a6d012b8abfe41e1871808e1dd3d550ac153ce323c15c398b35a535780c5e143bbe5645b5eeb8c620
DIST botocore-1.40.69.gh.tar.gz 15265787 BLAKE2B c567c9d2cd25d98e7055b829ca337654f3c2f239296e32735d8064dc698a4fee41464a0ca22453f93feea7a9d6eb58183406780c56bab345521420c7177681a9 SHA512 2c76026a2b5114fbc4d8be54cf67ade64f3a563f8b50e83bdfc1f238f220a94acb1ca1aa607ce4934a8e2b58ebfa2c4b07892b693ad80d539188352a3ffa1f75
DIST botocore-1.40.74.gh.tar.gz 15284643 BLAKE2B 585f072a5ec39c12e3f74a272b0c5ed7d07d1f69b704058d9154da2c12753008b57c5c1c05e7cc982aa4cf28060aa20c62f7ecb6874534b109e409f3b2fcf05c SHA512 c17d51212481e5e3c4af912679894fb73ae4084d983cc086e99ffa7b3522723ce7bf82e6745cc55cc1db9d2ae1657d0e1a74cbd3b06653e7fc1987125667b18d
+DIST botocore-1.40.75.gh.tar.gz 15307607 BLAKE2B 0529d1f62bb6ac6b730eceb4ed53961636399818b3b832df28c2f3c8b3fe8bcd8f0609ce84cb95c9c45dc2385458b8756b9a8801da9b081410d67ef916dd8f9b SHA512 1f06fc8767f95502c36d8e68116059f42c7a4b9cb7c4ef6329f1fef3b19fd33d85519ac571138b0ad64af8c99c69b57d9c7f07c443922e7853b5c625ecb2d973
+DIST botocore-1.40.76.gh.tar.gz 15329738 BLAKE2B b52289d014878fe6f6ba8053ce84c77fd569819bc5f0b482a3aa1e9f543739e019ef35d530487e0bae33f80e45e302741ab4437e3f1841618fca59caf3d95b03 SHA512 4ce5c91ce346f5317ac0287913926743785388f31f746e05dc6751b3ee8e087382a4f140a46a4df83327e3c18f3f5c88d6e834abe24c35fcc810ba4ee23ec933
diff --git a/dev-python/botocore/botocore-1.40.75.ebuild b/dev-python/botocore/botocore-1.40.75.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.75.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/botocore/botocore-1.40.76.ebuild b/dev-python/botocore/botocore-1.40.76.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.76.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/certifi/Manifest b/dev-python/certifi/Manifest
index 54df67f07e93..26e52ca93c5c 100644
--- a/dev-python/certifi/Manifest
+++ b/dev-python/certifi/Manifest
@@ -1,2 +1,2 @@
-DIST certifi-2025.08.03.tar.gz 162844 BLAKE2B c4d6e090e017783349d8617ade0a40d145fcb39f3323d77807f036c10cb7a4ba4d059b0749dd59d7881633873d88947f63adb527b2aa9853997d7723909ddf88 SHA512 9b39d5c72dc74322a06d37f18f678cab16d753cc6ff845c42ed55b01fbf5547fc8753da36436b9aef21245f1fd8c9c5f164e451f120c0b6aa8e883572b55f906
DIST certifi-2025.10.05.tar.gz 164951 BLAKE2B cd8885d1648423132b41d8373b71cb3e058fccde7d412c171e993a1b73e03af8412395a38435ef7f2934773a5638eec69dd283ac9fe3a65076dbe9e253f2e566 SHA512 1f5c94007f7c7cb49e0f8baffdbadf1c9646b71136c908dff2665b674a02ab9a83936f921dc0c4ca9ed1af09d404a6b9a38fd1696881a599048ea79d713b78e1
+DIST certifi-2025.11.12.tar.gz 160911 BLAKE2B cb38cffa5c2e50d19eb0fb7114af2621af4dca0f8d3b753dc17aea5571c69178c61b259e619ec7ec848bb531b4ac66222f4465dc57e01601632d18cf2c614e1d SHA512 a76c4a51661551ca51f4eee46730c6b0694f5ea1999c58445f076814329667d4d20a317a3660e872dd8011596a7d113ef063f884625cb07a7fb53ce5c5f6d533
diff --git a/dev-python/certifi/certifi-2025.08.03.ebuild b/dev-python/certifi/certifi-2025.11.12.ebuild
index 24c313591875..24c313591875 100644
--- a/dev-python/certifi/certifi-2025.08.03.ebuild
+++ b/dev-python/certifi/certifi-2025.11.12.ebuild
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index a3d76c493db9..889e16f2f5c9 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,6 +1,3 @@
DIST cfn_lint-1.39.1.tar.gz 3250565 BLAKE2B 8cae83fc090a5208e24d85270085fe7ab271838decf8e8c6914679ef2c8693f1067814f0656264bf47b8a214689862eec6f0524c9dc6bb8803cb167ed9db166d SHA512 d2c3246acde134ae840552f1202d2f8a4033fc22e7eae3ac7bd53c151294b36396c2611f3e75c86b083d0a9d00e13f9c148ceef921cbd3dd59820abdf6140333
-DIST cfn_lint-1.40.0.tar.gz 3359732 BLAKE2B adcefc474df4c05558acf69892daf8335cca39b979221cdec82de9e7b58409b1c9e980bfd1becb65b3a84fd41933ec5ece2199c698b3987499694758a9289a82 SHA512 0da2b29ab549c4422b5c2cc0c51d54308f9dd7990061e39654fa3a08c75c63e44e36b133e292757f1bb13121003791cb33409c404ec201da8718421da89a0d4f
-DIST cfn_lint-1.40.1.tar.gz 3321409 BLAKE2B 1e220b53f2bebc78dafb5b1edc84a078e59e33391f8534a8fa6e9d17c41dbc14ef10db9554cc743aca68354f2f09d16a11753255a0250cf8c85d0ff21b860acc SHA512 b1e74debb054ffdd149af632fc776bb912235a0d95681f878144e51b35732f4debf6193db1c7e9c5539cd899aac0cdd312da21ad9cf75e471cffadb9609ca307
-DIST cfn_lint-1.40.2.tar.gz 3352309 BLAKE2B ae10b4cf4039d3da96a37250d74d03284989c9439f7aee483c2aff8c233250dc1f60680fa6130943b1b684f858edf1995004baec5fd577deccb04194558ca516 SHA512 118843ae523a795d59587edda4a5bbbfed78e1617da9547fef0f6e1508d5575952ae4217a63e97d9c6f56221f3de2f64d251ff4b7e1728b168a760af4cfe39f2
-DIST cfn_lint-1.40.3.tar.gz 3426494 BLAKE2B 7545e83cdc1cc59a6990fa16839d449db2c6c8077a35f24c1d43bfdeec46b5689fd99f2da4251a211e95409d0d9c37325ebafb7ec87d7f975453a3ce7270c3d2 SHA512 683a9a17b668175b75858afafbb301ba0556ff6941698681eff1d1c7bad9787a8a7ecba3521c4554f2267c07f7f9ad6b7a1848feedcd0d0a5a24180053f62692
DIST cfn_lint-1.40.4.tar.gz 3401228 BLAKE2B 940ce635b1d52e286cb70d8caa3e6a6974000549494616587de910062ea812fbed5b2cc37af316cfd2f02975eb28ccc13402f46e3ce47677ceb48e1a265f0300 SHA512 8996b9cdaa0dd02211a2d745de94fb2896756632135f95fc9f90eebfae3209504b7b8358ddf00711f6ee37458995a87575e21d4fbd707e443c3a1df13125ef66
+DIST cfn_lint-1.41.0.tar.gz 3408534 BLAKE2B 281ac2561055366f11f5167140bbd71305a0dbb11235b8191e439665c64c2bf44fa0c2268c1924f689341dc44385a6c630ead0a0ae845e8e5478f1e66a8e818a SHA512 e3be612d3db6662650625e4393261241080f7cc5ba60405fbea39ceb6b15fec973ea5bcd7b2b188bf3276b4e61c5bd11df8fe9cc2f2ab903e395f5f13586da62
diff --git a/dev-python/cfn-lint/cfn-lint-1.40.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.40.1.ebuild
deleted file mode 100644
index 5a4087d65a4f..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.40.1.ebuild
+++ /dev/null
@@ -1,61 +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="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.97.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.40.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.40.2.ebuild
deleted file mode 100644
index 5a4087d65a4f..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.40.2.ebuild
+++ /dev/null
@@ -1,61 +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="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.97.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.40.3.ebuild b/dev-python/cfn-lint/cfn-lint-1.40.3.ebuild
deleted file mode 100644
index 5a4087d65a4f..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.40.3.ebuild
+++ /dev/null
@@ -1,61 +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="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.97.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/setuptools-77.0.3[${PYTHON_USEDEP}]
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # different line wrapping somehow
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # TODO: suddenly started failing in older versions too
- # https://github.com/aws-cloudformation/cfn-lint/issues/4207
- test/integration/test_good_templates.py
- test/unit/module/override/test_exclude.py::TestExclude::test_success_run
- test/unit/module/test_api.py::TestLintFile::test_good_template
- test/unit/module/test_rules_collections.py::TestRulesCollection::test_success_run
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.40.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.41.0.ebuild
index 5a4087d65a4f..5a4087d65a4f 100644
--- a/dev-python/cfn-lint/cfn-lint-1.40.0.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.41.0.ebuild
diff --git a/dev-python/click/Manifest b/dev-python/click/Manifest
index 73ae3666dfd7..ff91dc524a02 100644
--- a/dev-python/click/Manifest
+++ b/dev-python/click/Manifest
@@ -1,3 +1,5 @@
DIST click-8.2.1.gh.tar.gz 399811 BLAKE2B 1d28aab3fc8c2e3f977aeb5aedeaddde591d6c6ecf3d3421c4107e954f4116a9f7f6ef8ea2a42a001f0b2995bda695bd34210232a11dc83af2192dbb0c0fe462 SHA512 420ba1989410af0949317f9651c6b292da68605b86b4cf0e2382eaba1defbc9eb4b9d97e0a71e5cdb51a61a1f578e81fd864e1abb0cdcd0a8ee26a899c802afe
DIST click-8.3.0.gh.tar.gz 386835 BLAKE2B 29218ece917a8658b753850d9190b45908973ee059bff6fe745de46c089001483a8ca28061eb0cf7e10d7b2f4d003b87d648ece30eb6a87a5df7a17ba0140398 SHA512 b1296993c0493cac986a60b9a0e64f9a2058ecc7f8489c3db20bc69152a127093665debf3fd5f3a86c81b7b62236dd1e9f9c5ee83eddf3cbc1a98701cc1082a3
DIST click-8.3.1.gh.tar.gz 389151 BLAKE2B a57fef1b99e676504a3d481628935252c764d52dc968eceefdaa57ed33a54236c5d547b50fca4aafab07d80239b504c77fdb9ce9deadb1bf2da424a7f2960390 SHA512 78fb812aa729f93d3b6e48ee0d29f18797fa18411a80a52af140cb7d6439aaa0a0c07f7b8d34e274b7e034b0b630b2f2b05cee3e562c4a008c7a3a2a6aaa0424
+DIST click-8.3.1.tar.gz 295065 BLAKE2B 6910e7506693551543aaa0917df1445d7dd02e369e8174a6e8c2cc8cd160282ce957672259958ed6a5d3fcd0b792c148b4c6a5be063a812a0ea10c1623ee9242 SHA512 78bb5588f1f57f1ce00389bf3cd01630fb68bd75d4deaa9fa9cb6f420e571ea8216aefa37703154e4e99d141925c705a93212d6a23e8751a132a010f4379762e
+DIST click-8.3.1.tar.gz.provenance 8911 BLAKE2B 8dc836db89adac96c49058a092c0d539ceee25bda3944bb2cab08c9a999aa29317137f2db47cdfb97da49869c2470cc3b1232860506b84794e1521ae23f56248 SHA512 1d32249e9bae5fcd824c03926d8a35bc875379df6d7240a18b543d64df346948edc9ed811ab6840a285c9347c5b03eebb8adf1b5b26da8f5711cc5b9b4a34377
diff --git a/dev-python/click/click-8.3.1-r1.ebuild b/dev-python/click/click-8.3.1-r1.ebuild
new file mode 100644
index 000000000000..ef6db5f9e708
--- /dev/null
+++ b/dev-python/click/click-8.3.1-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/pallets/click
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python package for creating beautiful command line interfaces"
+HOMEPAGE="
+ https://palletsprojects.com/p/click/
+ https://github.com/pallets/click/
+ https://pypi.org/project/click/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+distutils_enable_sphinx docs \
+ '>=dev-python/docutils-0.14' \
+ dev-python/myst-parser \
+ dev-python/pallets-sphinx-themes \
+ dev-python/sphinxcontrib-log-cabinet \
+ dev-python/sphinx-tabs
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index c5bcde6906d5..ac6b1b83e791 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -1,10 +1,5 @@
-DIST coverage-7.10.6.tar.gz 823736 BLAKE2B fbe443d98426213c275b3c32c6f0457f0e7994477da9a6fe95140c6876dfb42499e95d1239dc8e7ed796b17b81b9296e7a72962bf2b322fe97a09c6b8d4c6e7d SHA512 9b53246be27e009ba8639da2fdb9c975d743da6782f1d20a9f0da3ab07f4ebf2747124f3bb75c2694685c5b7fcdd09377a4611c85819123b9cc4defcf05c1cc3
DIST coverage-7.10.7.tar.gz 827704 BLAKE2B a1361d23e192c6207a817d3cf0d6fc269292b6a5fe7c6d8ef453c554c64ba338449e75503aad912e61f34fb32046839760d1768dc13a718f625ea7748e0e8fca SHA512 3fd187c014d1eb3edd3aa91ff1946a325daa0cdec02f61d19fd8acd5bd65f8b3cb21d48a8875bce2f47543a1494b02f8d96070045a37d928c8e76d8563e776a1
-DIST coverage-7.11.0.tar.gz 811905 BLAKE2B 58ddf4598171d25363fbef08b19dfbb101d77f59bf61e7101b5c5f9f4fe71ca458d04b934ffbd1661f4e343e7b48988748a26259dfc294cd8133b918fa155af6 SHA512 35eb8239a7a32570d6d04f537ee22a0edc63f4ae621595a3404fc267919d7b468cad1398c1a7c8d320cf449dd8ddcfe03900812365e135e0839b120e142a364a
-DIST coverage-7.11.0.tar.gz.provenance 9413 BLAKE2B 8a864e66d1ec7e96b334264bcc93a394ab44c33d192b4feab14126007425793c1e3c6c018f07026604ab135422aa372c581b1672e71ba38182a1da81a8403a97 SHA512 c01b2a2fdca8ce56e0f69eaf412a006a08f22c227abf74f1c30eab8ae1d33e2cf88df63abacb44fee3cc3d4e00247e7c78814b09cfacd3b747e762e65a3288b2
-DIST coverage-7.11.1.tar.gz 814037 BLAKE2B 2abc22dbc488f9beeffa2b8dcbf83636af2fba8e274e77628e277cfc4b84074646b516e2439cb271c0e0b4e7116b4c59d222ab646cd22c6b5d064a2cdf0ee4e0 SHA512 bdedbc612faac63dbe9e0921617f512fc44a9c15c5b25b35ac0ad6efc0815096298d77e1bf5dc785c1d1fe29f2c09a206af797c3853015ef2046d7e1256b1db5
-DIST coverage-7.11.1.tar.gz.provenance 9366 BLAKE2B 0ca719dbb11fae1ce5f390aa759e465eebcbbe08837526c307b4fc01e132fec07bd6014dc9441e0002d5d1640df426c01220ea44bdf927e66acc9d269a3cd60a SHA512 84ac1dfb79c5045f0dd785e3bf0fa49205f7f0fb121e5c4ca25341badf0f997c23f18ef8194c17351797d951ad3eb08d1e7af48b0280c7ee5b1921423714180c
-DIST coverage-7.11.2.tar.gz 814849 BLAKE2B 9fa71ef6c78b4dd6ea7ef15e8aad439336dde33679b5f76429b790faf45017a779a5247c1768570fb95142237b2fb23feee13814b56e2257f3665798ff05551a SHA512 32894fd17790701d038174f90b5ed9f6cd01a0a78b4d7eb1cfe2f038707614801ed827603f05595f287c2edbab872ad2113d22a7901826ba481eeeffb5b46529
-DIST coverage-7.11.2.tar.gz.provenance 9323 BLAKE2B cd397ac0163d1a60fb4b246b98565f70083320b09dffbd6a23228fe66066810cf295cb87d476ec3fa612dcece0ccec0e9dc0e8e93529a7feef363f008a611100 SHA512 4abf5e01f0f9b2f3c20d92a384f9173361ffddfb5993ab77adcf8c96fd8aa052c1c4702b680f4531ebb9cd66c553b79a1e640e87424c771e1d434325825dc6fc
DIST coverage-7.11.3.tar.gz 815210 BLAKE2B 6d48503efb9717313c3c17f718029642cb24b3cbbb282316b192bae71b2b5ee9ad784c062b484a0b231be2d2ebb82e2f64cd3514f36508c64771ae73c284d661 SHA512 5fb8724f04a212a1a18843e9500487b54dca24aac056817c109a125a149f10c0544e7d7e89dd5d6769641f89a486fed1cc1f6fdfbab103201a58a97350fbac67
DIST coverage-7.11.3.tar.gz.provenance 9540 BLAKE2B d963e545e63cd1ff577eebc7dfc00e452b14171988e5bf74a3ffe0fde01a0da0e4857d34e6157b39e4721ac4f7d198eeabe7fb5f28603c0c92294c94c86fd629 SHA512 dad801095cf8058568e66b7a1aa8ccecd8582d4d42281d2251b4c1180b8743751298a8dd8e7108613842ea30de3ee604e5bddf3db304bf587abb8cc35bbe4f76
+DIST coverage-7.12.0.tar.gz 819341 BLAKE2B 0f3a0a333eedf3ab4af3f3765e94b3f61dbd6f87bed5e730e216535ce4e15a41034e0127730b9252a9ad9209feefdfd1b72eb218f410694d396530f8a41ceeac SHA512 eeb7228f8f834d304b168b34e29e60e7ccec820f46643785f17beae69cecea34550cf251268c5f58f7238c13ff71a495fad7ac1c790b21b8d6a4c46124d3d20c
+DIST coverage-7.12.0.tar.gz.provenance 9411 BLAKE2B d8d2374aa98f280396f83081d292ec221457c9a5a81edebcb3bb10c685addb9e4484213ac708a570c427bf0b75bd846f5a24140a0cbf99406c7a9514d108aa37 SHA512 1a4b5541597b0c0d6b98cbd45e35d45787c539e1a0e47d36d2ba740746483e12fab1bd6461c6a59e2d45faa139ad38524e8ec89e47a36eeac9f5161acc00eedf
diff --git a/dev-python/coverage/coverage-7.10.6.ebuild b/dev-python/coverage/coverage-7.10.6.ebuild
deleted file mode 100644
index f02a62e5901d..000000000000
--- a/dev-python/coverage/coverage-7.10.6.ebuild
+++ /dev/null
@@ -1,109 +0,0 @@
-# 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} )
-PYTHON_REQ_USE="threads(+),sqlite(+)"
-
-inherit distutils-r1 multiprocessing pypi
-
-DESCRIPTION="Code coverage measurement for Python"
-HOMEPAGE="
- https://coverage.readthedocs.io/en/latest/
- https://github.com/nedbat/coveragepy/
- https://pypi.org/project/coverage/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="+native-extensions"
-
-BDEPEND="
- test? (
- >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-{rerunfailures,xdist} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_compile() {
- if ! use native-extensions; then
- local -x COVERAGE_DISABLE_EXTENSION=1
- fi
-
- distutils-r1_python_compile
-}
-
-test_tracer() {
- local -x COVERAGE_CORE=${1}
- einfo " Testing with the ${COVERAGE_CORE} core ..."
- epytest -o addopts= "${@:2}" tests
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken because of pytest plugins explicity loaded
- tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
- # these expect specific availability of C extension matching
- # COVERAGE_CORE (which breaks testing pytracer on CPython)
- tests/test_cmdline.py::CmdLineStdoutTest::test_version
- tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
- # mismatch of expected concurrency in error message
- # TODO: report upstream?
- tests/test_concurrency.py::ConcurrencyTest::test_greenlet
- tests/test_concurrency.py::ConcurrencyTest::test_greenlet_simple_code
- # packaging tests, fragile to setuptools version
- tests/test_setup.py
- # looks like a difference in exit status reporting?
- # https://github.com/nedbat/coveragepy/issues/2008
- tests/test_process.py::ProcessTest::test_save_signal_usr1
- )
- local EPYTEST_IGNORE=(
- # pip these days insists on fetching build deps from Internet
- tests/test_venv.py
- )
-
- "${EPYTHON}" igor.py zip_mods || die
-
- local -x COVERAGE_TESTING=True
- # TODO: figure out why they can't be imported inside test env
- local -x COVERAGE_NO_CONTRACTS=1
-
- local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
- local xdist_args=()
- if [[ ${jobs} -gt 1 ]]; then
- # required upstream to avoid cross-test conflicts
- xdist_args+=( --dist=loadgroup )
- fi
-
- local prev_opt=$(shopt -p nullglob)
- shopt -s nullglob
- local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
- ${prev_opt}
-
- if [[ -n ${c_ext} ]]; then
- cp "${c_ext}" coverage/ || die
- test_tracer ctrace "${xdist_args[@]}"
- fi
-
- test_tracer pytrace "${xdist_args[@]}"
-
- case ${EPYTHON} in
- *3.11)
- ;;
- *)
- # available since Python 3.12
- test_tracer sysmon "${xdist_args[@]}"
- ;;
- esac
-
- if [[ -n ${c_ext} ]]; then
- rm coverage/*.so || die
- fi
-}
diff --git a/dev-python/coverage/coverage-7.11.1.ebuild b/dev-python/coverage/coverage-7.11.1.ebuild
deleted file mode 100644
index fa0e0a269ba6..000000000000
--- a/dev-python/coverage/coverage-7.11.1.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# 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
-PYPI_VERIFY_REPO=https://github.com/nedbat/coveragepy
-PYTHON_COMPAT=( python3_{10..14} )
-PYTHON_REQ_USE="threads(+),sqlite(+)"
-
-inherit distutils-r1 multiprocessing pypi
-
-DESCRIPTION="Code coverage measurement for Python"
-HOMEPAGE="
- https://coverage.readthedocs.io/en/latest/
- https://github.com/nedbat/coveragepy/
- https://pypi.org/project/coverage/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-IUSE="+native-extensions"
-
-BDEPEND="
- test? (
- >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-{rerunfailures,xdist} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_compile() {
- if ! use native-extensions; then
- local -x COVERAGE_DISABLE_EXTENSION=1
- fi
-
- distutils-r1_python_compile
-}
-
-test_tracer() {
- local -x COVERAGE_CORE=${1}
- einfo " Testing with the ${COVERAGE_CORE} core ..."
- epytest -o addopts= "${@:2}" tests
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken because of pytest plugins explicity loaded
- tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
- # these expect specific availability of C extension matching
- # COVERAGE_CORE (which breaks testing pytracer on CPython)
- tests/test_cmdline.py::CmdLineStdoutTest::test_version
- tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
- # mismatch of expected concurrency in error message
- # TODO: report upstream?
- tests/test_concurrency.py::ConcurrencyTest::test_greenlet
- tests/test_concurrency.py::ConcurrencyTest::test_greenlet_simple_code
- # packaging tests, fragile to setuptools version
- tests/test_setup.py
- # looks like a difference in exit status reporting?
- # https://github.com/nedbat/coveragepy/issues/2008
- tests/test_process.py::ProcessTest::test_save_signal_usr1
- )
- local EPYTEST_IGNORE=(
- # pip these days insists on fetching build deps from Internet
- tests/test_venv.py
- )
-
- "${EPYTHON}" igor.py zip_mods || die
-
- local -x COVERAGE_TESTING=True
- # TODO: figure out why they can't be imported inside test env
- local -x COVERAGE_NO_CONTRACTS=1
-
- local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
- local xdist_args=()
- if [[ ${jobs} -gt 1 ]]; then
- # required upstream to avoid cross-test conflicts
- xdist_args+=( --dist=loadgroup )
- fi
-
- local prev_opt=$(shopt -p nullglob)
- shopt -s nullglob
- local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
- ${prev_opt}
-
- if [[ -n ${c_ext} ]]; then
- cp "${c_ext}" coverage/ || die
- test_tracer ctrace "${xdist_args[@]}"
- fi
-
- test_tracer pytrace "${xdist_args[@]}"
-
- case ${EPYTHON} in
- *3.11)
- ;;
- *)
- # available since Python 3.12
- test_tracer sysmon "${xdist_args[@]}"
- ;;
- esac
-
- if [[ -n ${c_ext} ]]; then
- rm coverage/*.so || die
- fi
-}
diff --git a/dev-python/coverage/coverage-7.11.2.ebuild b/dev-python/coverage/coverage-7.11.2.ebuild
deleted file mode 100644
index fa0e0a269ba6..000000000000
--- a/dev-python/coverage/coverage-7.11.2.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# 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
-PYPI_VERIFY_REPO=https://github.com/nedbat/coveragepy
-PYTHON_COMPAT=( python3_{10..14} )
-PYTHON_REQ_USE="threads(+),sqlite(+)"
-
-inherit distutils-r1 multiprocessing pypi
-
-DESCRIPTION="Code coverage measurement for Python"
-HOMEPAGE="
- https://coverage.readthedocs.io/en/latest/
- https://github.com/nedbat/coveragepy/
- https://pypi.org/project/coverage/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
-IUSE="+native-extensions"
-
-BDEPEND="
- test? (
- >=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-{rerunfailures,xdist} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_compile() {
- if ! use native-extensions; then
- local -x COVERAGE_DISABLE_EXTENSION=1
- fi
-
- distutils-r1_python_compile
-}
-
-test_tracer() {
- local -x COVERAGE_CORE=${1}
- einfo " Testing with the ${COVERAGE_CORE} core ..."
- epytest -o addopts= "${@:2}" tests
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken because of pytest plugins explicity loaded
- tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
- # these expect specific availability of C extension matching
- # COVERAGE_CORE (which breaks testing pytracer on CPython)
- tests/test_cmdline.py::CmdLineStdoutTest::test_version
- tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
- # mismatch of expected concurrency in error message
- # TODO: report upstream?
- tests/test_concurrency.py::ConcurrencyTest::test_greenlet
- tests/test_concurrency.py::ConcurrencyTest::test_greenlet_simple_code
- # packaging tests, fragile to setuptools version
- tests/test_setup.py
- # looks like a difference in exit status reporting?
- # https://github.com/nedbat/coveragepy/issues/2008
- tests/test_process.py::ProcessTest::test_save_signal_usr1
- )
- local EPYTEST_IGNORE=(
- # pip these days insists on fetching build deps from Internet
- tests/test_venv.py
- )
-
- "${EPYTHON}" igor.py zip_mods || die
-
- local -x COVERAGE_TESTING=True
- # TODO: figure out why they can't be imported inside test env
- local -x COVERAGE_NO_CONTRACTS=1
-
- local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
- local xdist_args=()
- if [[ ${jobs} -gt 1 ]]; then
- # required upstream to avoid cross-test conflicts
- xdist_args+=( --dist=loadgroup )
- fi
-
- local prev_opt=$(shopt -p nullglob)
- shopt -s nullglob
- local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
- ${prev_opt}
-
- if [[ -n ${c_ext} ]]; then
- cp "${c_ext}" coverage/ || die
- test_tracer ctrace "${xdist_args[@]}"
- fi
-
- test_tracer pytrace "${xdist_args[@]}"
-
- case ${EPYTHON} in
- *3.11)
- ;;
- *)
- # available since Python 3.12
- test_tracer sysmon "${xdist_args[@]}"
- ;;
- esac
-
- if [[ -n ${c_ext} ]]; then
- rm coverage/*.so || die
- fi
-}
diff --git a/dev-python/coverage/coverage-7.11.0.ebuild b/dev-python/coverage/coverage-7.12.0.ebuild
index fa0e0a269ba6..12c17a1723c4 100644
--- a/dev-python/coverage/coverage-7.11.0.ebuild
+++ b/dev-python/coverage/coverage-7.12.0.ebuild
@@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/nedbat/coveragepy
+PYPI_VERIFY_REPO=https://github.com/coveragepy/coveragepy
PYTHON_COMPAT=( python3_{10..14} )
PYTHON_REQ_USE="threads(+),sqlite(+)"
@@ -14,7 +14,7 @@ inherit distutils-r1 multiprocessing pypi
DESCRIPTION="Code coverage measurement for Python"
HOMEPAGE="
https://coverage.readthedocs.io/en/latest/
- https://github.com/nedbat/coveragepy/
+ https://github.com/coveragepy/coveragepy/
https://pypi.org/project/coverage/
"
diff --git a/dev-python/dbus-fast/Manifest b/dev-python/dbus-fast/Manifest
index ae388549f269..a63472049d70 100644
--- a/dev-python/dbus-fast/Manifest
+++ b/dev-python/dbus-fast/Manifest
@@ -1,3 +1,5 @@
DIST dbus-fast-2.44.5.gh.tar.gz 205159 BLAKE2B 4c5529ec4255106a37df493864dca3d5be20c76ebfe019382ee3b1e1bf7248121ab4100102655530464df64eb5d04551fdf396e993782b390f7b84a62889a6a4 SHA512 5d458687db282a0974d994a262234c12287ae3b93fc6e060a302046289943f542ca3953c0cc6ab158a413159e6f3764e616d1b7d1deebaeee9897790cbd13dc5
DIST dbus-fast-2.45.0.gh.tar.gz 203980 BLAKE2B daef3011faa73508ae8903126d6fce5e53283fa0aca1df863fff131f48ef5165a8862e00981794f3c7b76d36f094d2db55c93ef56f4f09f1a584883b1a61b984 SHA512 29dea51de795d73fc6a996c1abd5fb117687e72085d9532b4a87c293db32046d8ae5dac0fd11570c97f2e511dce4472f4b4bddfcd88851506014dfc061ad1c1d
DIST dbus-fast-2.45.1.gh.tar.gz 204077 BLAKE2B 61bc1c3b5dd757939653d09381b936111cdb89e8a347cd71d301283ecaf25e783dc2c6399d2a2304adba1e46a217859b75cd35a91e229eb7d3491a84c66ec50b SHA512 74f71ba47f51eccc51f411dbcbd150935949f56f1131ce03d72366f876a8114e4ec10986cf4acab5fef3804d9abb52546ed606d91cde63ad828589d265fb0a90
+DIST dbus-fast-2.46.4.gh.tar.gz 204626 BLAKE2B c3bc5df698089d40a72d280264fa887a7901d85b2f9f513e3157afdd3e090ba0d54ec81406287bfb3e7381af792a348c6487b8f3c0cbdcb8d0c0afe4be13b613 SHA512 bb79ce15d37f30edad6b19fc6f98c8f6dde2b975b8fa203a5d43d675f98d34f3ca216ad62cf139518c1810626b25426fa8b123e5c4d145124c5380af7953f953
+DIST dbus-fast-3.1.2.gh.tar.gz 205618 BLAKE2B 83d92eaa8477849238d5fd814a73c223a43adfcfa8752ac287c8f6cc9116e804a3300fc25ebb9cccbbb51c0db3c1495328822666ff1fdf993ac87758b7be21ad SHA512 d897a2612dfedb07005f212e48c6eaf7271b58145d690a0fbe66d1a39085739ccf626c6155aebae9f96ce9e9136fc496d6d3ba806813acc1f3023b1e4e924897
diff --git a/dev-python/dbus-fast/dbus-fast-2.46.4.ebuild b/dev-python/dbus-fast/dbus-fast-2.46.4.ebuild
new file mode 100644
index 000000000000..ba125778e5e9
--- /dev/null
+++ b/dev-python/dbus-fast/dbus-fast-2.46.4.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=poetry
+# TODO: freethreading compatible
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="A faster version of dbus-next"
+HOMEPAGE="
+ https://github.com/bluetooth-devices/dbus-fast/
+ https://pypi.org/project/dbus-fast/
+"
+SRC_URI="
+ https://github.com/Bluetooth-Devices/dbus-fast/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+
+BDEPEND="
+ >=dev-python/cython-3[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-65.4.1[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/pycairo-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-3.50[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
+distutils_enable_tests pytest
+
+export REQUIRE_CYTHON=1
+
+src_test() {
+ local dbus_params=(
+ $(dbus-daemon --session --print-address --fork --print-pid)
+ )
+ local -x DBUS_SESSION_BUS_ADDRESS=${dbus_params[0]}
+
+ virtx distutils-r1_src_test
+
+ kill "${dbus_params[1]}" || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # interface not found on this object: org.freedesktop.DBus.Debug.Stats
+ tests/client/test_signals.py::test_signals
+ )
+ local EPYTEST_IGNORE=(
+ tests/benchmarks
+ )
+
+ nonfatal epytest -o addopts= || die
+}
diff --git a/dev-python/dbus-fast/dbus-fast-3.1.2.ebuild b/dev-python/dbus-fast/dbus-fast-3.1.2.ebuild
new file mode 100644
index 000000000000..ba125778e5e9
--- /dev/null
+++ b/dev-python/dbus-fast/dbus-fast-3.1.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=poetry
+# TODO: freethreading compatible
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="A faster version of dbus-next"
+HOMEPAGE="
+ https://github.com/bluetooth-devices/dbus-fast/
+ https://pypi.org/project/dbus-fast/
+"
+SRC_URI="
+ https://github.com/Bluetooth-Devices/dbus-fast/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+
+BDEPEND="
+ >=dev-python/cython-3[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-65.4.1[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/pycairo-1.21.0[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-3.50[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
+distutils_enable_tests pytest
+
+export REQUIRE_CYTHON=1
+
+src_test() {
+ local dbus_params=(
+ $(dbus-daemon --session --print-address --fork --print-pid)
+ )
+ local -x DBUS_SESSION_BUS_ADDRESS=${dbus_params[0]}
+
+ virtx distutils-r1_src_test
+
+ kill "${dbus_params[1]}" || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # interface not found on this object: org.freedesktop.DBus.Debug.Stats
+ tests/client/test_signals.py::test_signals
+ )
+ local EPYTEST_IGNORE=(
+ tests/benchmarks
+ )
+
+ nonfatal epytest -o addopts= || die
+}
diff --git a/dev-python/dirty-equals/Manifest b/dev-python/dirty-equals/Manifest
index 5aef339f981b..d4e04fbd6387 100644
--- a/dev-python/dirty-equals/Manifest
+++ b/dev-python/dirty-equals/Manifest
@@ -1,2 +1,2 @@
DIST dirty-equals-0.10.0.gh.tar.gz 126610 BLAKE2B ebf748b627407973d259a9c85e754adb05c79af27eb871f722c0d14ff90c9c9fe257e2d7a46649f884326feecff3e3fa855ea380381eb59de4a31b092f828403 SHA512 c84d14e2399da273e48c6f125ea1fc9caf5824845106a88ba95c0d8e836bacb54b8113959d346a914ca344609ee58150839405ac1ec2f6a187e2f29b8601a4cb
-DIST dirty-equals-0.9.0.gh.tar.gz 50607 BLAKE2B ec569a818b067a9162d8efefffc9cfae7a7a3ee7ebf1e3659334d4123644046d5195849a9bde0c93f29d23e32657eae2bf692376a6928a8e82044b5fe54a530d SHA512 5e0a3f465c1a0bc70292ab013e5622afdfa1150e3315cfde7cc6dfb458000cc925a9ec6c54fb93bfe287b2c497dbbadc6ebe8e100819e537c7e6769a7ce61776
+DIST dirty-equals-0.11.0.gh.tar.gz 129113 BLAKE2B cf1c644c257a9f7ed93e297b2e2b4f868d9b7d62697cd76aefb8f21684333932ac06bb23dec18a604934312c362b7bbc8117aff96cc50c492ae393d24b751f02 SHA512 eb4e8725305dbe60b76171d7c4ad4c11ccf9d882e8b4adab7fd9937e580abae512e83e8f0691935c483e727b60c2f8d4881e03e15e74376c52556817f5db83b5
diff --git a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
index bac4d84579d8..3327865bbaa0 100644
--- a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild
+++ b/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=hatchling
-PYTHON_FULLY_TESTED=( python3_{10..13} pypy3_11 pypy3 )
+PYTHON_FULLY_TESTED=( python3_{11..14} pypy3_11 )
PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" )
inherit distutils-r1
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
test? (
@@ -30,11 +30,11 @@ BDEPEND="
$(python_gen_cond_dep '
>=dev-python/pydantic-2.4.2[${PYTHON_USEDEP}]
' "${PYTHON_FULLY_TESTED[@]}")
- dev-python/pytest-mock[${PYTHON_USEDEP}]
>=dev-python/pytz-2021.3[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGINS=( pytest-mock )
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/executing/executing-2.2.1.ebuild b/dev-python/executing/executing-2.2.1.ebuild
index 45be3e7f1997..00ebc1e5ef8d 100644
--- a/dev-python/executing/executing-2.2.1.ebuild
+++ b/dev-python/executing/executing-2.2.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/eyed3/Manifest b/dev-python/eyed3/Manifest
index 79a1c9f011d7..d210f8aeab4f 100644
--- a/dev-python/eyed3/Manifest
+++ b/dev-python/eyed3/Manifest
@@ -1,2 +1,3 @@
DIST eyeD3-0.9.8.gh.tar.gz 254963 BLAKE2B 54b3b67b8f80889b573bdcdf55fb45408d5608305b3696c2a1c86744a45fed73fafac79c9496cf54a7dff53b79776ca74429193b285e5242b4fbe6a673748efa SHA512 369a5c3e434a7f1f546572ef7ddc28e72167c86a99c99d3bebf7ebc57f630a942f87530faee4868c6b75e92a27db3fd6a9764223df18aa32e8bbf5278e68aea2
+DIST eyeD3-0.9.9.gh.tar.gz 258527 BLAKE2B 5f3218dcc678e4647f579b99fa2cb3f21d5c544f5dce55394f835e862841911de4c820bcfe933af0c3c84b1ba29b2ee28a6689b4c22da6e5e661d024c3434565 SHA512 e77973c3a2c4f8b2276039a66aff2a16e3c47d18152ce68539afd5475440f1fd44b43ba154a9a63c506bfdb7e7da372aa9df07a53eb61b3593058f084d7d8c27
DIST eyeD3-test-data-r1.tgz 97336666 BLAKE2B e982f21ba29aaca15c6975a836bed322d5203bca57b93ab0c9343de13259d9e2f56b98e5e7402ccf9138a9dc79951e68c4b37cd2c891d2c9e94815256d49adc4 SHA512 4e6daca06380492c0048f1ffd94d92e511fc3695b3e5f64f805d3f3aa2d0fef05a3be1d67a459fb13ab6d9861b86146487f31321f979c464fc516047b66735ab
diff --git a/dev-python/eyed3/eyed3-0.9.9.ebuild b/dev-python/eyed3/eyed3-0.9.9.ebuild
new file mode 100644
index 000000000000..26d2c38757c7
--- /dev/null
+++ b/dev-python/eyed3/eyed3-0.9.9.ebuild
@@ -0,0 +1,60 @@
+# 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
+
+MY_P=eyeD3-${PV}
+DESCRIPTION="Module for manipulating ID3 (v1 + v2) tags in Python"
+HOMEPAGE="
+ https://eyed3.nicfit.net/
+ https://github.com/nicfit/eyeD3/
+ https://pypi.org/project/eyeD3/
+"
+SRC_URI="
+ https://github.com/nicfit/eyeD3/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+ test? (
+ https://eyed3.nicfit.net/releases/eyeD3-test-data.tgz
+ -> eyeD3-test-data-r1.tgz
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-3+"
+SLOT="0.7"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/deprecation-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/filetype-1.2.0[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+# note: most of the deps are optional runtime deps / plugin deps
+BDEPEND="
+ test? (
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pylast[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # unpackaged deps
+ tests/test_factory.py
+)
+
+src_prepare() {
+ if use test; then
+ mv "${WORKDIR}"/eyeD3-test-data tests/data || die
+ fi
+
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/hishel/Manifest b/dev-python/hishel/Manifest
index 69b7ec92a133..b7ddcff15881 100644
--- a/dev-python/hishel/Manifest
+++ b/dev-python/hishel/Manifest
@@ -1,3 +1,4 @@
DIST hishel-0.1.5.gh.tar.gz 1065622 BLAKE2B 926801f579a57cc2b45cb6cd5326459493452d34b32a2725b906307dcc4575b1297b35ffc626e51acc5805216731552d58c672dedb0541f2c771f153daee960d SHA512 b1f850895b147da616ace381d98ac9b6a15386d7e79d64a57a4e87f9bd0b42009a6ffa15fe1f8e46c57f8bc664c3af97d46e5adb81211e30fae87dab898f7734
DIST hishel-1.1.4.gh.tar.gz 1097778 BLAKE2B 0e2569a0e3c956d3df498f8b3ce5da267a584b0c452541ebeb7d43cc8433ab9d929594ff2487394effeac00dec27bc2c8be48ef4e6cb64cfaf28bc5c0b2d6e4e SHA512 ff52c048edaef0fa50f2c38371e33128ec8f1ae1682d78de49c1a48ee7cec82cc21ba9e4ef82cb349fd6e95c032d60cea5ce4b01cc8dcb6e0e4ecfd08fb4bfdc
DIST hishel-1.1.5.gh.tar.gz 1098331 BLAKE2B 5b3b9fc3770842bc1323c0ca46718d9ce82265dc11321f3f9335aa69fa1f6a78384125139a249af3b268d9035d213b4dc3f09532b0a06158c1986746285a2757 SHA512 47de167f3e24a7db05cbcb1b8d549b0abf9fe4d39829a0a41ab7f86f71697ac4ea78c32ad3901d5edca5e520fd1862e47ab79dd0ce635abe37224ff0ad37869e
+DIST hishel-1.1.6.gh.tar.gz 1098160 BLAKE2B a02509ba9516e9b1125c6f40d2eeadcc79932586ff60d709050eb6123422fb77584dd7aa8749c4efa9f434323d1e3d916bbc80cbddcd089628ce5ceaf2e70272 SHA512 56c330ccc47f5eced158b00a972508a5f9c14ec09c8263297e12c57de9f105ea200807988f36607d2b21500eeb7d0389069e55c77f258d62550ed1ed6af8aa11
diff --git a/dev-python/hishel/hishel-1.1.6.ebuild b/dev-python/hishel/hishel-1.1.6.ebuild
new file mode 100644
index 000000000000..f11ce5dc514c
--- /dev/null
+++ b/dev-python/hishel/hishel-1.1.6.ebuild
@@ -0,0 +1,73 @@
+# Copyright 2024-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
+
+DESCRIPTION="An elegant HTTP Cache implementation for HTTPX and HTTP Core"
+HOMEPAGE="
+ https://github.com/karpetrosyan/hishel/
+ https://pypi.org/project/hishel/
+"
+SRC_URI="
+ https://github.com/karpetrosyan/${PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/anyio-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/anysqlite-0.0.5[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-1.14.1[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ ${RDEPEND}
+ dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
+ test? (
+ dev-db/redis
+ >=dev-python/boto3-1.15.3[${PYTHON_USEDEP}]
+ >=dev-python/inline-snapshot-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/redis-6.2.0[${PYTHON_USEDEP}]
+ >=dev-python/time-machine-2.19.0[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.30.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio )
+distutils_enable_tests pytest
+
+src_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_async_httpx.py
+ tests/test_requests.py
+ tests/test_sync_httpx.py
+ )
+
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+
+ einfo "Starting Redis"
+ "${EPREFIX}"/usr/sbin/redis-server - <<- EOF
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1 ::1
+ EOF
+
+ # Run the tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 5d5b3cc20d42..26ad5a637517 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -3,3 +3,5 @@ DIST hypothesis-6.142.5.gh.tar.gz 9625137 BLAKE2B 2a0146541b95710419c5ede4288a39
DIST hypothesis-6.145.1.gh.tar.gz 9636827 BLAKE2B e39544074d83b33b6e04eb26319d20dd48e4196f216c782149fdf9e2bd869b5f29aa97b3606a5235bcf41dc0a98db05966c6e542a64ab5a63470038f9eca02fd SHA512 3af66ecac9217a11dccba070f16af610e0ca0216d802ae298d9a5ded6c62546b70d260d7fd191785b84f106ff9786af2dbda400e30bd4fb5caa05ef6a0fd65ee
DIST hypothesis-6.147.0.gh.tar.gz 9637937 BLAKE2B ee245790ce248a43dd6a25148b9adc40278bbdcedf169820a1047ef0a12707ab90083b285e952ecde2397e5ec313314b7dcd9b8939bbbefdc113509f27db09d9 SHA512 6c5da0c2ceec1110b1f310f9cb0d13ec9e0397ff2cdc53cc47e9e3d7147b2153cd1fbff870ca63589d08f20bb6f7f30a3a73c402312d202974f0ec08a6612918
DIST hypothesis-6.148.0.gh.tar.gz 9637659 BLAKE2B 49f4a793181e308b5a4c8b134b7b222d42162e1dca0c424ab30a82a061e479028703237e550ea491e3a2ba10610f2c4e248b618527e554b82d95d442f98abced SHA512 169ca9a09c0a3752768cbbd48f8bb444382895f066e0f26c6f64df64dd957e8a5e3a4ef79c33bfc2643908b96159f212661dab7f04e2380a85a82330aaf139e1
+DIST hypothesis-6.148.1.gh.tar.gz 9637657 BLAKE2B 4a933b39815f8d003c97848f95ae40b66b1c80457fb87978e431ef8da89a355c7460aba4e443dc8e4261068215503f00cce8ee6d9cf381144fdabd1a0e9e398b SHA512 d5bf5de8a8b015b2704a1e08ea694d33bacd69d2ca91f63ff33df1f8ae2edc2bac10d20926a787a728d518fd4dc2b7b9cffff3d34d7aba856a8ee33b0f3d595c
+DIST hypothesis-6.148.2.gh.tar.gz 9643732 BLAKE2B a8804651d2f07c1ac514f74316caed430c964d543d523ab0b4422c72c06e0709b9aa0267d431c4a2a0406020c2d6604f4448e638ea5b66e76cb3b9117c8fed06 SHA512 bbf60e86e1cf44d30dfd5b853a3079e549b52418f21087f6cedb9cba86a95b706ab6e22d7741c503bd63d80e0f6f973c085d21040b083059e29af5fb14aed3f9
diff --git a/dev-python/hypothesis/hypothesis-6.148.1.ebuild b/dev-python/hypothesis/hypothesis-6.148.1.ebuild
new file mode 100644
index 000000000000..3239d4fba180
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.148.1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/hypothesis/hypothesis-6.148.2.ebuild b/dev-python/hypothesis/hypothesis-6.148.2.ebuild
new file mode 100644
index 000000000000..3239d4fba180
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.148.2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/jupyterlab/Manifest b/dev-python/jupyterlab/Manifest
index 565d1c03cfb5..94ce812be143 100644
--- a/dev-python/jupyterlab/Manifest
+++ b/dev-python/jupyterlab/Manifest
@@ -1,5 +1,4 @@
DIST jupyterlab-4.3.7.tar.gz 21827544 BLAKE2B 6aa1886b3fa9e67c8e4978e90cf5b0e84466de15ad5dfa90c07913e1141b5c24b755f9374b34b9b9bcbd6f712f3d58b72d259e969c91263859ff7e16358a296b SHA512 57301337c8ebfc22b6ad8c09468b2f2642785967f20b74060e5ee50b0a3e1eb778f92d8179535dde5564c56b34102d096c4eee05f3fd3c6f6edbcf830f2765ed
DIST jupyterlab-4.4.10.tar.gz 22969303 BLAKE2B 478b424ff65b4f88ee849f0e87cebf30a1a95d7da390e3179f0675c4d37cb6cc80aef0262e2e4ca09fecda71a76c6d92ed99a6b52337ff2ab22cc010122513a4 SHA512 fbdd4429ddc5c14f0085d3dc4a9cd1f93c8db3b438e62c7e653fb605819ec97f41aba182c48a54f25f5ed53d36a9137522e7901a2b36349596c8f03beeefe351
-DIST jupyterlab-4.4.7.tar.gz 22965570 BLAKE2B e1e2f3dd7fdcfa85525e76bd55965bc9d9ddb482df536c0f9fdd7d1ba189c37956561464b22ab2d95ddacdbd2a5f8cc365d8fc838d19444abb50e7ec8cf1a740 SHA512 2062b72b2a9610bc002a6e5099c3441f3d13af841c2cbabc5e931e0a4b8bafead812cf29982dc4d9f8e4a58302d42fe7c90e96cd7fab776568c1d62cb0f6883d
-DIST jupyterlab-4.4.8.tar.gz 22967507 BLAKE2B 86a79c2ac95a5d037c232b6d97d03d0c5f4a32ae762af11bac31e49a2140ba0e0967f92cd7e5d7e116e8d35ec2144a2e9dce8a04c0d25aa7882794ef0579c1f8 SHA512 3752b7bfc2a9b289cb0577b5b472055835aee83ed214e32445cd48d77a0d34d12bfce1fc2513e909e5fc573f934edd87c1b8775a4ce94dc03e1ad25550673980
DIST jupyterlab-4.4.9.tar.gz 22966654 BLAKE2B 9861da955decd362e983d3f1652837d8164d79656ece03c702c06044cfb566a6edc3fce1fe25270075369ef6a80fde2275e30370472eb1f362b93e6ccc093b60 SHA512 06b47a3b917bfb8e809bc9fa1ae57dddab001aac8a17da454f56f8ce23777ec71b345b4c439a9cc690bea58132a95339445ba6c6fe0e8520dc4f575fdae0a754
+DIST jupyterlab-4.5.0.tar.gz 23989880 BLAKE2B cef16c40f378421d5eaed820899ffdaa0c57f4bbf6ed730b31b2d0665afa998d2610375e06964b03f222504c09e2d1ed29ab26d953c88205bda0fb85dd49bd93 SHA512 403682e27065eb3512d3ade7579ca42551d36007af94b9e063672a52cf1e0202439888a42414363019ae9b359282466f05627f635a8140c40fc152a0123d3a68
diff --git a/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild b/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild
deleted file mode 100644
index 9c02dd7628ed..000000000000
--- a/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild
+++ /dev/null
@@ -1,75 +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 xdg
-
-DESCRIPTION="JupyterLab computational environment"
-HOMEPAGE="
- https://jupyter.org/
- https://github.com/jupyterlab/jupyterlab/
- https://pypi.org/project/jupyterlab/
-"
-
-LICENSE="BSD MIT GPL-3 Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
- >=dev-python/ipykernel-6.5.0[${PYTHON_USEDEP}]
- >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
- dev-python/jupyter-core[${PYTHON_USEDEP}]
- >=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
- <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
- >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
- <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
- >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- >=dev-python/setuptools-41.1.0[${PYTHON_USEDEP}]
- >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
- dev-python/traitlets[${PYTHON_USEDEP}]
- net-libs/nodejs[npm]
-"
-
-BDEPEND="
- dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
- test? (
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/requests-cache[${PYTHON_USEDEP}]
- dev-python/virtualenv[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_DESELECT=(
- # These tests call npm and want internet
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_uninstall_core_extension
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned_folder
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom_minimal_core_config
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_check
- jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build
- jupyterlab/tests/test_build_api.py::TestBuildAPI::test_clear
- jupyterlab/tests/test_build_api.py::TestBuildAPI::test_build
-)
-
-EPYTEST_IGNORE=(
- jupyterlab/tests/test_announcements.py
-)
-
-EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,tornasync,timeout} )
-distutils_enable_tests pytest
-# TODO: package sphinx_copybutton
-#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
-
-python_install_all() {
- distutils-r1_python_install_all
- mv "${ED}/usr/etc" "${ED}/etc" || die
-}
diff --git a/dev-python/jupyterlab/jupyterlab-4.4.8.ebuild b/dev-python/jupyterlab/jupyterlab-4.5.0.ebuild
index b77ca22b08ca..d7d48c30e886 100644
--- a/dev-python/jupyterlab/jupyterlab-4.4.8.ebuild
+++ b/dev-python/jupyterlab/jupyterlab-4.5.0.ebuild
@@ -28,7 +28,7 @@ RDEPEND="
>=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
>=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
<dev-python/jupyter-server-3[${PYTHON_USEDEP}]
- >=dev-python/jupyterlab-server-2.27.1[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.28.0[${PYTHON_USEDEP}]
<dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
>=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
dev-python/packaging[${PYTHON_USEDEP}]
@@ -65,6 +65,7 @@ EPYTEST_IGNORE=(
)
EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,tornasync,timeout} )
+EPYTEST_XDIST=1
distutils_enable_tests pytest
# TODO: package sphinx_copybutton
#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
diff --git a/dev-python/keyring/Manifest b/dev-python/keyring/Manifest
index e3196dc56f2c..9ddf727abb89 100644
--- a/dev-python/keyring/Manifest
+++ b/dev-python/keyring/Manifest
@@ -1 +1,2 @@
DIST keyring-25.6.0.tar.gz 62750 BLAKE2B b6c5f30308a168e690caf43e566c98ac7a755253cb961e2c0be5bf3591c6b59b43ace1a5fe7050d20a439cfc0c579f5f5a1ae52ab007d89f45e3f957bceae77c SHA512 192863cd36d597ae55c8e3e8ae909388f64894c812db6dd80c92bb7c8467029b54976f855807cf6f245419599d191113c9b12e272631bb6e4f6cf6e122296421
+DIST keyring-25.7.0.tar.gz 63516 BLAKE2B eee3fdc919fb0d403c92653b62a644d15ddf3473debb86c577cd6819e32d2cdce60767e2f4af4664efc606f55a07081c5b470333673d906fb938dcc768461ae0 SHA512 24471413c4980c2bde3b4d1e4f8e4e196656f8898882cd5f9f3b3e088561ee4a365a54556c243bc1d0be5e85438113545ff6809791dbe3ed38998984e00227a5
diff --git a/dev-python/keyring/keyring-25.7.0.ebuild b/dev-python/keyring/keyring-25.7.0.ebuild
new file mode 100644
index 000000000000..93d0caef3a07
--- /dev/null
+++ b/dev-python/keyring/keyring-25.7.0.ebuild
@@ -0,0 +1,52 @@
+# 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="Provides access to the system keyring service"
+HOMEPAGE="
+ https://github.com/jaraco/keyring/
+ https://pypi.org/project/keyring/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ >=dev-python/secretstorage-3.2[${PYTHON_USEDEP}]
+ dev-python/jaraco-classes[${PYTHON_USEDEP}]
+ dev-python/jaraco-context[${PYTHON_USEDEP}]
+ dev-python/jaraco-functools[${PYTHON_USEDEP}]
+ >=dev-python/jeepney-0.4.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/importlib-metadata-4.11.4[${PYTHON_USEDEP}]
+ ' 3.11)
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pyfakefs )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # this test fails if importlib-metadata returns more than one
+ # entry, i.e. when keyring is installed already
+ tests/test_packaging.py::test_entry_point
+ )
+ local EPYTEST_IGNORE=(
+ # apparently does not unlock the keyring properly
+ tests/backends/test_libsecret.py
+ # hangs
+ tests/backends/test_kwallet.py
+ )
+
+ epytest -o addopts=
+}
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/mapbox-earcut/Manifest b/dev-python/mapbox-earcut/Manifest
index d8933e4eaec2..542548bb891d 100644
--- a/dev-python/mapbox-earcut/Manifest
+++ b/dev-python/mapbox-earcut/Manifest
@@ -1 +1,2 @@
DIST mapbox_earcut_python-1.0.3.gh.tar.gz 22851 BLAKE2B d46e199691f123eb3265036596a4b910f653c06c748d8ba280dcf7c1262f8dc73d5f3f56299a0925d3516a4845c924fce4083f12658a68a1a039c02c635b9fe7 SHA512 3700a25de44e73edd762b5cfa0c43fa73ebbf95f811694bfc8bb77f07dc9512c3fb814b409b5ea88c9e1a32cc5272f3ae33c1e4e323afe8b139cf8b96f1edc54
+DIST mapbox_earcut_python-2.0.0.gh.tar.gz 38939 BLAKE2B 625555d1b466bb433c9e7fa8c1c5205b3cecc47ffab5cc9af11bb4187df19599c7551a3572802fb49694c143cf7f1b6f7c0b192a30e0d56921ed5ae9867851f5 SHA512 e673b89e16a2007085e6e036b32867bdcdf984b3dec3bf93182ad352b36d6bf3ae4f750de136a9833b3328241fdf725b4f11c4981f9334a9a27e1b4077af1cea
diff --git a/dev-python/mapbox-earcut/mapbox-earcut-2.0.0.ebuild b/dev-python/mapbox-earcut/mapbox-earcut-2.0.0.ebuild
new file mode 100644
index 000000000000..e60e94e0e99c
--- /dev/null
+++ b/dev-python/mapbox-earcut/mapbox-earcut-2.0.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=scikit-build-core
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P="mapbox_earcut_python-${PV}"
+DESCRIPTION="Python bindings to the mapbox earcut C++ library"
+HOMEPAGE="
+ https://github.com/skogler/mapbox_earcut_python/
+ https://pypi.org/project/mapbox-earcut/
+"
+SRC_URI="
+ https://github.com/skogler/mapbox_earcut_python/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND="
+ dev-python/numpy:=[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-python/nanobind-2.9.2[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+DOCS=( CHANGELOG.md README.md )
+
+python_test() {
+ rm -rf mapbox_earcut || die
+ epytest
+}
diff --git a/dev-python/ml-dtypes/Manifest b/dev-python/ml-dtypes/Manifest
index db0cc6e39fd3..40fb0005c02c 100644
--- a/dev-python/ml-dtypes/Manifest
+++ b/dev-python/ml-dtypes/Manifest
@@ -1,3 +1,3 @@
DIST eigen-7bf2968fed5f246c0589e1111004cb420fcd7c71.tar.bz2 2239233 BLAKE2B 3a7e81c302cb11ae1d6ef9433a9ec41506c1f37d04cfb8744ac3fcf7dbe9430c1b48d7197ca3b8e1f9354398bac3d0dbc3e0599c0b649acd6175e906befe2973 SHA512 29ee89770726e6e0f5135b7fab24649f3e69223caed90d2daa6f0014783e69fe98f0551de49bd4e393d7b7938f2943caf1ed00f3933fa771ac14fae3c63fd5dd
-DIST ml_dtypes-0.5.1.gh.tar.gz 86384 BLAKE2B 1989df40221262784983732067946bc1ac51c44db27e54d30471884508f080403107c811d33940b2de27a1cea5d5928bebdfc96b987c36d71b7f8f81f68c4615 SHA512 d0fab3492ad9f8caeec665c026baca9eca7a15fcb032267ff57d9c9b6eccb852e6659b4f7bd25f64b50974b5a93f5be9ec68ab1746ede286f22d60c13a7d2d4c
DIST ml_dtypes-0.5.3.gh.tar.gz 87116 BLAKE2B 85500d3756aa98f9f746bada8932712c00fffc267358d0350ff7f79d79897858485320e998a4b17fa1d26eee0d8e8d26a09105670941dc5629a71f71dc384271 SHA512 7f1e036201e12349710ae9a9825cd575383b72052a7ebabe26a96952ea0f0be9d4e47a928e454644681a5ec5df88d3142e31602f3146ce5eebbe4bdbe9670ae7
+DIST ml_dtypes-0.5.4.gh.tar.gz 88210 BLAKE2B 2f2695105a597e33ca6ec1b622f1d50d6ba027938c5e8d4139790e5f5d38a234b6a2e9f10331909348e66c58c9e172f9e48afc54100aea9c9160a0152485fe94 SHA512 585641b2d4d9ff7b134310ac38484989d85efd3f303cc99fa71b2b693c710f435d4245bb64239b79f823da647e71f477be89d3141fa6aeb775262ea13a4f1bf7
diff --git a/dev-python/ml-dtypes/ml-dtypes-0.5.1.ebuild b/dev-python/ml-dtypes/ml-dtypes-0.5.4.ebuild
index 67e974bbe4bb..ffb2cd346bb1 100644
--- a/dev-python/ml-dtypes/ml-dtypes-0.5.1.ebuild
+++ b/dev-python/ml-dtypes/ml-dtypes-0.5.4.ebuild
@@ -26,7 +26,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
DEPEND="
>=dev-python/numpy-1.21:=[${PYTHON_USEDEP}]
@@ -41,6 +41,7 @@ BDEPEND="
)
"
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_prepare_all() {
@@ -53,6 +54,5 @@ src_test() {
mv ml_dtypes/tests . || die
rm -r ml_dtypes || die
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
distutils-r1_src_test
}
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index 5b77329cb0bb..4cfaa218349b 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -1,8 +1,4 @@
DIST moto-4.2.14.tar.gz 4933741 BLAKE2B 4c50a808dc8f27cfbcd0ba234d268084ee9a32f36cb5d6af61aacc4ee79f7bf5cf1045147c4642472129eee37bef8bc2c1953d140260d39d7f333ae0f5e5cf95 SHA512 d4079118ed1d2eef9134575e33dc0ed749bff0293d753baa63a630dbb987914b9933445027abdc344bb93fa1d6e483baf8a337a444c9dd055dda50b095ff9937
-DIST moto-5.1.10.tar.gz 7087004 BLAKE2B f00161e7df7540c9ff569d8833a4d97d6b702b2209e0ea4550dec05135c215c09c38e907fa93ea202597f3ee7272619cbe0c987fba028d4240d4be1195acab43 SHA512 3d4faefa2b23cebe44be1a43f8993a3cb254e976d65b6cc1fe8fbc3239d41d252504ec166c17283ff1067937de5b6220810dee714d9c3071e12ee216c3211bff
-DIST moto-5.1.11.tar.gz 7111584 BLAKE2B 1a44247a2611bdf26f08b48ca4f804a405148be78750394c79af6b984ced5a659da5f63da1a1d0a5cb200e15e895e2e2a63829a6c908d0ceb9b9e4b0db8a4286 SHA512 5d790c43ec55e0d3b55a69b8763f3c23154cbf7d1fa7bbb870ecbce4fe2062c69221881852303688a9a30d8decc619f5de8f5cd8aef780e258597e5ba3edd622
-DIST moto-5.1.12.tar.gz 7185928 BLAKE2B 1215c369631eb4a43aa499de70b17b8eda78743d54d68561b4db18a55a0be5bb71927df31ac18a54aa898faafc6a380fe45765461663cdc65b49d11ca94bf86c SHA512 e0992ca2af9c298f3b31917eda58b83b2a7ba8141ac9c2b440a506525ffd53431fb69290897d358f2d70a57d6cdf82a88966d1872fdc555f0cd6e62ffd683b74
-DIST moto-5.1.12.tar.gz.provenance 9568 BLAKE2B 39d6211c37523ee438679ac0f2ad94fabda5afbd54a4667d234acd95fdce76c0de8198b5993ff451b84d35ebed63281751a9d3dbd704251fc4828d1381f171a0 SHA512 ddfcdebe272d6b74108aabfc80c78375cbbe565258a8d8583bd2a554d27261bf3718919d01592a5566c45fad12a001e5cff8c90f4f169fc2a7c049e3bef4c9ec
DIST moto-5.1.13.tar.gz 7194360 BLAKE2B 464a4997defae7386611c29eb46a3fff48e2d27ae2e22dd65f5d5788c746b193df804ee16b4628536691539b3e020de8a9d736d77c92eb9de2e1bd7907a56234 SHA512 b2befd6e407432551c99083f43d19bf4ae633d5dfa2198a98c9d093b2bd50fee4182903362f79943774058f63e43d75337219b2b6ff33152a125d8fb11aa5363
DIST moto-5.1.13.tar.gz.provenance 9380 BLAKE2B 79e4254b116e18d5f568027edf26a0f716d7b3f4dc5294f9cc8d379600eff518c204fa4d402191b9a99dc6f94a97a0afa14a7e2741a8790b1e7b78aa575c18a8 SHA512 8776bd8698f27e823b84fbd77be42eb4f43cf7beec96847c26066bcf4a362306568cf7688d3d680df17e5e5c4a4550d8b64994dacca8a70e1a7c2f84c3c81b62
DIST moto-5.1.14.tar.gz 7264025 BLAKE2B cca4fd06070ee6db7306f3f95a2fd785b53f0f7f499d15bd53cc946c5cda83ebb96bd2baf56728abcc16f3dc7806d12b38388631f6c60ba6d21d4566e2530b99 SHA512 1f59cc49a3a5e12b130b37791a9ce2141134eac54c3b16d910099b7784ce6677ca9607eca4299a641555b3284166cd5588c81ebc17a95bd65dc3b90a57b95d07
@@ -11,5 +7,5 @@ DIST moto-5.1.15.tar.gz 7288767 BLAKE2B 5f03a939de3dea4e635cc2c8ca35c7ab30b20d7e
DIST moto-5.1.15.tar.gz.provenance 9286 BLAKE2B d64df561eba343899b85957544cfe6aae3e5fe19aacc97e9a6926293349f781e5a9321602370aa7986cb9a82ffaedadb250cbdcfbded8cd4b746d818a6d81508 SHA512 addc927ed1f14ffb26c8cce64710c9a65e9f54e49fd054a7d6a178874cff5755ec33ce4c9adf1987eae17a408dcdb95716da307bf0dab9c13b9f3e9ddb794409
DIST moto-5.1.16.tar.gz 8229581 BLAKE2B fdeb2328cf56d40066a255324f60e7eeefe56d043ecdbfb30100f4ca71ce6bbf58cec9157015b385c1f583f365c32792adc41a2df4b9d75faffaea40cd2c812f SHA512 abc63a2de627a0820a1a18de20fa20e4b7e090552fb92016fadc5d9db64250bb4dcba1966eae4812b704d1db867384c389358a87eb32418b4269b340e0308194
DIST moto-5.1.16.tar.gz.provenance 9051 BLAKE2B 48ea31f04f0d0404ab12ef34d26fa7de30db57946dc278518c61dcf89da58cc496de58af6efb99b1c118bfb7cbf43e83dc742814e5931f698982303859f73a35 SHA512 44cb8ccb1340d095f93d3f9d02ca72b0b83a0970d97dcf20261be7fe1f996b01cfc55de8218d92ba55b7f9a5630daf38791622bfee1f1065099689a755f22dfa
-DIST moto-5.1.8.tar.gz 7039961 BLAKE2B be2231a13036e2a5c925c7435ebce3adeea6ac03d9806d010d1c067b4e2d008f642a234fb80e082e5053332c6580d130f232ebe0b83d59c55977ea3a38364914 SHA512 fb8ad9ba2ac94a86261e2862d87d9ea632d2275c6cccf7d248ac95db96f615109add8803bf118625c828c7a2615fc6f20bcf682de1e4398f69add5eeb9fe8114
-DIST moto-5.1.9.tar.gz 7041662 BLAKE2B 8121c2022e5af70e71b6d4855ca7f964234ef06f14f8b08e80bd3676c26f6e9a06e8f469e610bcf2882b5468d613a17c3108aff3c344c12dc8331a9f9582b87b SHA512 986d41cc9fa875b5ee51723fdd7669b528dacb6136b6ebb3fa72d4efb3bb89f1fbc44aaa06aa154b80d44c87bca2d93cce30ee32c1ab7c3e8d622b53e011167d
+DIST moto-5.1.17.tar.gz 8250034 BLAKE2B 4b68e76621d4c944086efcb22006d4c180277ec538536b22a85ab689580835e756c4ebb5d8b6496f7dacde696ae2eaca10a731a0f3219ca7b9e9c2bf6f1b5c70 SHA512 af90dff12063ebc6f67f78a0e7cf45be35a62a8c3cb364a4b2309ea6e5ffd29eeb5515533578a17c8c0dfef8444a01c3435c79724948d7680c0fd575dc932899
+DIST moto-5.1.17.tar.gz.provenance 9192 BLAKE2B fbaae04df8ba47aea6c6584bd2d6a44ccbe717947438c9bd7447703a23ebca82ecfbd7f9c68f5af6b255f9166a104207d64a6d1f69fbfd775a83e1b7607a2230 SHA512 5207f9933b334ec4b70a5f3198d44da3bf04f9990cd03bbc22263003026262d73532b0dc35951ae05a09fe904e5ec83c24d4ad26f4b54b27b7220fb02762a50a
diff --git a/dev-python/moto/moto-5.1.10.ebuild b/dev-python/moto/moto-5.1.10.ebuild
deleted file mode 100644
index 70aff4e9979f..000000000000
--- a/dev-python/moto/moto-5.1.10.ebuild
+++ /dev/null
@@ -1,114 +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 toolchain-funcs
-
-DESCRIPTION="Mock library for boto"
-HOMEPAGE="
- https://github.com/getmoto/moto/
- https://pypi.org/project/moto/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
- dev-python/boto3[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
- >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
- >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
- dev-python/cookies[${PYTHON_USEDEP}]
- >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/flask-cors[${PYTHON_USEDEP}]
- >=dev-python/idna-2.5[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
- dev-python/jsonpath-ng[${PYTHON_USEDEP}]
- dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/more-itertools[${PYTHON_USEDEP}]
- >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
- >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
- dev-python/pyaml[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/python-jose[${PYTHON_USEDEP}]
- >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
- >=dev-python/requests-2.5[${PYTHON_USEDEP}]
- dev-python/sshpubkeys[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
- dev-python/werkzeug[${PYTHON_USEDEP}]
- dev-python/zipp[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_RERUNS=5
-: "${EPYTEST_TIMEOUT:=180}"
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO
- tests/test_dynamodb/test_dynamodb_import_table.py
- # require joserfc
- tests/test_apigateway/test_apigateway.py::test_create_authorizer
- tests/test_apigateway/test_apigateway.py::test_delete_authorizer
- tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
- tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
- tests/test_cognitoidp/test_server.py::test_associate_software_token
- tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
- # require py_partiql_parser
- tests/test_dynamodb/test_dynamodb_statements.py
- tests/test_s3/test_s3_select.py
- # require graphql
- tests/test_appsync/test_appsync_schema.py
- # Internet
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
- tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
- tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
- )
- local EPYTEST_IGNORE=(
- # require joserfc
- tests/test_cognitoidp/test_cognitoidp.py
- )
-
- if ! tc-has-64bit-time_t; then
- einfo "time_t is smaller than 64 bits, will skip broken tests"
- EPYTEST_DESELECT+=(
- tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
- tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
- tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
- )
- EPYTEST_IGNORE+=(
- tests/test_route53domains/test_route53domains_domain.py
- )
- fi
-
- local -x TZ=UTC
- local -x AWS_DEFAULT_REGION=us-east-1
-
- rm -rf moto || die
- epytest -m 'not network and not requires_docker'
-}
diff --git a/dev-python/moto/moto-5.1.11.ebuild b/dev-python/moto/moto-5.1.11.ebuild
deleted file mode 100644
index 70aff4e9979f..000000000000
--- a/dev-python/moto/moto-5.1.11.ebuild
+++ /dev/null
@@ -1,114 +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 toolchain-funcs
-
-DESCRIPTION="Mock library for boto"
-HOMEPAGE="
- https://github.com/getmoto/moto/
- https://pypi.org/project/moto/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
- dev-python/boto3[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
- >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
- >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
- dev-python/cookies[${PYTHON_USEDEP}]
- >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/flask-cors[${PYTHON_USEDEP}]
- >=dev-python/idna-2.5[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
- dev-python/jsonpath-ng[${PYTHON_USEDEP}]
- dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/more-itertools[${PYTHON_USEDEP}]
- >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
- >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
- dev-python/pyaml[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/python-jose[${PYTHON_USEDEP}]
- >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
- >=dev-python/requests-2.5[${PYTHON_USEDEP}]
- dev-python/sshpubkeys[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
- dev-python/werkzeug[${PYTHON_USEDEP}]
- dev-python/zipp[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_RERUNS=5
-: "${EPYTEST_TIMEOUT:=180}"
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO
- tests/test_dynamodb/test_dynamodb_import_table.py
- # require joserfc
- tests/test_apigateway/test_apigateway.py::test_create_authorizer
- tests/test_apigateway/test_apigateway.py::test_delete_authorizer
- tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
- tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
- tests/test_cognitoidp/test_server.py::test_associate_software_token
- tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
- # require py_partiql_parser
- tests/test_dynamodb/test_dynamodb_statements.py
- tests/test_s3/test_s3_select.py
- # require graphql
- tests/test_appsync/test_appsync_schema.py
- # Internet
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
- tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
- tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
- )
- local EPYTEST_IGNORE=(
- # require joserfc
- tests/test_cognitoidp/test_cognitoidp.py
- )
-
- if ! tc-has-64bit-time_t; then
- einfo "time_t is smaller than 64 bits, will skip broken tests"
- EPYTEST_DESELECT+=(
- tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
- tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
- tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
- )
- EPYTEST_IGNORE+=(
- tests/test_route53domains/test_route53domains_domain.py
- )
- fi
-
- local -x TZ=UTC
- local -x AWS_DEFAULT_REGION=us-east-1
-
- rm -rf moto || die
- epytest -m 'not network and not requires_docker'
-}
diff --git a/dev-python/moto/moto-5.1.12.ebuild b/dev-python/moto/moto-5.1.17.ebuild
index da29bd9851e6..da29bd9851e6 100644
--- a/dev-python/moto/moto-5.1.12.ebuild
+++ b/dev-python/moto/moto-5.1.17.ebuild
diff --git a/dev-python/moto/moto-5.1.8.ebuild b/dev-python/moto/moto-5.1.8.ebuild
deleted file mode 100644
index 60e6256d6605..000000000000
--- a/dev-python/moto/moto-5.1.8.ebuild
+++ /dev/null
@@ -1,113 +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 toolchain-funcs
-
-DESCRIPTION="Mock library for boto"
-HOMEPAGE="
- https://github.com/getmoto/moto/
- https://pypi.org/project/moto/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
- dev-python/boto3[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
- >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
- >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
- dev-python/cookies[${PYTHON_USEDEP}]
- >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/flask-cors[${PYTHON_USEDEP}]
- >=dev-python/idna-2.5[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
- dev-python/jsonpath-ng[${PYTHON_USEDEP}]
- dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/more-itertools[${PYTHON_USEDEP}]
- >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
- >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
- dev-python/pyaml[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/python-jose[${PYTHON_USEDEP}]
- >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
- >=dev-python/requests-2.5[${PYTHON_USEDEP}]
- dev-python/sshpubkeys[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
- dev-python/werkzeug[${PYTHON_USEDEP}]
- dev-python/zipp[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-rerunfailures )
-: "${EPYTEST_TIMEOUT:=180}"
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO
- tests/test_dynamodb/test_dynamodb_import_table.py
- # require joserfc
- tests/test_apigateway/test_apigateway.py::test_create_authorizer
- tests/test_apigateway/test_apigateway.py::test_delete_authorizer
- tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
- tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
- tests/test_cognitoidp/test_server.py::test_associate_software_token
- tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
- # require py_partiql_parser
- tests/test_dynamodb/test_dynamodb_statements.py
- tests/test_s3/test_s3_select.py
- # require graphql
- tests/test_appsync/test_appsync_schema.py
- # Internet
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
- tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
- tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
- )
- local EPYTEST_IGNORE=(
- # require joserfc
- tests/test_cognitoidp/test_cognitoidp.py
- )
-
- if ! tc-has-64bit-time_t; then
- einfo "time_t is smaller than 64 bits, will skip broken tests"
- EPYTEST_DESELECT+=(
- tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
- tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
- tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
- )
- EPYTEST_IGNORE+=(
- tests/test_route53domains/test_route53domains_domain.py
- )
- fi
-
- local -x TZ=UTC
- local -x AWS_DEFAULT_REGION=us-east-1
-
- rm -rf moto || die
- epytest -m 'not network and not requires_docker' --reruns=5
-}
diff --git a/dev-python/moto/moto-5.1.9.ebuild b/dev-python/moto/moto-5.1.9.ebuild
deleted file mode 100644
index 70aff4e9979f..000000000000
--- a/dev-python/moto/moto-5.1.9.ebuild
+++ /dev/null
@@ -1,114 +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 toolchain-funcs
-
-DESCRIPTION="Mock library for boto"
-HOMEPAGE="
- https://github.com/getmoto/moto/
- https://pypi.org/project/moto/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
-
-RDEPEND="
- >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
- dev-python/boto3[${PYTHON_USEDEP}]
- >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
- >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
- >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
- dev-python/cookies[${PYTHON_USEDEP}]
- >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/flask-cors[${PYTHON_USEDEP}]
- >=dev-python/idna-2.5[${PYTHON_USEDEP}]
- >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
- dev-python/jsonpath-ng[${PYTHON_USEDEP}]
- dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/more-itertools[${PYTHON_USEDEP}]
- >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
- >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
- dev-python/pyaml[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/python-jose[${PYTHON_USEDEP}]
- >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
- >=dev-python/requests-2.5[${PYTHON_USEDEP}]
- dev-python/sshpubkeys[${PYTHON_USEDEP}]
- dev-python/typing-extensions[${PYTHON_USEDEP}]
- dev-python/xmltodict[${PYTHON_USEDEP}]
- dev-python/werkzeug[${PYTHON_USEDEP}]
- dev-python/zipp[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_RERUNS=5
-: "${EPYTEST_TIMEOUT:=180}"
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO
- tests/test_dynamodb/test_dynamodb_import_table.py
- # require joserfc
- tests/test_apigateway/test_apigateway.py::test_create_authorizer
- tests/test_apigateway/test_apigateway.py::test_delete_authorizer
- tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
- tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
- tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
- tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
- tests/test_cognitoidp/test_server.py::test_associate_software_token
- tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
- # require py_partiql_parser
- tests/test_dynamodb/test_dynamodb_statements.py
- tests/test_s3/test_s3_select.py
- # require graphql
- tests/test_appsync/test_appsync_schema.py
- # Internet
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
- tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
- tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
- tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
- )
- local EPYTEST_IGNORE=(
- # require joserfc
- tests/test_cognitoidp/test_cognitoidp.py
- )
-
- if ! tc-has-64bit-time_t; then
- einfo "time_t is smaller than 64 bits, will skip broken tests"
- EPYTEST_DESELECT+=(
- tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
- tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
- tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
- )
- EPYTEST_IGNORE+=(
- tests/test_route53domains/test_route53domains_domain.py
- )
- fi
-
- local -x TZ=UTC
- local -x AWS_DEFAULT_REGION=us-east-1
-
- rm -rf moto || die
- epytest -m 'not network and not requires_docker'
-}
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index 444ea432a4ed..e39a9d47b61f 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -2,3 +2,5 @@ DIST narwhals-2.10.2.tar.gz 584954 BLAKE2B 9f8b96e44d3ceb4fa27d4bc36f4d0507f9f93
DIST narwhals-2.10.2.tar.gz.provenance 9485 BLAKE2B 9cc829eb823c8a27681c6d7a47bb894b99c3aaa6532c923fa4e6cd708fa019d2d61fec6889c19303d4e847485d188c051c20f4db14e53a86796bb917481f51aa SHA512 66b9c91aaf6e8a507c0e35bb076c7b4ba4d35c27773b9432557ade4650aa1d8cda4c621139138d8342d153d390ff87879cedd34f46c801c213f0b785af18fe9c
DIST narwhals-2.11.0.tar.gz 589233 BLAKE2B 98b0c8bf2895092538edb3a570135bfcbe8932e790411357f46d5d5bec7629d041fd987b4ab30550dc6df56297653b02c51cfcefce08d323fab8e203ce427fed SHA512 0ac1844d409d898526da380e4c99353903f2017de3534e6f9d94e257c4bd369df29db0c4f79f7207c3c46577504d41ff5db73fa756d7241cfde2409b01a08d53
DIST narwhals-2.11.0.tar.gz.provenance 9661 BLAKE2B ad5083eccef69217ca1410c2daf595f7437088c91749b644a4ea85763405a597a111c23dffe3b38db4c1b3051219fa72ba86c56b135b9a0f0b1ce266eb504fd2 SHA512 9ed4b208b811cdf2cbecf0dbf32a28ddd06227c8ed5856b5759b503ea0b12974c63c3118c52de55481b9d0aad74398ad9991a6fb1b9d4c10a769e80d8bdc471d
+DIST narwhals-2.12.0.tar.gz 590404 BLAKE2B 2cee8cff2f8729940aac78950692117348a960c781a9e1adec3e8f1cb0afc98aa19d46a73cd5792a7aa4d607410d69433fa0760e7cdd6cd76229118497bb9156 SHA512 692ee2de2bf0cd589772b01c419fa6a50f815df3311109bfbbcc042b396082362cf439abd7da68b476e869594367d4c85a77bc64e7402219fed44e257c6a3fdd
+DIST narwhals-2.12.0.tar.gz.provenance 9771 BLAKE2B 204ffab4f63293e8229f23eb353778b853b582c8f083ea315c9921796b0c357b2ab1b909f3dd4057ae052960fedcfcaa07a1e188b0a098591e348973fb833b0f SHA512 3b59c95a3b720499804ac6752585dda24591f4b0103164013c700e12bb1bef8db67620b9d888d2153ed8d578120f11ea80ed20a0feff9e6632bad0821b132143
diff --git a/dev-python/narwhals/narwhals-2.12.0.ebuild b/dev-python/narwhals/narwhals-2.12.0.ebuild
new file mode 100644
index 000000000000..449e85db9ce7
--- /dev/null
+++ b/dev-python/narwhals/narwhals-2.12.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 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/narwhals-dev/narwhals
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extremely lightweight compatibility layer between dataframe libraries"
+HOMEPAGE="
+ https://github.com/narwhals-dev/narwhals/
+ https://pypi.org/project/narwhals/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+BDEPEND="
+ test? (
+ >=dev-python/pandas-1.1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-13.0.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-env )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # segfaults
+ # https://github.com/apache/arrow/issues/47252
+ 'tests/modern_polars/unpivot_test.py::test_unpivot[pyarrow]'
+ # fragile to parallel merges that can cause non-atomic .dist-info
+ # changes
+ tests/system_info_test.py::test_get_sys_info
+ )
+
+ epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow"
+}
diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest
index 1ff253e65f07..e862320b59f2 100644
--- a/dev-python/numpy/Manifest
+++ b/dev-python/numpy/Manifest
@@ -5,3 +5,5 @@ DIST numpy-2.3.2.tar.gz 20489306 BLAKE2B 66a683a62daf3971c01a484d6e8c56e592744b9
DIST numpy-2.3.3.tar.gz 20576648 BLAKE2B 285c3ea4852618c9a7af339f117b12e06c736a765c6b97437ac8b2c0c02085126a89cc8d6d9e0e6f7d5ebb69d63a972c1619bf6c407197882e01c7cddfb8d79b SHA512 5555f68d75342054c240695a7a7aaaaec09c45e04965b4100732a7f8f49f53a203ec438e35c12040481d6ee9f4649e43c83ac96fdc08526cdcf93463b9fe7bd9
DIST numpy-2.3.4.tar.gz 20582187 BLAKE2B 268754c3e50049a9a3c8a9d5bc3159a7bf635bf62ceacfd46c51cd860dbcbad6bbe790f13ea9f2ba8292e0ea3eedb4d597e4a97060cba57cd5daa263b2fe2a31 SHA512 62d1b2be15e8b23487d384438bbffa26c1bd25ee7b800f4f7cbe3cff3f7d196329efdfdd08e66acc557cea050cc125437ca621cd84a9d06aab497060ab36949a
DIST numpy-2.3.4.tar.gz.provenance 9933 BLAKE2B f25013995927114ba965e6297725d3d0cfdf70a2080e90c05b7297c8451b1cfe6a03bf81dc9cfb678e64ec4eaf0ec7fd3892fdf2ebb75ddb052bbf451b44870f SHA512 1689825964ca90f5af3ff2493df889b61b8ec4ca6e36b8c8ab1fede5ddac8f2606109c9434163dde92e9a6f0b0f7f2c328ffb322dc8f19b69b5de4a1c5a35cd7
+DIST numpy-2.3.5.tar.gz 20584950 BLAKE2B a203d249631a49c8a28d8b81fb395d41f40c02c32955014c9010fd887bbd29631a94bf0f781a16a3b84fdde740c7728a5bfdcf4489e2c82b17c7f9cf2f641230 SHA512 055e5c0363e1e6d75e514b2f3a2dbbf830a0172a1381f3872b68cc4605bfafae91afcab37b710d12379488eba343fad7aeeb466ea23fa45d1d817a33aefe75fe
+DIST numpy-2.3.5.tar.gz.provenance 9651 BLAKE2B 51039d094df01b45dfc013deb5149d6788869b5d36f187acd3048e9c5c7fca06c2d90e074633cd4a434d83112898a64a04e1b031760cbf5ad11f824f9384e588 SHA512 a86367d78e782148c3278fbc45b996a31d73ea5750bfee4599b6b06797ec196b9c8d25773efd7896e128900be9cf325d3ba8d0edae3701d1907626ee3d92e54c
diff --git a/dev-python/numpy/numpy-2.3.5.ebuild b/dev-python/numpy/numpy-2.3.5.ebuild
new file mode 100644
index 000000000000..e92bbccc5868
--- /dev/null
+++ b/dev-python/numpy/numpy-2.3.5.ebuild
@@ -0,0 +1,358 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/numpy/numpy-release
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+FORTRAN_NEEDED=lapack
+
+inherit distutils-r1 flag-o-matic fortran-2 pypi
+
+DESCRIPTION="Fast array and numerical python library"
+HOMEPAGE="
+ https://numpy.org/
+ https://github.com/numpy/numpy/
+ https://pypi.org/project/numpy/
+"
+
+LICENSE="BSD"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+# +lapack because the internal fallbacks are pretty slow. Building without blas
+# is barely supported anyway, see bug #914358.
+IUSE="big-endian +cpudetection index64 +lapack"
+
+# upstream-flag[:gentoo-flag]
+ARM_FLAGS=( neon{,-fp16} vfpv4 asimd{,hp,dp,fhm} sve )
+PPC_FLAGS=( vsx vsx2 vsx3 vsx4 )
+X86_FLAGS=(
+ sse{,2,3,4_1,4_2} ssse3 popcnt avx{,2} xop fma{3,4}
+ f16c avx512{f,cd,pf,er,dq,bw,vl,ifma,vbmi}
+ avx512_{vpopcntdq,4vnniw,4fmaps,vbmi2,bitalg,fp16,vnni}
+)
+IUSE+="
+ ${ARM_FLAGS[*]/#/cpu_flags_arm_}
+ ${PPC_FLAGS[*]/#/cpu_flags_ppc_}
+ ${X86_FLAGS[*]/#/cpu_flags_x86_}
+"
+
+RDEPEND="
+ lapack? (
+ >=virtual/cblas-3.8[index64(-)?]
+ >=virtual/lapack-3.8[index64(-)?]
+ )
+"
+BDEPEND="
+ ${RDEPEND}
+ >=dev-build/meson-1.5.2
+ >=dev-python/cython-3.0.6[${PYTHON_USEDEP}]
+ lapack? (
+ virtual/pkgconfig
+ )
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # https://bugs.gentoo.org/925367
+ vrndq_f32
+)
+
+EPYTEST_PLUGINS=( hypothesis pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/numpy/numpy/pull/29459
+ "${FILESDIR}"/${PN}-2.3.2-no-detect.patch
+ # https://github.com/numpy/numpy/pull/29579
+ "${FILESDIR}"/${PN}-2.3.2-arm-asimddp.patch
+)
+
+has_all_x86() {
+ local flag
+ for flag; do
+ if ! use "cpu_flags_x86_${flag}"; then
+ return 1
+ fi
+ done
+ return 0
+}
+
+python_configure_all() {
+ local cpu_baseline=()
+ local map flag
+ case ${ARCH} in
+ arm)
+ # every flag implies the previous one
+ for map in NEON:neon NEON_FP16:neon-fp16 NEON_VFPV4:vfpv4; do
+ if ! use "cpu_flags_arm_${map#*:}"; then
+ break
+ fi
+ cpu_baseline+=( "${map%:*}" )
+ done
+ ;&
+ arm64)
+ # on 32-bit ARM, ASIMD implies all NEON* flags
+ # on 64-bit ARM, they are all linked together
+ if use arm64 ||
+ [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == NEON_VFPV4 ]]
+ then
+ cpu_baseline+=( $(usev cpu_flags_arm_asimd ASIMD) )
+ fi
+
+ # these two imply ASIMD
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == ASIMD ]]; then
+ for flag in dp hp; do
+ cpu_baseline+=(
+ $(usev "cpu_flags_arm_asimd${flag}" "ASIMD${flag^^}")
+ )
+ done
+ fi
+
+ # these two imply ASIMDHP
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == ASIMDHP ]]; then
+ for flag in asimdfhm sve; do
+ cpu_baseline+=(
+ $(usev "cpu_flags_arm_${flag}" "${flag^^}")
+ )
+ done
+ fi
+ ;;
+ ppc64)
+ # every flag implies the previous one
+ for flag in '' 2 3 4; do
+ if ! use "cpu_flags_ppc_vsx${flags}"; then
+ break
+ fi
+ cpu_baseline+=( "VSX${flag}" )
+ done
+ ;;
+ amd64|x86)
+ # every flag implies the previous one
+ for flag in sse{,2,3} ssse3 sse4_1 popcnt sse4_2 avx; do
+ if ! use "cpu_flags_x86_${flag}"; then
+ break
+ fi
+ flag=${flag/_}
+ cpu_baseline+=( "${flag^^}" )
+ done
+
+ # these imply AVX
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == AVX ]]; then
+ for flag in xop fma4 f16c; do
+ if use "cpu_flags_x86_${flag}"; then
+ cpu_baseline+=( "${flag^^}" )
+ fi
+ done
+ fi
+
+ # another chain started on implying F16C
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == F16C ]]; then
+ for flag in fma3 avx2 avx512f avx512cd; do
+ if ! use "cpu_flags_x86_${flag}"; then
+ break
+ fi
+ cpu_baseline+=( "${flag^^}" )
+ done
+ fi
+
+ if [[ ${cpu_baseline[@]} && ${cpu_baseline[-1]} == AVX512CD ]]; then
+ # upstream combines multiple instructions into per-CPU sets
+ local -A avx512_mapping=(
+ [AVX512_KNL]="avx512pf avx512er"
+ [AVX512_KNM]="avx512_vpopcntdq avx512_4vnniw avx512_4fmaps"
+ [AVX512_SKX]="avx512dq avx512bw avx512vl"
+ [AVX512_CLX]="avx512_vnni"
+ [AVX512_CNL]="avx512ifma avx512vbmi"
+ [AVX512_ICL]="avx512_vbmi2 avx512_bitalg"
+ [AVX512_SPR]="avx512_fp16"
+ )
+
+ # 1. AVX512CD -> AVX512_KNL -> AVX512_KNM
+ if has_all_x86 ${avx512_mapping[AVX512_KNL]}; then
+ cpu_baseline+=( AVX512_KNL )
+ if has_all_x86 ${avx512_mapping[AVX512_KNM]}; then
+ cpu_baseline+=( AVX512_KNM )
+ fi
+ fi
+ # 2. AVX512CD -> AVX512_SKX -> [AVX512_CLX, AVX512_CNL]
+ if has_all_x86 ${avx512_mapping[AVX512_SKX]}; then
+ cpu_baseline+=( AVX512_SKX )
+ if has_all_x86 ${avx512_mapping[AVX512_CLX]}; then
+ cpu_baseline+=( AVX512_CLX )
+ fi
+ if has_all_x86 ${avx512_mapping[AVX512_CNL]}; then
+ cpu_baseline+=( AVX512_CNL )
+ fi
+ fi
+ # 3. [AVX512_CLX, AVX512_CNL] -> AVX512_ICL -> AVX512_SPR
+ if [[ ${cpu_baseline[-1]} == AVX512_CNL &&
+ ${cpu_baseline[-2]} == AVX512_CLX ]]
+ then
+ if has_all_x86 ${avx512_mapping[AVX512_ICL]}; then
+ cpu_baseline+=( AVX512_ICL )
+ if has_all_x86 ${avx512_mapping[AVX512_SPR]}; then
+ cpu_baseline+=( AVX512_SPR )
+ fi
+ fi
+ fi
+ fi
+ ;;
+ *)
+ cpu_baseline=MIN
+ ;;
+ esac
+
+ DISTUTILS_ARGS=(
+ -Dallow-noblas=$(usex !lapack true false)
+ -Duse-ilp64=$(usex index64 true false)
+ -Dblas=$(usev lapack $(usex index64 cblas64 cblas))
+ -Dlapack=$(usev lapack $(usex index64 lapack64 lapack))
+ -Dcpu-baseline="${cpu_baseline[*]}"
+ -Dcpu-baseline-detect=disabled
+ # '-XOP -FMA4' is upstream default, since these are deprecated
+ -Dcpu-dispatch="$(usev cpudetection 'MAX -XOP -FMA4')"
+ )
+
+ # bug #922457
+ filter-lto
+ # https://github.com/numpy/numpy/issues/25004
+ append-flags -fno-strict-aliasing
+}
+
+python_test() {
+ # We run tests in parallel, so avoid having n^2 threads in lapack
+ # tests.
+ local -x BLIS_NUM_THREADS=1
+ local -x MKL_NUM_THREADS=1
+ local -x OMP_NUM_THREADS=1
+ local -x OPENBLAS_NUM_THREADS=1
+
+ # don't run tests that require more than 2 GiB of RAM (per process)
+ local -x NPY_AVAILABLE_MEM="2 GiB"
+
+ local EPYTEST_DESELECT=(
+ # Very disk-and-memory-hungry
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_fid
+ numpy/lib/tests/test_io.py::TestSavezLoad::test_closing_zipfile_after_load
+
+ # Precision problems
+ numpy/_core/tests/test_umath_accuracy.py::TestAccuracy::test_validate_transcendentals
+
+ numpy/typing/tests/test_typing.py
+
+ # Flaky, reruns don't help
+ numpy/f2py/tests/test_crackfortran.py
+ numpy/f2py/tests/test_f2py2e.py::test_gh22819_cli
+ numpy/f2py/tests/test_data.py::TestData{,F77}::test_crackedlines
+ )
+
+ if [[ $(uname -m) == armv8l ]]; then
+ # Degenerate case of arm32 chroot on arm64, bug #774108
+ EPYTEST_DESELECT+=(
+ numpy/_core/tests/test_cpu_features.py::Test_ARM_Features::test_features
+ )
+ fi
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO: warnings
+ numpy/_core/tests/test_umath.py::TestSpecialFloats::test_unary_spurious_fpexception
+
+ # TODO
+ numpy/_core/tests/test_function_base.py::TestLinspace::test_denormal_numbers
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ hppa)
+ EPYTEST_DESELECT+=(
+ # https://bugs.gentoo.org/942689
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[int]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype[float]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[datetime64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[timedelta64]"
+ "numpy/_core/tests/test_dtype.py::TestBuiltin::test_dtype_bytes_str_equivalence[<f]"
+ "numpy/_core/tests/test_dtype.py::TestPickling::test_pickle_dtype[dt28]"
+ numpy/f2py/tests/test_kind.py::TestKind::test_real
+ numpy/f2py/tests/test_kind.py::TestKind::test_quad_precision
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_reference_cycles
+ numpy/tests/test_ctypeslib.py::TestAsArray::test_segmentation_fault
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_scalar
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_subarray
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_structure_aligned
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_union
+ numpy/tests/test_ctypeslib.py::TestAsCtypesType::test_padded_union
+ )
+ ;;
+ ppc|x86)
+ EPYTEST_DESELECT+=(
+ # require too much memory
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]'
+ 'numpy/_core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]'
+ )
+ ;;
+ esac
+
+ if [[ ${CHOST} == powerpc64le-* ]]; then
+ EPYTEST_DESELECT+=(
+ # long double thingy
+ numpy/_core/tests/test_scalarprint.py::TestRealScalars::test_ppc64_ibm_double_double128
+ )
+ fi
+
+ if use big-endian; then
+ EPYTEST_DESELECT+=(
+ # ppc64 and sparc
+ numpy/linalg/tests/test_linalg.py::TestDet::test_generalized_sq_cases
+ numpy/linalg/tests/test_linalg.py::TestDet::test_sq_cases
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[t1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[s1]"
+ "numpy/f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[t1]"
+ )
+ fi
+
+ if ! has_version -b "~${CATEGORY}/${P}[${PYTHON_USEDEP}]" ; then
+ # depends on importing numpy.random from system namespace
+ EPYTEST_DESELECT+=(
+ 'numpy/random/tests/test_extending.py::test_cython'
+ )
+ fi
+
+ if has_version ">=dev-python/setuptools-74[${PYTHON_USEDEP}]"; then
+ # msvccompiler removal
+ EPYTEST_DESELECT+=(
+ numpy/tests/test_public_api.py::test_all_modules_are_expected_2
+ numpy/tests/test_public_api.py::test_api_importable
+ )
+ EPYTEST_IGNORE+=(
+ numpy/distutils/tests/test_mingw32ccompiler.py
+ numpy/distutils/tests/test_system_info.py
+ )
+ fi
+
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ epytest
+}
+
+python_install_all() {
+ local DOCS=( LICENSE.txt README.md THANKS.txt )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/omemo-dr/Manifest b/dev-python/omemo-dr/Manifest
index 02952446002a..6a239722fb17 100644
--- a/dev-python/omemo-dr/Manifest
+++ b/dev-python/omemo-dr/Manifest
@@ -1 +1,2 @@
DIST omemo-dr-1.0.1.tar.gz 152526 BLAKE2B 218e51996a71f506739489c54a3ddeea023a778dea57ee34bb1f50a03b27d740d6871f89ecddcad5fdb0208bbb876a8e815be78f51e3f675347323085c20963e SHA512 38306e88de1e384eb42848029d8eee7d5aed0bcc3b9ed2867c75fd5bac09daba31c136d10cb815153f21ea6ab6ccae4cfa2d3453db0863e2dc4b065fce8f24e3
+DIST omemo_dr-1.1.0.tar.gz 152761 BLAKE2B 7e34b099f7036d130cdeea62ff41606e3a7f3388b977f122de29ed26aabd4e961e48825bdac35e95cce061b2918a1b9747d08a238b561057f6067a14fe9eb32a SHA512 60897932c709e43b4ce93861c9bfaefe9b2236512c90c8510e5480e240b102183e4c7318a17fa92574d611d619475ffc50640a6030f8e169404500e260ccea82
diff --git a/dev-python/omemo-dr/omemo-dr-1.1.0.ebuild b/dev-python/omemo-dr/omemo-dr-1.1.0.ebuild
new file mode 100644
index 000000000000..71e4bd652a27
--- /dev/null
+++ b/dev-python/omemo-dr/omemo-dr-1.1.0.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2023-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 pypi
+
+DESCRIPTION="OMEMO Crypto Library"
+HOMEPAGE="
+ https://pypi.org/project/omemo-dr/
+ https://dev.gajim.org/gajim/omemo-dr/
+"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/protobuf[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest
index 93d6afda8570..018034b92268 100644
--- a/dev-python/plotly/Manifest
+++ b/dev-python/plotly/Manifest
@@ -1,2 +1,3 @@
DIST plotly.py-6.3.1.gh.tar.gz 10209372 BLAKE2B 164e8c163767027e30e0feaabce7f509293b0b48fac73eac6f2ffb8ae2d1d4472f0aca2ad07edaa45b920c9137578ba10d7fbf0e44c630cfc30eb9d26e928dcb SHA512 cf15610eeea9eba4743f6c5468c9c92a6107616ab7879effe4908931143773d920fda27fd7335e82ade8eb20384014a0eac8c451719b63a354529255f3c441b4
DIST plotly.py-6.4.0.gh.tar.gz 10286125 BLAKE2B 57547946f8dfb5d8485270aeac0f5c26db3e48096b57bc798672b571fedac57e64e241b6501d25ef9ac2ba0a3cb38a570dff0717882ed99381250cc6be449779 SHA512 c57d150937d2a556cc474e689aa231e113fc912579364a0d6fa7356dd304ce79d40d865a48bc21ca457ee0fccb3c34f0f089086a87cd2d834b05cc4f747d9d33
+DIST plotly.py-6.5.0.gh.tar.gz 10287411 BLAKE2B 66516bb80f73a6201105ecc727265d3010aca7f567ebf2251dc61ed8b52ca21d21731f2034d6f986cfd0096d389108f8e73a0c3c1b67d598c0edf63b4d943c79 SHA512 5f200b5e74b6266a3b95bccfa86d5d4e68e032fbb8a22fd0f759142f50374cee350bf5769a27f4da32b174cf5c45888c2a36ea3a1c71ab9d4e8d6b30504360e8
diff --git a/dev-python/plotly/plotly-6.5.0.ebuild b/dev-python/plotly/plotly-6.5.0.ebuild
new file mode 100644
index 000000000000..dbf4a8c9cf8c
--- /dev/null
+++ b/dev-python/plotly/plotly-6.5.0.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1
+
+MY_P=plotly.py-${PV/_}
+DESCRIPTION="Browser-based graphing library for Python"
+HOMEPAGE="
+ https://plotly.com/python/
+ https://github.com/plotly/plotly.py/
+ https://pypi.org/project/plotly/
+"
+SRC_URI="
+ https://github.com/plotly/plotly.py/archive/refs/tags/v${PV/_}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}"
+# The tests are not included in the PyPI tarball, to use the GitHub tarball
+# we have to skip npm, which means that the resulting install will
+# unfortunately lack the jupyterlab extension.
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/narwhals-1.15.1[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jupyter[${PYTHON_USEDEP}]
+ dev-python/jupyterlab[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scikit-image[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/statsmodels[${PYTHON_USEDEP}]
+ dev-python/xarray[${PYTHON_USEDEP}]
+ )
+"
+
+# There are sphinx docs but we are missing a bunch of dependencies.
+# distutils_enable_sphinx ../../../doc/apidoc
+
+EPYTEST_PLUGINS=()
+# xdist is causing pretty nasty race conditions here
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # requires polars
+ tests/test_optional/test_px
+
+ # requires kaleido
+ tests/test_optional/test_kaleido/test_kaleido.py
+)
+
+EPYTEST_DESELECT=(
+ # requires polars
+ 'tests/test_plotly_utils/validators/test_fig_deepcopy.py::test_deepcopy_dataframe[polars]'
+
+ # require anywidgets
+ 'tests/test_io/test_to_from_json.py::test_from_json_output_type[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_from_json_output_type[FigureWidget-FigureWidget1]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_filelike[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_filelike[FigureWidget-FigureWidget1]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_pathlib[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_pathlib[FigureWidget-FigureWidget1]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_file_string[FigureWidget-FigureWidget0]'
+ 'tests/test_io/test_to_from_json.py::test_read_json_from_file_string[FigureWidget-FigureWidget1]'
+
+ # minor matplotlib incompatibility
+ plotly/matplotlylib/mplexporter/tests/test_basic.py::test_legend_dots
+ plotly/matplotlylib/mplexporter/tests/test_utils.py::test_linestyle
+
+ # fails in non-isolated env
+ test_init/test_dependencies_not_imported.py::test_dependencies_not_imported
+ test_init/test_lazy_imports.py::test_lazy_imports
+
+ # TODO
+ 'tests/test_plotly_utils/validators/test_colorscale_validator.py::test_acceptance_named[Inferno_r]'
+)
+
+src_configure() {
+ # Do not try to fetch stuff with npm
+ export SKIP_NPM=1
+}
diff --git a/dev-python/podcastparser/Manifest b/dev-python/podcastparser/Manifest
index 1b2bea5faa8b..3fab1edc0d5a 100644
--- a/dev-python/podcastparser/Manifest
+++ b/dev-python/podcastparser/Manifest
@@ -1 +1,2 @@
DIST podcastparser-0.6.10.tar.gz 31717 BLAKE2B 19ea422b78c7631fd2622f935e292d5bb14a31ab749db36a9a19e356a5a331246e7d853412bf913522588ce6446be2070f2ad4e6c1b50d245058eae49739519e SHA512 55b822a80f8fed56feb41d5f9a39c04371e4e11dead45b8ca6aaf666ecc26dc3c94673331da59e2ed6665f2a9ca367b6daccb24f987b1763b6b3ad8b302ee783
+DIST podcastparser-0.6.11.tar.gz 32237 BLAKE2B 3e5d51aa00d4a5086fa6e76bca8ff274699f51294b21388ded30476b853f52145d2f57d27794db0ba873c1bcf655aaf417534594e0003f6478ab08d54cbe5cc4 SHA512 bad657bab27052621be7a76940a32c688bc78eb4a1ec50578138bd1db6d44c82b0470e19e11e2807a03e01caffcc2cd39a58a39357f497b563165af6181551c2
diff --git a/dev-python/podcastparser/podcastparser-0.6.11.ebuild b/dev-python/podcastparser/podcastparser-0.6.11.ebuild
new file mode 100644
index 000000000000..da5f8077093e
--- /dev/null
+++ b/dev-python/podcastparser/podcastparser-0.6.11.ebuild
@@ -0,0 +1,22 @@
+# 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="Podcast parser for the gpodder client"
+HOMEPAGE="
+ https://github.com/gpodder/podcastparser/
+ https://pypi.org/project/podcastparser/
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index bc3f21f8c653..8c5b8a9157f1 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -5,4 +5,5 @@ DIST pypdf-6.0.0.gh.tar.gz 8072420 BLAKE2B 62a455409a13ec0d3cf41543dd696eff77973
DIST pypdf-6.1.2.gh.tar.gz 8096354 BLAKE2B 0e98c9408ce0df8d13df22e4edeaf76409b2146bad940b43695062950d6595a30a74a45e742cd96721ebbe17a4d1d71bd6750ae920c8005ee40fcd7c320c3010 SHA512 d5186191e7321db393a767d666158d91432cefc62f819596f5012651f228c3396741d3352e98f0098182c6d6091bdd7500c81c2c441145af910eb38631fc7ae1
DIST pypdf-6.1.3.gh.tar.gz 8097681 BLAKE2B 90b617886d9e6ccdac701308479c3db6671f850f91002339c6e6530b270eef196204f54456956cfa3cf8f4853063996ae158f09d34e4b11a43319f712d6ed262 SHA512 6fc723a2bf3d93d2a759e982bc1f131393711a7e55b9508a13293d1d5cedb3f28857bc49560e3e283057bb6e63bbfd3b925e2b13de7388833f1d8cfcbc2c0ab6
DIST pypdf-6.2.0.gh.tar.gz 8292284 BLAKE2B 5df0f87c0df7760c510b92a66e80cd260064583812e8d50c9c8b735e1b21b1e81ba0170fc112145df1d7de4681da5ed42555ef850d874a62eda5e08655878d21 SHA512 dcbcced7a0fef3cd08834850300e8eb9608e92a6092fbc68e448a43fa7ea80d3f03b864d294d526633b1bf693af8d97af42290e2d98b05078cc85c385f523194
+DIST pypdf-6.3.0.gh.tar.gz 8295782 BLAKE2B cba7ff1a55f52cfa5d83e8dd11c9a9be6b38f3c9eb42ce14d22b080fdfea72e21da6698d2b05ed02d9aa5b537bd5202205ef11e9c87f2442b56fdd2659a19f3b SHA512 3271c1d991f724e1fb3e85f420a7d60570122460b38ff16b1cd8b3c9dbcadc1d59a6474568a6baf3d7be5669c013938e10246223850f1882027a9d29b016499d
DIST pypdf-sample-files-8c405ece5eff12396a34a1fae3276132002e1753.gh.tar.gz 11748093 BLAKE2B c5989200893b28a3c2062bb024a5cfc6f3389dc259ec129857979fa43469e1274559612b4d555499e2c7e16cf34be07825229932bf4d147fa6d7324d043e97d5 SHA512 c9771129b7668a2fd1fa79bb859ae9213f3d60341cf1b9937ff0eaab0de9bf4c35adcb7b896e93329038dc0f3809a0c697c523f8fe41b43030b0b029a88058e3
diff --git a/dev-python/pypdf/pypdf-6.3.0.ebuild b/dev-python/pypdf/pypdf-6.3.0.ebuild
new file mode 100644
index 000000000000..45dd7b02d7f7
--- /dev/null
+++ b/dev-python/pypdf/pypdf-6.3.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+SAMPLE_COMMIT=8c405ece5eff12396a34a1fae3276132002e1753
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI="
+ https://github.com/py-pdf/pypdf/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${S}"/sample-files/ || die
+ fi
+}
+
+python_test() {
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pyqtgraph/Manifest b/dev-python/pyqtgraph/Manifest
index 697f33f534f1..e03b9e840620 100644
--- a/dev-python/pyqtgraph/Manifest
+++ b/dev-python/pyqtgraph/Manifest
@@ -1 +1,2 @@
DIST pyqtgraph-0.13.7.gh.tar.gz 2364456 BLAKE2B 3ce1a3eb177a2a6328f1b7354bf9d4a87ffedcf4fa75fa407bd2df708b91fe98e2500364220ac7395745c69ac86f4830ea58999d05af49850edc723a6ccad5a1 SHA512 91e06e143fec4b1a6fae5cc7112a1fb6b7e74c7a38605172aacc5639eb220e30c54694e419313c7bb8368ea5c5f45f41d58e4510735e63a7d6ef03cdbb0f05e9
+DIST pyqtgraph-0.14.0.gh.tar.gz 2397130 BLAKE2B 51cec6093e1061a62f8db1ba431a43a8fc4831c5b7e07c8c88bdf3bdcf615589375c2fae5927ca027ce0b77529b49ad232a60a2751948e8fe100fcddaff9805a SHA512 f9c973d5dbfd79ef34652a5eb8eadbc1b0215aa1c30773e5c58148bae6a6d79d3e21a904b1a6dd8ff6eb7fe15debf6c1d45c8a9cce96cbcc60495bc9814259f7
diff --git a/dev-python/pyqtgraph/pyqtgraph-0.14.0.ebuild b/dev-python/pyqtgraph/pyqtgraph-0.14.0.ebuild
new file mode 100644
index 000000000000..4b121fc9f62f
--- /dev/null
+++ b/dev-python/pyqtgraph/pyqtgraph-0.14.0.ebuild
@@ -0,0 +1,167 @@
+# 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="A pure-python graphics and GUI library built on PyQt and numpy"
+HOMEPAGE="
+ https://www.pyqtgraph.org/
+ https://github.com/pyqtgraph/pyqtgraph/
+ https://pypi.org/project/pyqtgraph/
+"
+SRC_URI="
+ https://github.com/pyqtgraph/pyqtgraph/archive/${P}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S=${WORKDIR}/${PN}-${P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+IUSE="opengl svg qt5 +qt6"
+REQUIRED_USE="test? ( opengl svg ) || ( qt5 qt6 )"
+
+RDEPEND="
+ dev-python/colorama[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.22[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ opengl? ( dev-python/pyopengl[${PYTHON_USEDEP}] )
+ qt5? ( dev-python/pyqt5[gui,widgets,opengl=,svg=,${PYTHON_USEDEP}] )
+ qt6? ( dev-python/pyqt6[gui,widgets,opengl=,svg=,${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ dev-python/h5py[${PYTHON_USEDEP}]
+ qt5? ( dev-python/pyqt5[testlib,${PYTHON_USEDEP}] )
+ qt6? ( dev-python/pyqt6[testlib,${PYTHON_USEDEP}] )
+ dev-vcs/git
+ )
+ sys-apps/gawk
+"
+
+EPYTEST_PLUGINS=( pytest-xvfb )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # apparently fragile
+ tests/test_reload.py::test_reload
+
+ # TODO
+ tests/exporters/test_svg.py::test_plotscene
+ tests/graphicsItems/test_ROI.py::test_PolyLineROI
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ if ! use opengl; then
+ rm -r pyqtgraph/opengl || die
+ fi
+
+ # pyqtgraph will automatically use any QT bindings it finds,
+ # patch the supported Qt versions to only include the ones we have enabled
+ # This can be simplified to:
+ # `sed 's/QT_LIB = os.getenv('PYQTGRAPH_QT_LIB')/'QT_LIB = "PyQt6"/' -i pyqtgraph/Qt/__init__.py`
+ # when we only need to support pyqt6.
+ local upstream_supported_qt=(
+ PySide{,2,6}
+ PyQt{4,5,6}
+ )
+ local gentoo_qt=()
+ local is_supported_impl use_qt qt
+ # pyqtgraph has conditionals that depend on these values; we can't just remove them.
+ # set deselected or unsupported to None to avoid more patching
+ for qt in "${upstream_supported_qt[@]}"; do
+ is_supported_impl=0
+ case ${qt} in
+ PyQt5) is_supported_impl=1; use_qt=${qt:2} ;;
+ PyQt6) is_supported_impl=1; use_qt=${qt:2} ;;
+ esac
+ if [[ "${is_supported_impl}" -eq 0 ]]; then
+ gentoo_qt+=( "${qt^^} = None" )
+ continue
+ fi
+ if use ${use_qt,,}; then
+ gentoo_qt+=( "${qt^^} = '${qt}'" )
+ else
+ gentoo_qt+=( "${qt^^} = None" )
+ fi
+ done
+
+ gawk -v qt_string="$(printf "%s\n" "${gentoo_qt[@]}")" -i inplace '
+ BEGIN {
+ i = 0
+ split(qt_string, qt_array, "\n")
+ j = 1
+ }
+ /PYSIDE = '"'"'PySide'"'"'/ {
+ i = 6 # length of upstream_supported_qt
+ for (k = 1; k <= length(qt_array); k++) {
+ print qt_array[k]
+ j++
+ }
+ }
+ i > 0 {
+ i--
+ next
+ }
+ { print }
+ ' pyqtgraph/Qt/__init__.py || die "Failed to patch supported Qt versions"
+
+ # We also need to remove them from load order.
+ local liborder=()
+ local qt
+ # The order is important (we want to prefer the newest at runtime)
+ for qt in qt6 qt5; do
+ if use ${qt}; then
+ liborder+=( "PY${qt^^}" )
+ fi
+ done
+
+ gawk -v libOrder="$(printf "%s, " "${liborder[@]}")" -i inplace '
+ BEGIN {
+ libOrder = "[" substr(libOrder, 1, length(libOrder) - 2) "]"
+ }
+ /libOrder = \[PYQT6, PYSIDE6, PYQT5, PYSIDE2\]/ {
+ sub(/\[PYQT6, PYSIDE6, PYQT5, PYSIDE2\]/, libOrder)
+ }
+ { print }
+ ' pyqtgraph/Qt/__init__.py || die "Failed to patch qt version order"
+
+ # Finally update the list of supported frontends in test to never try unsupported or deselected
+ if use test; then
+ local frontends=()
+ for qt in qt5 qt6; do
+ if use ${qt}; then
+ frontends+=( "Qt.PY${qt^^}: False," )
+ fi
+ done
+ gawk -v frontends="$(printf "%s\n" "${frontends[@]}")" -i inplace '
+ BEGIN {
+ i = 0
+ split(frontends, frontend_array, "\n")
+ j = 1
+ }
+ /frontends = {/ {
+ i = 6 # length of frontends
+
+ print "frontends = {"
+ for (k = 1; k <= length(frontend_array); k++) {
+ print " " frontend_array[k]
+ }
+ print "}"
+ }
+ i > 0 {
+ i--
+ next
+ }
+ { print }
+ ' pyqtgraph/examples/test_examples.py || die "Failed to patch test frontends"
+ fi
+}
diff --git a/dev-python/pytest-check/pytest-check-2.6.0.ebuild b/dev-python/pytest-check/pytest-check-2.6.0.ebuild
index 5b1414a4ab9b..85ad476dcc3e 100644
--- a/dev-python/pytest-check/pytest-check-2.6.0.ebuild
+++ b/dev-python/pytest-check/pytest-check-2.6.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-localftpserver/Manifest b/dev-python/pytest-localftpserver/Manifest
index bb98830dcd24..f75af3eddf0d 100644
--- a/dev-python/pytest-localftpserver/Manifest
+++ b/dev-python/pytest-localftpserver/Manifest
@@ -1,2 +1,3 @@
DIST pytest_localftpserver-1.3.2.tar.gz 48883 BLAKE2B a1e78d632a24f1066e8e96dc54875379e471446d77755b5defd0a0b4a2f00e2f3812d82f7be364f3a414432ae023a9c949132d530d3a2f476dec2c0fe8285408 SHA512 d7be031abd616df9e146ab08f2fe406c1dd55b68e97271e945c20938c01deff53b48cbf5c6b46c90c2cb5388f377e078e5e701ddcc2fa4900d29df9f82c92c4e
DIST pytest_localftpserver-1.4.0.tar.gz 49338 BLAKE2B 4d8174073901523e93b91148b32f66ae4d69216eddbb698aafc818f02a9ed517b1317b10d605576202d22af352437c58f325a2bbe1b428ba35e0179fb22c65f7 SHA512 5e7c2789fd88c4178b2e01f57644d3f9c5740c9455ed838df5f7bb3eea96fb2dba687c7f1f6a28e131331a67c8629dd4be620ac973f74b21eb0f71c6def4a119
+DIST pytest_localftpserver-1.5.0.tar.gz 49333 BLAKE2B 6a60adbf4090352b74950957602599a76cf7827ca295ea8e2ecd566e474dd0306a99bdc5c258118f9f3d156e8d754e1da53e39b9a9abc1bc04c90c4f2b7f0d2b SHA512 3ce907eb0cfe29f39c552b6bbe3e469f37dae4e2211927996b21f578c290031e3adf2b26a409cc6aee3e69fa03e88dc2ae1f36dc9320798beff80739858a262e
diff --git a/dev-python/pytest-localftpserver/pytest-localftpserver-1.5.0.ebuild b/dev-python/pytest-localftpserver/pytest-localftpserver-1.5.0.ebuild
new file mode 100644
index 000000000000..36516146364e
--- /dev/null
+++ b/dev-python/pytest-localftpserver/pytest-localftpserver-1.5.0.ebuild
@@ -0,0 +1,39 @@
+# 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="A PyTest plugin which provides an FTP fixture for your tests"
+HOMEPAGE="
+ https://github.com/oz123/pytest-localftpserver/
+ https://pypi.org/project/pytest-localftpserver/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/pyftpdlib[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_IGNORE=(
+ # these are broken upstream
+ tests/test_pytest_localftpserver_TLS.py
+ # TODO
+ tests/test_pytest_localftpserver_with_env_var.py
+)
+
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-reserial/Manifest b/dev-python/pytest-reserial/Manifest
index 996798024f0d..79082f88be93 100644
--- a/dev-python/pytest-reserial/Manifest
+++ b/dev-python/pytest-reserial/Manifest
@@ -1 +1,3 @@
DIST pytest_reserial-0.4.3.tar.gz 12625 BLAKE2B 09f3ee9706f06923d8edd53d19c956046f075b90675642c692c51dc65f66429413d756a902396f147f27cc547dc3487641645dedae6c6900f96b1c2c66dca33a SHA512 282a9edd457b6bc622aaa66ee7715671eeb945e8dab72c3c7898d7850fb6d151ebfbcddefaad25c1b3f10c13c52b6bc8438975484f1fecd87b5c224f431dba59
+DIST pytest_reserial-0.5.0.tar.gz 12931 BLAKE2B 4d91f1c367145d15ee5b64fc18ab43422aa42848f3df63826edbe12a016495d8add36667e83415d443cb8e4805e718634d127c0c38cd5890d1b537c37b053789 SHA512 96095b7ff8b9db661de9902ff2a8137f30af98696c9589e94ebbbc8367ae4dfa8cb1d116aa9f5e94913548189adda129634bcf8e4fee079c5358367c34e3bfb4
+DIST pytest_reserial-0.5.0.tar.gz.provenance 9263 BLAKE2B e5a8c86fb1eb70415a3627bc71037718bb1aaa36f6fb68fd0eae8bb45b4b56f66339f1036c78bcf6d4d6da0687f2de4545ce1ffa16031fe17094e8c41d64bf74 SHA512 859f2d9ffd1467276e5bbef41a2822574dbd80618784834e95c05ebfeabbf710d3ce7a709e482d1b24f3cfb7b2a01cabd7d3a7e1669671bcbc54574fec952984
diff --git a/dev-python/pytest-reserial/pytest-reserial-0.5.0.ebuild b/dev-python/pytest-reserial/pytest-reserial-0.5.0.ebuild
new file mode 100644
index 000000000000..8c72f8df8d41
--- /dev/null
+++ b/dev-python/pytest-reserial/pytest-reserial-0.5.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYPI_VERIFY_REPO=https://github.com/bessman/pytest-reserial
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pytest plugin for recording and replaying serial port traffic during tests"
+HOMEPAGE="
+ https://pypi.org/project/pytest-reserial/
+ https://github.com/bessman/pytest-reserial/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+distutils_enable_tests pytest
diff --git a/dev-python/python-ironicclient/Manifest b/dev-python/python-ironicclient/Manifest
index 4ac6b224bf62..798e89ee8b5d 100644
--- a/dev-python/python-ironicclient/Manifest
+++ b/dev-python/python-ironicclient/Manifest
@@ -1,2 +1,2 @@
-DIST python_ironicclient-5.12.0.tar.gz 225775 BLAKE2B 6068b55887e1ede35a9a2ee0df0aa894ed5d64e49f65bbe2138bbac8ef17992461f42737fb6f296a8e90e14aa250e50b602731db34038eb3f2db698bdee11d53 SHA512 921cc1a925e8a4bf7b57be14054f7f4064574b259d4768da262adee94e0f997e845f576210bccbc48752b2273cf9cc7471d3cc9ea9391b3e47220f7754a12814
DIST python_ironicclient-5.13.0.tar.gz 225872 BLAKE2B 528827c20507b23a2d4fe2c2bb158ccca5bff1c269b9b58b0293b772942c7fb30460a3f933eed554f848c8e58453e4a9024111fec2c7fe5107099c5326d409a1 SHA512 2c9bfeea82df5156a283baf182bf21f46e56bec555ec64849d12b540f269f5f5a421e5949e86070eeeb79d26295e20556596a896710f9f3fe9e7bd7fd67ad458
+DIST python_ironicclient-5.14.0.tar.gz 226166 BLAKE2B 2dd9160b9c193e8f857125cf5b9d38b879286eb400e0ba7db26b477fd6e8b30f41398b48b6afc0a1f4d5add4ea7334680550163069de07219e41a4070b10af49 SHA512 acd7407916a44fa62e1e450d4cddc987cfc9132a25f195b8ca0aa9af81ed1c4b5cdd6c5cfbc1d1e6e8cf3ac5ae62fa21fc207d186e38da9040cdb8e219de9d1a
diff --git a/dev-python/python-ironicclient/python-ironicclient-5.12.0.ebuild b/dev-python/python-ironicclient/python-ironicclient-5.14.0.ebuild
index e69fba6fa434..cfd33443a819 100644
--- a/dev-python/python-ironicclient/python-ironicclient-5.12.0.ebuild
+++ b/dev-python/python-ironicclient/python-ironicclient-5.14.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
>=dev-python/pbr-6.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pythran/Manifest b/dev-python/pythran/Manifest
index e02bc31d9496..3d1629f0e818 100644
--- a/dev-python/pythran/Manifest
+++ b/dev-python/pythran/Manifest
@@ -1,2 +1,3 @@
DIST pythran-0.17.0.gh.tar.gz 3697173 BLAKE2B 90f765283e4346392eb69d8e6fadf4b00469779bd7fb8dc99084ed0d2d940a1ca949c9dd0eb0fc484c2938de79b1e3650c417dc1cd30786b25b6781c519a629d SHA512 af14cd497bcbef7ac97b42b80e297e641bd520f51938b04a68ebf01de86d6900926653c01ff99b1af7f699674094241099101f1501acfae2be5dc9d1724af777
DIST pythran-0.18.0.gh.tar.gz 3707538 BLAKE2B e2781e3e01677a3373fe7ffb87e9ef99ab2caba89ded3b15677aff963b967670687b5ff5206d3eb0a57332fb2848f67d077f8d3584d38a845a6657f29de28bc5 SHA512 70761b08724264ab048d6943b143123d19d81b65d3a5ab9aa023dc7d989bc51b33e17f9bb81a6e8f25f7bde4745f36d1208c8c2bd49f8d27b7a4776611f310a5
+DIST pythran-0.18.1.gh.tar.gz 3714257 BLAKE2B 711f271297a6012a88a696df749efda8ca4c53e236a646bf2285ba80d0151b1117492c024eb8ab2e5f7337b1f9838332dba480a00a9c2a9216cbbeda78f971a8 SHA512 15650627b9396b49401067c3a7c161d1569f89f29a08243aa85659023e42ce028633915c51c8c5188a5599c201eb30aa2721d64ba766b2a252203469bc6e2ab1
diff --git a/dev-python/pythran/pythran-0.18.1.ebuild b/dev-python/pythran/pythran-0.18.1.ebuild
new file mode 100644
index 000000000000..1a32b3cdd474
--- /dev/null
+++ b/dev-python/pythran/pythran-0.18.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P=${P/_p/.post}
+DESCRIPTION="Ahead of Time compiler for numeric kernels"
+HOMEPAGE="
+ https://pypi.org/project/pythran/
+ https://github.com/serge-sans-paille/pythran/
+"
+SRC_URI="
+ https://github.com/serge-sans-paille/pythran/archive/${PV/_p/.post}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-libs/boost
+ dev-cpp/xsimd
+ =dev-python/beniget-0.4*[${PYTHON_USEDEP}]
+ =dev-python/gast-0.6*[${PYTHON_USEDEP}]
+ dev-python/numpy:=[${PYTHON_USEDEP}]
+ >=dev-python/ply-3.4[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-73.0.1[${PYTHON_USEDEP}]
+"
+DEPEND="
+ test? (
+ dev-libs/boost
+ dev-cpp/xsimd
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ virtual/cblas
+ !!dev-python/setuptools-declarative-requirements
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_configure() {
+ # vendored C++ headers -- use system copies
+ rm -r pythran/{boost,xsimd} || die
+
+ # https://bugs.gentoo.org/916461
+ sed -i \
+ -e 's|blas=blas|blas=cblas|' \
+ -e 's|libs=|libs=cblas|' \
+ pythran/pythran-*.cfg || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # multiple extra deps (meson, openblas)
+ # also broken on pypy3*
+ pythran/tests/test_distutils.py::TestMeson::test_meson_build
+ )
+ local EPYTEST_IGNORE=(
+ pythran/benchmarks
+ )
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO
+ pythran/tests/test_numpy_fft.py::TestNumpyFFT::test_fft_3d_axis
+ pythran/tests/test_numpy_fft.py::TestNumpyFFTN
+ )
+ ;;
+ esac
+
+ # can easily fill up ccache with no real benefit
+ local -x CCACHE_DISABLE=1
+ local -x COLUMNS=80
+ epytest
+}
diff --git a/dev-python/pyudev/pyudev-0.24.4.ebuild b/dev-python/pyudev/pyudev-0.24.4.ebuild
index c5da32597ad9..4855cf14b638 100644
--- a/dev-python/pyudev/pyudev-0.24.4.ebuild
+++ b/dev-python/pyudev/pyudev-0.24.4.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/pyudev/pyudev/archive/refs/tags/v${PV}.tar.gz -> ${P
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86"
# Known to fail on test system that aren't exactly the same devices as on CI
#RESTRICT="test"
diff --git a/dev-python/pyupgrade/Manifest b/dev-python/pyupgrade/Manifest
index de521b0538c7..88f9cda1bd8d 100644
--- a/dev-python/pyupgrade/Manifest
+++ b/dev-python/pyupgrade/Manifest
@@ -1,3 +1,2 @@
-DIST pyupgrade-3.20.0.gh.tar.gz 66442 BLAKE2B d03984ba30d5e5eb1c46dba2384ef476ed7bfa41ef7a372d9ff0bf49568c96f07ef596c25f20b06833c17eace00b605c5ba282b013b35b6d7847b30a786f9889 SHA512 e9ed4663aa8fb3ddc77441b569f8f4da17ad6d4493a401d56be353b3b5c04826fd38091a6ef14afa4e1b91889af1e366c15eb7f583ccf2bdcebcf864c18ed819
-DIST pyupgrade-3.21.0.gh.tar.gz 66794 BLAKE2B 6c1588e0e5763f8adcdff74ee675549696b4a2e539afffad093e2221a493a813fbb486aada00bae6a58b03ae22b699fbe01149334c71ee9b7b04a7889be780c8 SHA512 007c93846e869c9a803558e2e73463af48c4ff79cd844e1ccd3745cef958ae85623de8c0f4344e42acd5ae72248fe1ef729df436e5aefa7624ae42af6e7f1f27
DIST pyupgrade-3.21.1.gh.tar.gz 66869 BLAKE2B 074b4d49c28d94909de9fdb97d1193c74a61849cf8871bd0b4fe788bbcde19c1a52af4dac88143f864d866032bc49d58655b2b663a3926140cfd5ce6e0d58877 SHA512 9ae7e87a7734cd0f5651d4d2c8fbe7fcdeb14d24aa36176df7176fc9d1f19ffde549f2e74a0ddde6d4559804a20e0223f153139312101ff5cc7e810668fea846
+DIST pyupgrade-3.21.2.gh.tar.gz 67006 BLAKE2B 73753913d1f6493d271214b567b374ab0d4cd32cc4f385746fd8ce58157adfd4ce195184d25cd79efbc23186d8825e92d7cce6ac19c81ab9f7e27b897dd6710c SHA512 4b6d5629da057c2dc1890aa6a7c8d83d7669a1bed27d284595355b0b3b4566543750644127adea088646de26f0cb40352340db93b4002c7124dacf994483a372
diff --git a/dev-python/pyupgrade/pyupgrade-3.20.0.ebuild b/dev-python/pyupgrade/pyupgrade-3.20.0.ebuild
deleted file mode 100644
index 76332ea9dc1b..000000000000
--- a/dev-python/pyupgrade/pyupgrade-3.20.0.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2022-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="Tool + pre-commit hook to automatically upgrade syntax for newer Pythons"
-HOMEPAGE="
- https://github.com/asottile/pyupgrade/
- https://pypi.org/project/pyupgrade/
-"
-# no tests in sdist, as of 3.3.2
-SRC_URI="
- https://github.com/asottile/pyupgrade/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- >=dev-python/tokenize-rt-6.1.0[${PYTHON_USEDEP}]
-"
-
-distutils_enable_tests pytest
diff --git a/dev-python/pyupgrade/pyupgrade-3.21.0.ebuild b/dev-python/pyupgrade/pyupgrade-3.21.2.ebuild
index 0ca1212a41aa..0ca1212a41aa 100644
--- a/dev-python/pyupgrade/pyupgrade-3.21.0.ebuild
+++ b/dev-python/pyupgrade/pyupgrade-3.21.2.ebuild
diff --git a/dev-python/reportlab/Manifest b/dev-python/reportlab/Manifest
index 610765348a43..dbe4a5eda0f9 100644
--- a/dev-python/reportlab/Manifest
+++ b/dev-python/reportlab/Manifest
@@ -1,3 +1,3 @@
DIST pfbfer-20070710.zip 677333 BLAKE2B 100214476a361a5e5d1f3da0999591345f6e3a3f8c6bc3f6a3e9eca734190c6259758a43302c6e41254d33491fe535eb7d5dd07aa9727c912424bebc31fc18df SHA512 6fd4a5d955464b10d13a7b748703450c1fe120d5ed09e8cfa1b4dfa9c183c59fe001df29433af551796b0df62544b7ddc364f9bb1bdcc2cd300434340ffcc4f2
-DIST reportlab-4.4.3.tar.gz 3887532 BLAKE2B 30b2dd2160b3d9370ef9ad701da8bf52c640c2f94268bf3459d14d441cfc82b0d1fe5401ebbcfb7110faec9d1d5d03cd024b6be5f088d926f79cf3b4760539c3 SHA512 035b7d9c3de4d2a712641ee641ffa7cacab9239bc07832ed4837659a2d53432dd065fbb0d278d8a7c0a59c4b446249f2a61e9c5affa119118d033318de2a6884
DIST reportlab-4.4.4.tar.gz 3711935 BLAKE2B 533ef3b23a83d472d29dc631032de56454c3a8d97d4b6f8336b54e7787c7318ce89eedf91a1edd5750aa31b451d3565afb6bfda1773d7b6104caf363578efaae SHA512 0366fa5986f0da99e34baac95b02873b4ea27e80f149fd43010063172f3d9d60dfae4f24f20f1f735d485be4cd9b41e0872682eb7200070913524c39c8bf6eb4
+DIST reportlab-4.4.5.tar.gz 3910836 BLAKE2B ace85c323739bbbbf74dc76d0b0143e25867893c42bbd3b53277497267b81669ddde722fe0188842974f41757fb02ef14a0af868563453dd2068208c75cfa927 SHA512 400240eb3cd511c7c4a27d25ff754aff4ce6cbda1d93106cbea1f51f4c7ab2ad7991204965f861f8eefa04f97660ddb47dbdcc9c55cd9a6f205c55f8feede937
diff --git a/dev-python/reportlab/reportlab-4.4.3.ebuild b/dev-python/reportlab/reportlab-4.4.5.ebuild
index e42d7fd13226..f780e2b81541 100644
--- a/dev-python/reportlab/reportlab-4.4.3.ebuild
+++ b/dev-python/reportlab/reportlab-4.4.5.ebuild
@@ -20,7 +20,7 @@ SRC_URI+="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/charset-normalizer[${PYTHON_USEDEP}]
diff --git a/dev-python/rpds-py/Manifest b/dev-python/rpds-py/Manifest
index 22ba0a6735c3..accb0d4221a4 100644
--- a/dev-python/rpds-py/Manifest
+++ b/dev-python/rpds-py/Manifest
@@ -28,9 +28,12 @@ DIST python3-dll-a-0.2.14.crate 103489 BLAKE2B a2868aa62d9b5f33ba0ab3be85f486e7b
DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
DIST rpds-1.1.1.crate 75894 BLAKE2B d53d2686f3807331203213469b7558bf9db82d3ace76979ed5f019a9a81b3b923607698855d9eec584a59f967ff429f5b125d2e3c1d30bcb089b12d6e5764600 SHA512 21624cd1716945475be938632260535842c5f8220662c9eb31e39440a5e90741551d7cfa9581de2cfe736cacc70ccb0742c98911bfb8e108197638fa51768f85
DIST rpds-1.1.2.crate 70377 BLAKE2B deec0cdfc97b7a228be05ebb48116b0e5b3a33753c4fa1a3aa4dae025f07b6d9aac84a79d63cfded33b67e65efad3922938464c860e4441bf48f35a2594ba93a SHA512 1a6395514225230cab5e0565dcdf71f6d390444348ecc5c810a057dcd5ce7b1d7ad708f6e16af129957db940a379e72f497fba12129222344daec16d58cf9535
+DIST rpds-1.2.0.crate 72664 BLAKE2B a5719593d003f54f9d5b1a4e6020b2908f46cdca239a1c3cc0f02bfd5bf6bcd102bf87aedb958cb113543467c0cb724eccd420552e806d37b17ef6048c88bd5f SHA512 2149622473b2a684b023e71811f3552a7f70e27a24831539554422389162631dae2c538c1c2569d8d268debde0ce1d5efc6dd002a9033dad78e0c46652b277e0
DIST rpds_py-0.27.1.tar.gz 27479 BLAKE2B 3404f57cce6c92cf6f2df8a080d03a8d891de4bf6b3b12d7df7f5e2058acace42e3d56a4bfb04f661ec8d84e81cbbd60a2b9265e14a91a4e81023b9c397222f3 SHA512 3d252925cc4a54c7d9c5908332f8c85efbdb1a0756fceec730bb844587c4421a46f731fc44e9578eba756c272f705bf879bec247d5cffc8ad7ae8ea3bfefd1ec
DIST rpds_py-0.28.0.tar.gz 27419 BLAKE2B c1c3c4b0c59c6233ca69367f947a910af17ab1ed2e51b1b50279f189019a9a83e6da08965c307383f497ac77e9d46d7a0fdc651acd416fa73c9ce1e1f3f4155a SHA512 ac8c6e008538dbed57f26293548de9b76224dd4a09636f8bd56ab4d3426e18ac9161fc49d3f6b36fb815feb9c8b104342a361bf3acee1005b8571123a8929408
DIST rpds_py-0.28.0.tar.gz.provenance 9160 BLAKE2B 3b87a5b106ec0ed943ea3bca08b0cee237073aa53787ad4d616a0da3f9b69ede78285f5e8fc5dec67ed4b75dddaf6b9a7bf0bf5b264c79e879116acfa27241db SHA512 40c01ef362a2280a296a26598434808342c411ee516d836df5ec13618ef55abfecbf51282a6523eb32c8b4e865a497a6a853c09d69234fc5e171917769632ad3
+DIST rpds_py-0.29.0.tar.gz 69359 BLAKE2B 47cc277403c8f2eb0f75a7e372fa6931a437622afd8f1fd650bb4a69781c164243284bcb36c939c780ecf1f5dbf208049d21222fe0650fecc9b81b95bd11bb0c SHA512 fee809ab1cf4858e1f6092d47da663b3302f292f56bfd975505551339a4adf2f66a6dea33fa046987720506e6139c767d6542e5daaec914d3b0f40673d3697ce
+DIST rpds_py-0.29.0.tar.gz.provenance 9003 BLAKE2B 9ee09de37e493554c6556e0192eb8cdf3e345492c082c03d04422897d2766e9952f53a67d6291066ec11bfa792546297be8627216e982202f6cf4bb443c19398 SHA512 bdd980aabcd8b490369960f9a32acba5d947137c82e30ed2391d6c5e7bf76b686959b1ad23636e03c345e739cb148f2d426abfe90850df4f777030e705a993b0
DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
DIST syn-2.0.101.crate 299250 BLAKE2B 7018cdede66dca82e7d7a7e07e52a178687957fcfd69f1a2862094497d2fb9d78ada14b94761679bbc5f6c76c808a63e948ed071e4f65c2f9580a40bf58c9426 SHA512 05e4233a51f4d229dd4c9bd23c5224c42ec5554d02fd316dad10dfdb876aa1d379c7ea30b1ace979537da91ee746ca4fdcef7690885f83fd41ec8c9dc5984101
DIST syn-2.0.106.crate 301514 BLAKE2B 6b28b30ee067c23dc4bd1b38365d14c1700245c974e785173965b0822301966d642b36bdda25210d61f17a99fc71eb81e29a56c89d1649773908bae32778fb1f SHA512 e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c
diff --git a/dev-python/rpds-py/rpds-py-0.29.0.ebuild b/dev-python/rpds-py/rpds-py-0.29.0.ebuild
new file mode 100644
index 000000000000..4680e9ce2c16
--- /dev/null
+++ b/dev-python/rpds-py/rpds-py-0.29.0.ebuild
@@ -0,0 +1,65 @@
+# 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/crate-py/rpds
+PYTHON_COMPAT=( python3_{10..14} )
+
+CRATES="
+ archery@1.2.2
+ autocfg@1.5.0
+ cc@1.2.34
+ heck@0.5.0
+ indoc@2.0.6
+ libc@0.2.175
+ memoffset@0.9.1
+ once_cell@1.21.3
+ portable-atomic@1.11.1
+ proc-macro2@1.0.101
+ pyo3-build-config@0.27.1
+ pyo3-ffi@0.27.1
+ pyo3-macros-backend@0.27.1
+ pyo3-macros@0.27.1
+ pyo3@0.27.1
+ python3-dll-a@0.2.14
+ quote@1.0.40
+ rpds@1.2.0
+ shlex@1.3.0
+ syn@2.0.106
+ target-lexicon@0.13.2
+ triomphe@0.1.14
+ unicode-ident@1.0.18
+ unindent@0.2.4
+"
+
+RUST_MIN_VER="1.85.0"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Python bindings to Rust's persistent data structures (rpds)"
+HOMEPAGE="
+ https://github.com/crate-py/rpds/
+ https://pypi.org/project/rpds-py/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
diff --git a/dev-python/ruamel-yaml-clib/Manifest b/dev-python/ruamel-yaml-clib/Manifest
index 9555eec985e5..3982c2d350ec 100644
--- a/dev-python/ruamel-yaml-clib/Manifest
+++ b/dev-python/ruamel-yaml-clib/Manifest
@@ -1,2 +1,2 @@
-DIST ruamel.yaml.clib-0.2.12.tar.gz 225315 BLAKE2B fdba5da04b387f5d983f3e31ff192d96d20d0c8f97622406bdde8515c59fe35995b031affe86c6eca59f1367548fa8aa87c4f19c378b2cddf5706a870b956509 SHA512 36715cfaa663f9948034d7eb64f1b9e9cf69971e27e5ac1f2cd54234c8889c91416fe95aa3f5cce44eb00c9c383f458457c3f5ba9e3afa3e5637c118ec2e5113
DIST ruamel.yaml.clib-0.2.14.tar.gz 225394 BLAKE2B 588eea54fcf133249255a2e0376f9d4e2aa5a4d15e49aeec4fc1a524eba02af70232eeaec113b49a8d7b17d538fd4ebb8973d2e7d666206fd3119d4f0be56abf SHA512 0be9be1c26c0d5cdb686ced8b16b0eb4efe59cafa6eb8d3378cdbcdbb0a5d70ebb578e5e48c4c8171817fde7c503c75396829c6dad8dcff9e3724dedd6363cb5
+DIST ruamel_yaml_clib-0.2.15.tar.gz 225794 BLAKE2B 0205edad77c7a392fa10fb88b2ced8846b4e50ecbc6fbc1d36c23d4187785ed47636cb5a31b4d264325bb4286d90e38c54659a0face9f86c75492bbf74f53f86 SHA512 255fd73b5a50e4131803db7c344b49555f509f06f29d152cc17169d79522771265613153de4a8649eb298a1b9504a8e89e1e6d04e137daa63b7762ccc7865a2c
diff --git a/dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch b/dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch
deleted file mode 100644
index 55329b596155..000000000000
--- a/dev-python/ruamel-yaml-clib/files/ruamel-yaml-clib-0.2.12-py314.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -r df8c53ddf0d3 setup.py
---- a/setup.py Sun Oct 20 11:56:33 2024 +0200
-+++ b/setup.py Wed May 28 15:14:40 2025 +0200
-@@ -75,9 +75,6 @@
- print('{:%Y-%d-%mT%H:%M:%S}'.format(datetime.datetime.now()), file=fp, end=' ')
- print(*args, **kw1)
-
--if sys.version_info >= (3, 8):
-- from ast import Str, Num, Bytes, NameConstant # NOQA
--
-
- def literal_eval(node_or_string):
- """
-@@ -98,14 +95,8 @@
- raise TypeError('only string or AST nodes supported')
-
- def _convert(node):
-- if isinstance(node, Str):
-- if sys.version_info < (3,) and not isinstance(node.s, unicode):
-- return node.s.decode('utf-8')
-- return node.s
-- elif isinstance(node, Bytes):
-- return node.s
-- elif isinstance(node, Num):
-- return node.n
-+ if isinstance(node, Constant):
-+ return node.value
- elif isinstance(node, Tuple):
- return tuple(map(_convert, node.elts))
- elif isinstance(node, List):
-@@ -114,8 +105,6 @@
- return set(map(_convert, node.elts))
- elif isinstance(node, Dict):
- return {_convert(k): _convert(v) for k, v in zip(node.keys, node.values)}
-- elif isinstance(node, NameConstant):
-- return node.value
- elif sys.version_info < (3, 4) and isinstance(node, Name):
- if node.id in _safe_names:
- return _safe_names[node.id]
diff --git a/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild b/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.15.ebuild
index 3e00e620ddfc..dea9b5360112 100644
--- a/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.12.ebuild
+++ b/dev-python/ruamel-yaml-clib/ruamel-yaml-clib-0.2.15.ebuild
@@ -5,7 +5,6 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
PYPI_PN=${PN//-/.}
PYTHON_COMPAT=( python3_{10..14} )
@@ -21,17 +20,12 @@ S=${WORKDIR}/ruamel_yaml_clib
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
"
-PATCHES=(
- # https://sourceforge.net/p/ruamel-yaml-clib/tickets/45/
- "${FILESDIR}/${P}-py314.patch"
-)
-
src_unpack() {
default
mv "ruamel.yaml.clib-${PV}" ruamel_yaml_clib || die
diff --git a/dev-python/shtab/Manifest b/dev-python/shtab/Manifest
index a47248fa2104..08b66bed9f61 100644
--- a/dev-python/shtab/Manifest
+++ b/dev-python/shtab/Manifest
@@ -1 +1,3 @@
DIST shtab-1.7.2.tar.gz 45751 BLAKE2B 420f1249456ee954266e5071da7eded9abbaf64d0a525b8c0b7dd49a0c6e61b5b81fb737493e7b44c3ae6f42dc76d2e7be4e407198bc9feecbfa05283cdd2481 SHA512 a9b94774430d70dfab9cbfe9870c7d06e6589571523915a7bd460d1129ce606dec41692fbeeed4f4c86c0e07caa2200c243a234711d70128d3cb969bfa2197c3
+DIST shtab-1.8.0.tar.gz 46062 BLAKE2B 513c1b12a7fe511c1515d146180bfe8f26bf724f768c8db3c0a1bca121525a9b1e52a098f304beb1d855689dd05df8691f686331904876ec2bc27a610f5c91b2 SHA512 4daf9b3a95ab309400aa466fa599c49cceb1a746d64712c753e05e36bd3e53f69a585e9ef15c57dc031709ff01b545946bf57ee21f8e34c52546850b132f0403
+DIST shtab-1.8.0.tar.gz.provenance 9212 BLAKE2B 6f2c759c9e4b0583d786043598c7c9f7678c5533dfa1e54d6286a076eaccd8112dfb0aaa4cd7620aef70bb603ae23005d49c2db3aaa8eff9911afc4159e78628 SHA512 f30c2838b11f548e8e11be363b0563c7475f48dcb47e846a5697872013efcae20112b46c8f9505248ca91823815baea42dd8100e30b955921743433329bbfcca
diff --git a/dev-python/shtab/shtab-1.8.0.ebuild b/dev-python/shtab/shtab-1.8.0.ebuild
new file mode 100644
index 000000000000..39a3c251837c
--- /dev/null
+++ b/dev-python/shtab/shtab-1.8.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2024-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/iterative/shtab
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Automagic shell tab completion for Python CLI applications"
+HOMEPAGE="
+ https://github.com/iterative/shtab/
+ https://pypi.org/project/shtab/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ # Disable pytest-cov
+ epytest -o addopts=
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 0da8e5449755..325db66b0bdb 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -3,3 +3,4 @@ DIST sqlglot-26.33.0.tar.gz 5353340 BLAKE2B 18ace866ec89ced24911803497e8cb5c55fc
DIST sqlglot-27.24.2-crates.tar.xz 8973180 BLAKE2B f893ebe4b94d4c2ab94f8fa902e51066e861511f698b24660d5becd31a98837c5a7f23a3d80c0716e8017012ae61f7202440c0092e1417e5f61b62e2e9f4260b SHA512 6a92b1ba2fbb51eac170db7a927927f8a06f184ebf820107a813c9cfa4dcdbea794199090a33986b48f5f00b3f43b404b7e1d26f5bf9663c53cb2b8f134d69af
DIST sqlglot-27.28.1.tar.gz 5498876 BLAKE2B 7adc2c5fe063f3ba98ad9f37471c2a0d4eed36c4a110cfde2531783dc17118f495d111f0f27eb37f6562c6db7e8b5eb20689d25b71d01edafa51c3bf265ece16 SHA512 e8d2d43622906510dc003c62c074336e19631c679b7c77f7afd527115744a0076c14cf179bf1d3929a15bd8af5e26d125e34cb286274ee047f8b4da19fb0859a
DIST sqlglot-27.29.0.tar.gz 5503507 BLAKE2B f9c92b8f287ca4c99c792d005e62846afd669ba27b5d09042de06c8c3fa5e46b21abdf5134cc81ae3ae2cb13d0a5997c56ac07c14e5fb938544d5dbc08c70632 SHA512 5fc7a8a81b39a2dba007b501f1f5c2de9fa1e74b39d44e1bea706491db1ead0329aa2fbfb7c4997a50458137af70d259a227a8662ac26ba2904dde2b66922bb1
+DIST sqlglot-28.0.0.tar.gz 5520798 BLAKE2B 3dffa572e58380437e03b9cca2a7e0d3bdab70f4543cb7bbec37306143db2ea8abb2dd85771b2833ffd92172b4a962861060e9f8c64c58d53d5d0433bac1817c SHA512 6e39af720b56a5d0ee617d96f5dabc89b0638f04ca9a2d92138e6ca833b73e88016e6d94f19726540bcb55a60290d37a4fcd26f59589f46697a110177d48ae20
diff --git a/dev-python/sqlglot/sqlglot-28.0.0.ebuild b/dev-python/sqlglot/sqlglot-28.0.0.ebuild
new file mode 100644
index 000000000000..994fd0fba3eb
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-28.0.0.ebuild
@@ -0,0 +1,93 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+CRATE_PV=27.24.2
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${CRATE_PV}/sqlglot-${CRATE_PV}-crates.tar.xz
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016
+"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index 47fb2e3771f1..4882b971a775 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -1,3 +1,4 @@
DIST stripe-13.0.1.tar.gz 1263853 BLAKE2B f210b2c69afbf5d25b78857f125e5cf28ec6189fe446065e5d069448a808f5c8269d0461a09d37fa74ed15d8f112d00814a0735e2be524e4ae7c67b4f9b70f9f SHA512 ae747f381433cebe577a312be25aaf8cbf6b46a993fcae5ceaa372ccaa41ae77f80441c3036045db3d85d6d591af38d82c652f448d81cd630103e5e745d98f35
DIST stripe-13.1.2.tar.gz 1357500 BLAKE2B cc3b56b85f4852813e882e06b18cb0fe522ed252421c58bd2433661d58abb621b8b43ccdb441eac44587f67c5b5e18be773e42e503d58beae8d3a391e04e5b01 SHA512 57eadf645cdbddc91777fae1a97d0e6f612c3d8533201cb2c6110a549a672ac2f27c5346930e4f14345ab07644f6254c367192c1d3d933fe32fc6c8831a50c4a
DIST stripe-13.2.0.tar.gz 1357785 BLAKE2B 5462cd451f111878c4a12019a1e8efd515c25a93d0c10dd0a59ae9fb1d5a94ebfb66dbc3e76f1bf822ff8713fa05027f08974545c08a559486a9cbaec7e4ec97 SHA512 3cb687d6a1f45c0cbdc5ed301f5751d3c2499f8524e03e429aca54d11c4ab8735a9fd81e18b56829c479a3c68dce43dd5c4bd86c82c9d4ed4144dbc4ac2b5bd1
+DIST stripe-14.0.0.tar.gz 1362403 BLAKE2B 483df8183dc4c601ff01464a769aa3d1a1fde6868aaa515984fb8357581a2ade3bf31cd385ec362c3a735bd6efadb60d15ce6d191ca8851c4b8b0901a22d76fd SHA512 1a523d1760a60569b13c2345ffdad75d28d64b8d04ace652cb4977498a5837938887825003a6b3311c263bbafb0e6d4396fc241043934e08384280995bc10044
diff --git a/dev-python/stripe/stripe-14.0.0.ebuild b/dev-python/stripe/stripe-14.0.0.ebuild
new file mode 100644
index 000000000000..5b0096f2ce7b
--- /dev/null
+++ b/dev-python/stripe/stripe-14.0.0.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Stripe Python bindings"
+HOMEPAGE="
+ https://github.com/stripe/stripe-python/
+ https://pypi.org/project/stripe/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="telemetry"
+
+RDEPEND="
+ >=dev-python/requests-2.20[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5.0[${PYTHON_USEDEP}]
+"
+# please bump dev-util/stripe-mock dep to the latest version on every bump
+BDEPEND="
+ test? (
+ >=dev-util/stripe-mock-0.197.0
+ dev-python/aiohttp[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ net-misc/curl
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-mock )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ if ! use telemetry; then
+ sed -i -e '/enable_telemetry/s:True:False:' stripe/__init__.py || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_http_client.py::TestLiveHTTPClients::test_httpx_request_async_https
+ 'tests/test_integration.py::TestIntegration::test_async_raw_request_timeout[asyncio-aiohttp]'
+ # timing
+ tests/test_integration.py::TestIntegration::test_passes_client_telemetry_when_enabled
+ )
+
+ epytest tests
+}
+
+src_test() {
+ local stripe_mock_port=12111
+ local stripe_mock_max_port=12121
+ local stripe_mock_logfile="${T}/stripe_mock_${EPYTHON}.log"
+ # Try to start stripe-mock until we find a free port
+ while [[ ${stripe_mock_port} -le ${stripe_mock_max_port} ]]; do
+ ebegin "Trying to start stripe-mock on port ${stripe_mock_port}"
+ stripe-mock --http-port "${stripe_mock_port}" &> "${stripe_mock_logfile}" &
+ local stripe_mock_pid=${!}
+ sleep 2
+ # Did stripe-mock start?
+ curl --fail -u "sk_test_123:" \
+ "http://127.0.0.1:${stripe_mock_port}/v1/customers" &> /dev/null
+ eend ${?} "Port ${stripe_mock_port} unavailable"
+ if [[ ${?} -eq 0 ]]; then
+ einfo "stripe-mock running on port ${stripe_mock_port}"
+ break
+ fi
+ (( stripe_mock_port++ ))
+ done
+ if [[ ${stripe_mock_port} -gt ${stripe_mock_max_port} ]]; then
+ eerror "Unable to start stripe-mock for tests"
+ die "Please see the logfile located at: ${stripe_mock_logfile}"
+ fi
+
+ local -x STRIPE_MOCK_PORT=${stripe_mock_port}
+ distutils-r1_src_test
+
+ # Tear down stripe-mock
+ kill "${stripe_mock_pid}" || die "Unable to stop stripe-mock"
+}
diff --git a/dev-python/time-machine/Manifest b/dev-python/time-machine/Manifest
index 059f25166e48..2865b664faa4 100644
--- a/dev-python/time-machine/Manifest
+++ b/dev-python/time-machine/Manifest
@@ -1,4 +1,3 @@
DIST time-machine-2.16.0.gh.tar.gz 30522 BLAKE2B 71b1d2848bd0a72d193b262299976da4aeac3deb52776ebcc855dfc9e6eabc8d9459c123980d7b0b9e29bc2df66193f287a4817ec351ae43994b969731da7bc9 SHA512 19b764cccdff07056a7d42841da576d90037661a9f124e3fbab408bfa61dccf4b51b88a7e0741c87b03e7a8cc3306bb0ed32bd66588e45c9ab7e9d9cb5ba44ae
-DIST time-machine-2.17.0.gh.tar.gz 72389 BLAKE2B b1c926c691086bddfefec77b101a0f99404c4d48907ae07e380a4dea2dee42b04543efc357759c10758bd8b2ee1f8989af21fb024d9e4534f4d76d7394a4b582 SHA512 adf7236588daf3362abce6034c1ee3ed60c0533b4340010ad62d83d2480c9082a17653ae1efd2db6bd04b233e33a9fd7e6fc2e8d2fea6fca05c31543e9447c35
-DIST time-machine-2.18.0.gh.tar.gz 77005 BLAKE2B 9bab547de40fabc0f412ed97ab8829a991974ae0c8644a6520c4aa1270c9c822f58ecfab30fda12b03cf97f08ad813a779974742dff09624bbbec1d2ac74ff4e SHA512 ccc510a2b9678c651546e186f21a6e69042e67318dea25904126c3ff8d97ca1e5924b3409f6cde0d9792b2a27f5a3d371de91366e944af28fda7de518a0a6fea
DIST time-machine-2.19.0.gh.tar.gz 78404 BLAKE2B 3682f71881c6ca619269a827fb6b0bb4af27deef42a128e67784cfbec92f73523463f25341b1afaf92591578d4ec50e75593cba54b663cae120188b35918ce91 SHA512 1efa686a0b647cede3ee20a89bfe03b1be7b97042a3e75939fa26665f8a781c99bc96f98fdbeeedba6e5ca62521f9e7283a82af25e412c17099235e84c64eed6
+DIST time-machine-3.0.0.gh.tar.gz 75674 BLAKE2B 5111bf4bc2de87ad94b3bbb017ba4f4877eb5ddd9998110cc49071dbcfe0b966f6e4726a3a5c9192e0ddd79fb7279d2d3ecb2df9d745e6d8186bc473efbfac34 SHA512 ac40d598810124555c68abf5d286e5ae42669294f912fa2967e2088edea1544b11cd9f4f64d60d4ad8c256be0db151b30976baf665d7d1cd6362af6c85a239c4
diff --git a/dev-python/time-machine/time-machine-2.17.0.ebuild b/dev-python/time-machine/time-machine-2.17.0.ebuild
deleted file mode 100644
index 7e27c9741488..000000000000
--- a/dev-python/time-machine/time-machine-2.17.0.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2022-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="Travel through time in your tests"
-HOMEPAGE="
- https://github.com/adamchainz/time-machine/
- https://pypi.org/project/time-machine/
-"
-SRC_URI="
- https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~riscv ~x86"
-
-RDEPEND="
- dev-python/python-dateutil[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/tokenize-rt[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( "${PN}" )
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # https://github.com/adamchainz/time-machine/pull/529
- tests/test_cli.py::TestMain::test_main_help_subprocess
- tests/test_cli.py::TestMain::test_no_subcommand
-)
diff --git a/dev-python/time-machine/time-machine-2.18.0.ebuild b/dev-python/time-machine/time-machine-3.0.0.ebuild
index 4f3d6fc22390..07734346dce8 100644
--- a/dev-python/time-machine/time-machine-2.18.0.ebuild
+++ b/dev-python/time-machine/time-machine-3.0.0.ebuild
@@ -21,16 +21,15 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~x86"
-RDEPEND="
- dev-python/python-dateutil[${PYTHON_USEDEP}]
-"
BDEPEND="
test? (
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
dev-python/tokenize-rt[${PYTHON_USEDEP}]
)
"
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
EPYTEST_PLUGINS=( "${PN}" )
distutils_enable_tests pytest
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 148406145016..064b1fd3579e 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -1,3 +1,4 @@
+DIST uv_build-0.9.10.tar.gz 335784 BLAKE2B 17b88b25081dcd8f95aa1e35f871663ba7f5910ed78c2d2aa09cefca9d4a7db26bf0731fe2ff468ff4ec049c251485116fe38ba48c8b04ea218bbe213d6c7253 SHA512 0a202b67a19054bd01830d2cfb3382cde90c0edf54118b179ef2bf0d4ea04730dafb7683e4bf932c8a3c7779c35b0deec96bb0fa60cde8baf6a39e6c16420378
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.10.ebuild b/dev-python/uv-build/uv-build-0.9.10.ebuild
new file mode 100644
index 000000000000..fe8e9650d15e
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.9.10.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 87a261e15523..a72c25e45f70 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -3,6 +3,8 @@ DIST reqwest-middleware-7650ed76215a962a96d94a79be71c27bffde7ab2.gh.tar.gz 42520
DIST rs-async-zip-285e48742b74ab109887d62e1ae79e7c15fd4878.gh.tar.gz 37003 BLAKE2B c4aed18d82641ced2771ad8b8e800c45b1ded279e8ba1874ec9766907d042ae13b460beac739ced6e31c03a647e4238af96fb41e8c0dff4c5d4dd7f59c0ebbff SHA512 d6dd699f43ca6e23a4c8abb8673b37d3983081a8c78545492ea3c1d0b35e3a491277c341df6dd64fb7efaec3b23eb479dede99e9b41016b5504d1a6dc9fbc617
DIST rs-async-zip-f6a41d32866003c868d03ed791a89c794f61b703.gh.tar.gz 37571 BLAKE2B 7ed7e59f826a3a1daf8b1157e4303f307878a84e4d2c8905dab9ba8b48cde5159cb04980a1fbf22aa80491e8160069223b251c84c1d95696c2aed5b02cdb8da2 SHA512 8eb19bc6780aff9dd0084df81fe3191b4cd7cd051cbe085b24bb237229af6aa94db1fc88bdc386866d192b0c15e148e3bc014b2f5d091833852be09848fcdda3
DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68
+DIST uv-0.9.10-crates.tar.xz 46325424 BLAKE2B 44d29933a889fc6cdd94d78a253d238b3852a2b22257f0cd0da28f4de5058aca7093756d9feaa8036b8085bd8d8853f86ee44c16cc8f43e0b19c75720e266d8d SHA512 ddef0bd35dc392f693a6cac4bb88aebcd5252fd31c4fab32303f582e579228ac4531e1bdf5b7c2ab0278dbc607e737d3663ae682f088fcfc60a81274e28456ff
+DIST uv-0.9.10.gh.tar.gz 4791512 BLAKE2B 3e4b6499992c7a14741d3c05a9a99703b37fcdeda5f9f8db3becaa2c44e3504c1f0170ca12e2c45cd8a6551cb5aa2b6d59a0ff8ade6e7c3341e5941a2ddd56fa SHA512 d5359ab37c2e7b91ded7875544b637cf1d46164349e36004a801e75aa501dfb5fa68458e7b94a1de947ef1cf3d0c18990695c8d2a2ca37d84f5ecc78ea854689
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.10.ebuild b/dev-python/uv/uv-0.9.10.ebuild
new file mode 100644
index 000000000000..253d1ec065af
--- /dev/null
+++ b/dev-python/uv/uv-0.9.10.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 d34d38dc73c3..73ea1c5290a3 100644
--- a/dev-python/xarray/Manifest
+++ b/dev-python/xarray/Manifest
@@ -1,6 +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.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
diff --git a/dev-python/xarray/xarray-2025.11.0.ebuild b/dev-python/xarray/xarray-2025.11.0.ebuild
new file mode 100644
index 000000000000..15258463a92d
--- /dev/null
+++ b/dev-python/xarray/xarray-2025.11.0.ebuild
@@ -0,0 +1,132 @@
+# 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/pydata/xarray
+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=
+}
diff --git a/dev-python/zope-hookable/Manifest b/dev-python/zope-hookable/Manifest
index 8cf051b2a253..48365f428050 100644
--- a/dev-python/zope-hookable/Manifest
+++ b/dev-python/zope-hookable/Manifest
@@ -1,2 +1,3 @@
DIST zope_hookable-8.0.tar.gz 20436 BLAKE2B 9cb17318b9745c8ba94d1c56a70636bbd0644be0c3d16fd099aa58cae68dcb7c57dd70ce3fa861855586b5b7426970e635598885beef2e51f559ba815b2e2ef4 SHA512 ae8c0779532e0ced1713a94228e82db440c1e67974b8837788bb56858106c365750bab9611b4b4754ac91dbf4b0ff630fcf6843b380d099fcda7297e4157ccbd
DIST zope_hookable-8.1.tar.gz 20554 BLAKE2B 2e506ff43617a8f5ea1b1252aa74f544a9a1711102382f47b21d92fe645c0f838c7bc82402f7bae1f71617727a2b846ec331b2e2bba0d51631621d3494715231 SHA512 04d5f239d3f3f33cd1c710b5c38fbeb6b2763784aa83327186e01477f701e00ffefbcad195d1991bee3c8b90bd91978243614bb5dde2730cc903ca9578d8ac79
+DIST zope_hookable-8.2.tar.gz 19275 BLAKE2B 28693fefa56080ff4d081c15bd71f39fb61ebf3da17508dd934502a3c173114e3a687d61835708df35463153f783e1981adfc66e8fae83a7a7800d4df6ee8d58 SHA512 90eb4d2fb389de52f613a2dab83156d183b914d3be4253de67367693d1cec06d9c84e272acbc7742ca637c4a01401125c2864f2941b6549b4230fc0928d4cf0e
diff --git a/dev-python/zope-hookable/zope-hookable-8.2.ebuild b/dev-python/zope-hookable/zope-hookable-8.2.ebuild
new file mode 100644
index 000000000000..866e1e1d7e00
--- /dev/null
+++ b/dev-python/zope-hookable/zope-hookable-8.2.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Efficient creation of 'hookable' objects"
+HOMEPAGE="
+ https://pypi.org/project/zope.hookable/
+ https://github.com/zopefoundation/zope.hookable/
+"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/zope-testing[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ eunittest -s "${BUILD_DIR}/install$(python_get_sitedir)/zope"
+}
diff --git a/dev-python/zope-i18nmessageid/Manifest b/dev-python/zope-i18nmessageid/Manifest
index ad2d8a0ea052..9f5a99da2e26 100644
--- a/dev-python/zope-i18nmessageid/Manifest
+++ b/dev-python/zope-i18nmessageid/Manifest
@@ -1,2 +1,3 @@
DIST zope_i18nmessageid-8.0.tar.gz 26924 BLAKE2B 929b5df9de131ca5c5951a35f48b1092aa768c7a67cb9608dddf51bd2b7d1db4702d70591af3fb3fcdd9ac7db881245c89b69460d4a438ac3c0a3bdb8483d807 SHA512 a996ff5cc03c48fd8d203e7a67fce463958d404bbaa31d27103de2b60b847217f5f5e53e8fe4887cf8df36bf3854c5700466630eb5958c20eab7079874ad2285
DIST zope_i18nmessageid-8.1.tar.gz 26697 BLAKE2B 5f0911d91479ad608c2ce0365401a50dfeb2878564152e264e03bf7d191eea6aae9bd0aa291d786db08e54914846bda8ff4a212b862ac53cdfe3ce217c24221e SHA512 682f127f6f026a281ed9aefe68c3dd1b00d0e5c63b418d6ab399994335298148a08e7d788da20859405a42ce51c5895baa8c5e6f82875ed7f948ca37e0ee13b1
+DIST zope_i18nmessageid-8.2.tar.gz 24716 BLAKE2B 73751a2c466ea8331a47f6ce13920cf4fa47585c6962a66c20c721428c4955d3610151891e909447beec023195bc9edef613bb77bb2ec6b5933063204d1e568b SHA512 59c625f45f0b1819af27a29a455fd1a960e1ca3e7a62ddcd5e4b06f76e5398213ee4d4f5c5b30b2c03ce910dddf7f9cf18cd6a4ecd48a23978bfad574ac22037
diff --git a/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.2.ebuild b/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.2.ebuild
new file mode 100644
index 000000000000..7b70fab73d64
--- /dev/null
+++ b/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.2.ebuild
@@ -0,0 +1,34 @@
+# 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
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Zope support for i18nmessageid (tagging source of i18n strings)"
+HOMEPAGE="
+ https://pypi.org/project/zope.i18nmessageid/
+ https://github.com/zopefoundation/zope.i18nmessageid/
+"
+
+LICENSE="ZPL"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # force failure if extension build fails
+ sed -i -e "s/cmdclass={.*},//" setup.py || die
+}
+
+python_test() {
+ eunittest -s "${BUILD_DIR}/install$(python_get_sitedir)/zope"
+}