summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-11-05 19:02:56 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-11-05 19:02:56 +0000
commit864ccd3aba62b24728eb0b963d8a1093555475c0 (patch)
treebb5a89762d7f5ee123655bf5cdf9406b27dc1759 /dev-python
parent64f2ecf7f878941ddcb49fbeb10e26352844b683 (diff)
downloadbaldeagleos-repo-864ccd3aba62b24728eb0b963d8a1093555475c0.tar.gz
baldeagleos-repo-864ccd3aba62b24728eb0b963d8a1093555475c0.tar.xz
baldeagleos-repo-864ccd3aba62b24728eb0b963d8a1093555475c0.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/PythonQwt/Manifest1
-rw-r--r--dev-python/PythonQwt/PythonQwt-0.15.0.ebuild23
-rw-r--r--dev-python/beartype/beartype-0.22.2.ebuild2
-rw-r--r--dev-python/bitarray/Manifest1
-rw-r--r--dev-python/bitarray/bitarray-3.8.0.ebuild24
-rw-r--r--dev-python/blessed/Manifest2
-rw-r--r--dev-python/blessed/blessed-1.23.0.ebuild (renamed from dev-python/blessed/blessed-1.21.0.ebuild)16
-rw-r--r--dev-python/blurhash/Manifest1
-rw-r--r--dev-python/blurhash/blurhash-1.1.5.ebuild34
-rw-r--r--dev-python/boto3/Manifest2
-rw-r--r--dev-python/boto3/boto3-1.40.45.ebuild2
-rw-r--r--dev-python/boto3/boto3-1.40.65.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.40.66.ebuild53
-rw-r--r--dev-python/botocore/Manifest2
-rw-r--r--dev-python/botocore/botocore-1.40.45.ebuild2
-rw-r--r--dev-python/botocore/botocore-1.40.65.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.40.66.ebuild67
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.40.4.ebuild61
-rw-r--r--dev-python/cheroot/Manifest4
-rw-r--r--dev-python/cheroot/cheroot-11.0.0.ebuild1
-rw-r--r--dev-python/cheroot/cheroot-11.1.1.ebuild (renamed from dev-python/cheroot/cheroot-10.0.1.ebuild)16
-rw-r--r--dev-python/cheroot/files/cheroot-10.0.1-no-pytest-forked.patch72
-rw-r--r--dev-python/clang/Manifest2
-rw-r--r--dev-python/clang/clang-21.1.5.ebuild54
-rw-r--r--dev-python/cloudpickle/Manifest1
-rw-r--r--dev-python/cloudpickle/cloudpickle-3.1.2.ebuild39
-rw-r--r--dev-python/coverage/coverage-7.10.7.ebuild2
-rw-r--r--dev-python/cryptg/Manifest25
-rw-r--r--dev-python/cryptg/cryptg-0.5.2.ebuild92
-rw-r--r--dev-python/dbus-fast/dbus-fast-2.44.5.ebuild2
-rw-r--r--dev-python/environs/Manifest2
-rw-r--r--dev-python/environs/environs-14.5.0.ebuild (renamed from dev-python/environs/environs-14.3.0.ebuild)0
-rw-r--r--dev-python/fastbencode/Manifest17
-rw-r--r--dev-python/fastbencode/fastbencode-0.3.4.ebuild89
-rw-r--r--dev-python/fastbencode/fastbencode-0.3.7.ebuild (renamed from dev-python/fastbencode/fastbencode-0.3.5.ebuild)30
-rw-r--r--dev-python/flask-compress/Manifest1
-rw-r--r--dev-python/flask-compress/flask-compress-1.22.ebuild37
-rw-r--r--dev-python/furo/furo-2025.9.25.ebuild2
-rw-r--r--dev-python/google-api-core/google-api-core-2.25.2.ebuild2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.184.0.ebuild2
-rw-r--r--dev-python/grapheme/Manifest1
-rw-r--r--dev-python/grapheme/grapheme-0.8.0.ebuild26
-rw-r--r--dev-python/grapheme/metadata.xml16
-rw-r--r--dev-python/grpcio-status/grpcio-status-1.75.1.ebuild2
-rw-r--r--dev-python/guidata/Manifest2
-rw-r--r--dev-python/guidata/guidata-3.13.1.ebuild (renamed from dev-python/guidata/guidata-3.11.0.ebuild)8
-rw-r--r--dev-python/hishel/Manifest3
-rw-r--r--dev-python/hishel/hishel-1.1.0.ebuild73
-rw-r--r--dev-python/hishel/hishel-1.1.2.ebuild (renamed from dev-python/hishel/hishel-1.0.0.ebuild)0
-rw-r--r--dev-python/html5lib/files/html5lib-1.2_pre20240221-py314.patch41
-rw-r--r--dev-python/html5lib/html5lib-1.2_pre20240221.ebuild4
-rw-r--r--dev-python/hypothesis/Manifest2
-rw-r--r--dev-python/hypothesis/hypothesis-6.144.0.ebuild91
-rw-r--r--dev-python/hypothesis/hypothesis-6.145.1.ebuild91
-rw-r--r--dev-python/imageio/Manifest1
-rw-r--r--dev-python/imageio/imageio-2.37.2.ebuild104
-rw-r--r--dev-python/indexed-gzip/indexed-gzip-1.10.1.ebuild2
-rw-r--r--dev-python/indexed-gzip/indexed-gzip-1.8.7.ebuild2
-rw-r--r--dev-python/indexed-gzip/indexed-gzip-1.9.5.ebuild2
-rw-r--r--dev-python/internetarchive/Manifest1
-rw-r--r--dev-python/internetarchive/internetarchive-5.7.1.ebuild59
-rw-r--r--dev-python/internetarchive/metadata.xml4
-rw-r--r--dev-python/isort/isort-6.1.0.ebuild2
-rw-r--r--dev-python/libcst/Manifest18
-rw-r--r--dev-python/libcst/libcst-1.8.2.ebuild190
-rw-r--r--dev-python/libcst/libcst-1.8.6.ebuild (renamed from dev-python/libcst/libcst-1.8.4.ebuild)23
-rw-r--r--dev-python/lit/Manifest2
-rw-r--r--dev-python/lit/lit-21.1.5.ebuild46
-rw-r--r--dev-python/lz4/Manifest1
-rw-r--r--dev-python/lz4/lz4-4.4.5.ebuild49
-rw-r--r--dev-python/markdown/Manifest2
-rw-r--r--dev-python/markdown/markdown-3.10.ebuild (renamed from dev-python/markdown/markdown-3.8.2.ebuild)2
-rw-r--r--dev-python/mastodon-py/Manifest1
-rw-r--r--dev-python/mastodon-py/mastodon-py-2.1.4.ebuild61
-rw-r--r--dev-python/mastodon-py/metadata.xml8
-rw-r--r--dev-python/mautrix/mautrix-0.20.8.ebuild2
-rw-r--r--dev-python/moto/Manifest2
-rw-r--r--dev-python/moto/moto-5.1.16.ebuild114
-rw-r--r--dev-python/narwhals/Manifest6
-rw-r--r--dev-python/narwhals/narwhals-2.10.2.ebuild (renamed from dev-python/narwhals/narwhals-2.10.0.ebuild)0
-rw-r--r--dev-python/narwhals/narwhals-2.9.0.ebuild44
-rw-r--r--dev-python/nbxmpp/Manifest1
-rw-r--r--dev-python/nbxmpp/nbxmpp-6.4.0.ebuild35
-rw-r--r--dev-python/pbr/Manifest1
-rw-r--r--dev-python/pbr/pbr-7.0.3.ebuild70
-rw-r--r--dev-python/peewee/Manifest1
-rw-r--r--dev-python/peewee/peewee-3.18.3.ebuild81
-rw-r--r--dev-python/pillow/pillow-11.3.0.ebuild2
-rw-r--r--dev-python/pillow/pillow-12.0.0.ebuild2
-rw-r--r--dev-python/plotly/Manifest2
-rw-r--r--dev-python/plotly/files/plotly-6.3.0-test.patch27
-rw-r--r--dev-python/plotly/plotly-6.4.0.ebuild (renamed from dev-python/plotly/plotly-6.3.0.ebuild)11
-rw-r--r--dev-python/propcache/propcache-0.4.0.ebuild2
-rw-r--r--dev-python/psutil/Manifest2
-rw-r--r--dev-python/psutil/psutil-7.1.3.ebuild (renamed from dev-python/psutil/psutil-7.0.0.ebuild)7
-rw-r--r--dev-python/pydata-sphinx-theme/files/pydata-sphinx-theme-0.16.0-tests-ignorecase.patch81
-rw-r--r--dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.0.ebuild4
-rw-r--r--dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.1.ebuild6
-rw-r--r--dev-python/pyfakefs/Manifest1
-rw-r--r--dev-python/pyfakefs/pyfakefs-5.10.2.ebuild60
-rw-r--r--dev-python/pyftpdlib/pyftpdlib-2.1.0.ebuild2
-rw-r--r--dev-python/pyglet/Manifest1
-rw-r--r--dev-python/pyglet/pyglet-2.1.10.ebuild80
-rw-r--r--dev-python/pyicu/Manifest2
-rw-r--r--dev-python/pyicu/files/pyicu-2.15.2-gcc15.patch21
-rw-r--r--dev-python/pyicu/pyicu-2.16.ebuild (renamed from dev-python/pyicu/pyicu-2.15.2.ebuild)7
-rw-r--r--dev-python/pyopenssl/pyopenssl-25.3.0.ebuild2
-rw-r--r--dev-python/pyperclip/Manifest2
-rw-r--r--dev-python/pyperclip/pyperclip-1.10.0.ebuild61
-rw-r--r--dev-python/pyperclip/pyperclip-1.9.0.ebuild61
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.7.0.ebuild2
-rw-r--r--dev-python/pypy-exe-bin/pypy-exe-bin-7.3.20.ebuild2
-rw-r--r--dev-python/pypy-exe/pypy-exe-7.3.20.ebuild2
-rw-r--r--dev-python/pyroute2/Manifest1
-rw-r--r--dev-python/pyroute2/pyroute2-0.9.5.ebuild26
-rw-r--r--dev-python/pyxdameraulevenshtein/pyxdameraulevenshtein-1.9.0.ebuild2
-rw-r--r--dev-python/regex/Manifest2
-rw-r--r--dev-python/regex/regex-2025.11.3.ebuild (renamed from dev-python/regex/regex-2025.7.34.ebuild)7
-rw-r--r--dev-python/sphinx-tabs/sphinx-tabs-3.4.7-r2.ebuild2
-rw-r--r--dev-python/sshtunnel/files/sshtunnel-0.4.0-paramiko-4-compat.patch27
-rw-r--r--dev-python/sshtunnel/sshtunnel-0.4.0-r1.ebuild37
-rw-r--r--dev-python/sshtunnel/sshtunnel-0.4.0-r2.ebuild (renamed from dev-python/sshtunnel/sshtunnel-0.4.0.ebuild)4
-rw-r--r--dev-python/stripe/Manifest1
-rw-r--r--dev-python/stripe/stripe-13.0.1.ebuild2
-rw-r--r--dev-python/stripe/stripe-13.1.2.ebuild91
-rw-r--r--dev-python/textual/Manifest1
-rw-r--r--dev-python/textual/textual-6.3.0.ebuild4
-rw-r--r--dev-python/textual/textual-6.4.0.ebuild4
-rw-r--r--dev-python/textual/textual-6.5.0.ebuild102
-rw-r--r--dev-python/tox/tox-4.30.3.ebuild2
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.16.2.ebuild2
-rw-r--r--dev-python/types-psutil/types-psutil-7.0.0.20251001.ebuild2
-rw-r--r--dev-python/typing-inspection/typing-inspection-0.4.2.ebuild2
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/virtualenv-20.34.0-r1.ebuild (renamed from dev-python/virtualenv/virtualenv-20.34.0.ebuild)2
-rw-r--r--dev-python/virtualenv/virtualenv-20.35.0.ebuild129
-rw-r--r--dev-python/virtualenv/virtualenv-20.35.1.ebuild130
-rw-r--r--dev-python/virtualenv/virtualenv-20.35.3-r1.ebuild (renamed from dev-python/virtualenv/virtualenv-20.35.3.ebuild)2
-rw-r--r--dev-python/virtualenv/virtualenv-20.35.4-r1.ebuild (renamed from dev-python/virtualenv/virtualenv-20.35.4.ebuild)2
-rw-r--r--dev-python/xcffib/xcffib-1.11.2.ebuild2
-rw-r--r--dev-python/xxhash/xxhash-3.6.0.ebuild2
-rw-r--r--dev-python/zeroconf/zeroconf-0.148.0.ebuild2
143 files changed, 2222 insertions, 1027 deletions
diff --git a/dev-python/PythonQwt/Manifest b/dev-python/PythonQwt/Manifest
index c73538d70c28..e091d9b8dd37 100644
--- a/dev-python/PythonQwt/Manifest
+++ b/dev-python/PythonQwt/Manifest
@@ -1,2 +1,3 @@
DIST pythonqwt-0.14.5.tar.gz 1218803 BLAKE2B 5ca5032040b9afa6e49630760645e8f95bf732305c69f751a9a34a9384216fb77ffdb80870e6b14e78f70f88335ec70903d12fec5bccc1b6017c20159548e81e SHA512 53e6363f82b5e7f4830029b74228abe0dd4120aa09836d8766685e93749ad8377f347b54ce37eab0288e4efb9ce6f5d4097bdf7f863c8d517f8034951209b8ad
DIST pythonqwt-0.14.6.tar.gz 1218842 BLAKE2B c632a1e5bd714c1b94560df55ce86616831645b34ac1fd3dfe2e4d794532816a132d401c89c20eaee64c24a4c16a0defe840e6ec003bf05ab8c509426d202a30 SHA512 3d660baf79276a0b2f35abfec4f1c81d55e6ddec3dd803b68f1239deb33c5fc5f87c5584b6236009bc1b98e63ae306f36f75d663dff936620db38b648963a28f
+DIST pythonqwt-0.15.0.tar.gz 1221219 BLAKE2B 8db6a5a23fbfbe6a066e7d476c18576e06e22728b4c63c2d7fcb01df18936dbef2669ce6a1aacdde6035aea4e760fa334dc1ad3eaf483562d0ef17a0f304e026 SHA512 355ea2c3ec0c5de13fcdeadbaa79863a357a34271c57c8771249b0e2bbb5820aa156cd68fb3d3601721385239a0c2611b855a1fb0015bad890b7878a8c7b8d21
diff --git a/dev-python/PythonQwt/PythonQwt-0.15.0.ebuild b/dev-python/PythonQwt/PythonQwt-0.15.0.ebuild
new file mode 100644
index 000000000000..42692d5ba130
--- /dev/null
+++ b/dev-python/PythonQwt/PythonQwt-0.15.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Qt plotting widgets for Python"
+HOMEPAGE="https://pypi.org/project/PythonQwt"
+LICENSE="MIT"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+# Test directory seems to contain demo instead
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/pyqt6[${PYTHON_USEDEP},svg]
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/beartype/beartype-0.22.2.ebuild b/dev-python/beartype/beartype-0.22.2.ebuild
index 1c7627c6c666..9eadab5ba16b 100644
--- a/dev-python/beartype/beartype-0.22.2.ebuild
+++ b/dev-python/beartype/beartype-0.22.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
+KEYWORDS="amd64 arm64 ~riscv"
BDEPEND="
test? (
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
index 77bfdd5e3276..e9a0c70258f5 100644
--- a/dev-python/bitarray/Manifest
+++ b/dev-python/bitarray/Manifest
@@ -1,2 +1,3 @@
DIST bitarray-3.7.1.tar.gz 150474 BLAKE2B a9ec3964b7741b8020775c6da9232e71d53bf9bdfa95da522bde6c1b2104bd5fa596ed8e145d1f3b8bea75b2aceb231ccbc19e9b4d5055c5c07f087810a9fd77 SHA512 f13109670923f567cedbf56ce6c6259b8b970727fdee786df76f839ec613fba88c13e2b9d8352635f4351ede4b66c57edcc610ef710cf8cfbbd43e03614e25cd
DIST bitarray-3.7.2.tar.gz 150586 BLAKE2B 9fc9656dd2034c0649bc0dbd85aa3f007872bb1bf821b01c6d3356589f36b9f6d5fa5aa0a39040d2f703ed3e0966c4e77a615a9f2e04b6b10522084015fa8336 SHA512 066f3e5c816fa29d641544c34634052c28a8aa37fe88a76faf583ccd69fed33b34b99b9de67abb4b4e1fa4883fbf91dfac7a87ff464b5b4da3261e8d22ad22a5
+DIST bitarray-3.8.0.tar.gz 151991 BLAKE2B 5721536d392ec2843377476339d042992f948c3ba8823746d55acf2a1d1ba0c0c4446732c8735c47a170bd0828a6047a13674a5681bae208071bf2d8a0de0adf SHA512 c7825190a421a33ad7ed503b6dc259bfab675406a229c688c14c458165ff189d64b4601f269218c22cb89c665e1ee71bc2eda1f55317b4bfbeaa538893d03cf8
diff --git a/dev-python/bitarray/bitarray-3.8.0.ebuild b/dev-python/bitarray/bitarray-3.8.0.ebuild
new file mode 100644
index 000000000000..a6acdb940ee4
--- /dev/null
+++ b/dev-python/bitarray/bitarray-3.8.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Efficient arrays of booleans -- C extension"
+HOMEPAGE="
+ https://github.com/ilanschnell/bitarray/
+ https://pypi.org/project/bitarray/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+python_test() {
+ "${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/blessed/Manifest b/dev-python/blessed/Manifest
index c385663a72a9..6936deb53803 100644
--- a/dev-python/blessed/Manifest
+++ b/dev-python/blessed/Manifest
@@ -1,2 +1,2 @@
-DIST blessed-1.21.0.tar.gz 6660011 BLAKE2B 13e870896b70435fb86c5f4902c13bc13b4001817407da749b8e297ffcf4749bbfcc75a856a536fd47c75ff849f6260ce0a3d51946ce32275a81fa7bfbb91ab3 SHA512 e57b9ede0706875b578b080b6a7cc65c2882b52c5b5b85a13c615f8419618ceae6ded31228784f20504c5204c0b6897a9d7122c45785cd68982772169ee7222f
DIST blessed-1.22.0.tar.gz 6660050 BLAKE2B 7831755658fdd76521bde748184837889167333cdad4c552e12e3809af37c390f7d066d2cab284e20b7c01a62d768eecd92ee976ea44b0ced81225ac5afa2902 SHA512 0bdb10332420ab078151790b4b090d4d8703659ce34cdf9465dc160feb03b51eed49c4f5226b29e9290918ba5a4311626efe18028717f454e3b73e7f6bad9695
+DIST blessed-1.23.0.tar.gz 6745236 BLAKE2B 4d211d840f964412b62089d96c364409d6ce80e119841b037287f68f667f640aac56ad37dda19ac47bba54053faf26c6c81bab52d01acfa155e2e9738c0a658d SHA512 0b343d4b55df2aaa516e7c0ac41f0bf5ad00bdc282eeace219eb5515fe464770bb1d35fbed9f65705213394e679691c96aa957f93652d6dda6d1958d4074bfda
diff --git a/dev-python/blessed/blessed-1.21.0.ebuild b/dev-python/blessed/blessed-1.23.0.ebuild
index 3fd974ade81f..009a460df4fb 100644
--- a/dev-python/blessed/blessed-1.21.0.ebuild
+++ b/dev-python/blessed/blessed-1.23.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
@@ -16,13 +16,15 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
- dev-python/wcwidth[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.1.4[${PYTHON_USEDEP}]
"
distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=()
EPYTEST_XDIST=1
distutils_enable_tests pytest
@@ -37,8 +39,14 @@ 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
- COLORTERM= epytest --override-ini="addopts="
+ epytest --override-ini="addopts="
}
diff --git a/dev-python/blurhash/Manifest b/dev-python/blurhash/Manifest
index 38372e9d5c63..25d425747439 100644
--- a/dev-python/blurhash/Manifest
+++ b/dev-python/blurhash/Manifest
@@ -1 +1,2 @@
DIST blurhash-1.1.4.tar.gz 4738 BLAKE2B a25804938443e140e6d5a649e52c9c07cc91bb914be81efc33887161113f80362fba0b6711f520063461c7d4645022e559a11ecffdfeac9521a86cb23d279510 SHA512 eacef78927a1299bec19f73709435b1be55797273888e7856bbfd46d2aa1afa02f54505c15b76dcd6bd15a6817da0171aa412570c33c7ad487bfe10940ef3fd6
+DIST blurhash-1.1.5.tar.gz 50859 BLAKE2B 3cf43786e586ba011687ae40a22711ec18c60c1a53df3e425649a90659d18e723c7e0d9c35b3f6ae5313dcdf007622a0e6ba009035c98c7c51e1e2363defbe95 SHA512 84fef618a5bbb6b91a6e63665938e5b9c03a453dc1bd637863e2ffe560685b29a7a720309ebedb85a51db5686f8e22f6f399aeaede22b6578016e1d0ec410e63
diff --git a/dev-python/blurhash/blurhash-1.1.5.ebuild b/dev-python/blurhash/blurhash-1.1.5.ebuild
new file mode 100644
index 000000000000..526e27f7cc1b
--- /dev/null
+++ b/dev-python/blurhash/blurhash-1.1.5.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-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 pypi
+
+DESCRIPTION="Pure-Python implementation of the blurhash algorithm"
+HOMEPAGE="
+ https://pypi.org/project/blurhash/
+ https://github.com/halcy/blurhash-python
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ test? (
+ dev-python/pillow[jpeg,${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( )
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+ rm setup.cfg || die
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 759b84afca30..07e91421981e 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,3 +4,5 @@ DIST boto3-1.40.50.gh.tar.gz 1009112 BLAKE2B a5c1be6c13cacb8b0fa1a7b4c64a9fec9ca
DIST boto3-1.40.55.gh.tar.gz 1013401 BLAKE2B 86de575af2244a1b6ec317dac61a71ba2b5eee42f28ca3b3d1ded552cbad10bb22e96ae6bf49212be0ee5fb220342a8829213fff9ec19ce046aae0262f791ee9 SHA512 b9fe63173e21303d688add1a519b589072313d9f62d474418a0f99eee50a92d595e36e4f1d9cd8259884c9c4c21b29c55242c9583c21b7e8a4f0bdcd76c79841
DIST boto3-1.40.59.gh.tar.gz 1017517 BLAKE2B 31511c062e6991ba14b7bc7227f4b4a214da5bc6dd012139cebaeb53a34ad540a80b5216495b2796d34f6ad91fc135837c830d9151fb34aba15d6d1c552c415d SHA512 90cc90f03e743c57ddc195a2ff10282d3c99851b54cd475da95bb3eb120449b0c0aa59d920baf206142e151eba0250aad5fa9c1a6c1be9e550ea1be5b69f8566
DIST boto3-1.40.64.gh.tar.gz 1023920 BLAKE2B ca8af519caa4d3d4a20c808b3b9d263ad4d684327c29513d9fd37fc820f2d38c6a6450d6450d9a5355bdf4182e875a01939d69546821b00594b51b985fec31b5 SHA512 58010e4fbca89978aee5703e6e39ffe6116b31c1afb409335937de07e447e9027eea9523ac04e059c12cbf46b84ce88583b49356457978dc8d8491688fc2034d
+DIST boto3-1.40.65.gh.tar.gz 1024259 BLAKE2B c8226b3da53619822865158c103035319143fd9da6598609e89009f17da333d44d88ea87a6a0d470595f20d2fde92e7c6004582a11dd3fe119f328a7da2d7e1d SHA512 4fe5b707987734c4a7b8b9a8cbf44daeda777d0398c9ec7958d0f798560d74e33556a2a6b23e914ce4874e005ec703c9e0688e287956cf506c438606e53e80fc
+DIST boto3-1.40.66.gh.tar.gz 1024233 BLAKE2B da1ea6d102490204676e98eaa13ab7e91c550d1b249b2aca5f6c13aaf1e4fb6a19fe18b58e447ac231aaa0a188a1e76e8044697e082679f68541d4cae1a2f504 SHA512 137a6aa2d6e42d6ea777c44ea48e941f0327f071bede2a719e6af8d9e6eb34163c97669bcd4521429fd2e8031866f7d32646002b67221969e04804a3a2882548
diff --git a/dev-python/boto3/boto3-1.40.45.ebuild b/dev-python/boto3/boto3-1.40.45.ebuild
index cb388ebe6570..24ee9302a8e6 100644
--- a/dev-python/boto3/boto3-1.40.45.ebuild
+++ b/dev-python/boto3/boto3-1.40.45.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
>=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.40.65.ebuild b/dev-python/boto3/boto3-1.40.65.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.65.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.66.ebuild b/dev-python/boto3/boto3-1.40.66.ebuild
new file mode 100644
index 000000000000..cb388ebe6570
--- /dev/null
+++ b/dev-python/boto3/boto3-1.40.66.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 f3a4ea782820..85299e301b22 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,3 +4,5 @@ DIST botocore-1.40.50.gh.tar.gz 15222465 BLAKE2B 626b040c06531d96c1e0276e4bf6a70
DIST botocore-1.40.55.gh.tar.gz 15255349 BLAKE2B 22516d43d5737d92bbead967a13b4ce72fc6d35d928f9ac6d9906505412813b1649a5b5e73d14f90d7650682568ca3545e4b4b70b9908570725f4c3e2a4adaee SHA512 175dafe4d80c9283cfd4e81d74e59ad694356438b1a32c765baa78686b2afeb3f7e6083e76cdf488efcec0fbfb26967a408cb9a9cb48d0a0feb37977254a14a6
DIST botocore-1.40.59.gh.tar.gz 15284317 BLAKE2B f0e5b5ac06292c003ac6dcf0d8b4098b12cdeb2ea5ef8158aa1ce20000730e8f0bfb65a5156f64decaec9ef2d144f3aebbad1e2f2389e80d6d3cdef24f735f2e SHA512 04aabb134f24782274c3b44b0addc45523e36216372e07da271d282968200b66785c4ca92754a79a0ae26fc93c2448e032f0e498552eb8b344c618cd2be2221a
DIST botocore-1.40.64.gh.tar.gz 15230274 BLAKE2B 6156b2d80f6aee5df0d746bf3a2fe1bda6cee3435612d3db12a8134b9fdfa7a6c250752dadb562d1c804052ea6c775f802067d611ba1fb597e9d90439e219b64 SHA512 a8c7793146d25ae5cabe12fa5a65e8195f35029dd2f0dd9a6d012b8abfe41e1871808e1dd3d550ac153ce323c15c398b35a535780c5e143bbe5645b5eeb8c620
+DIST botocore-1.40.65.gh.tar.gz 15232368 BLAKE2B 87a15fb88b255cd44ff40e3089f28851d7dba8a63fbaa047a66b69d0196e44bcf382a12b0b9e36ef00cbbe8840e8ecacc562b156ff6d376ec00a7606e4e81969 SHA512 09779168d3adcdcf2c1e07ad9be56f6f368f4c63b9c99c4e4e09f46ae7ba407fc1883b2ec45144fb2d68db575acc60d20aa42ecf1c07fbb45195793ee62a0f26
+DIST botocore-1.40.66.gh.tar.gz 15233233 BLAKE2B d30bd8bf6766d3f08ebadb9cb1fe70bb39cf5569756ce68a054c0e4e0658014fbfae84de664eeb3890771e8f550f475d03d4a17b8b09814f0aa66e9c35ac3eb7 SHA512 fa50ab93e759a9eb716d941eca102c1c57d9243dbaef686f5510a836731d8489c781395e2edbc8a9af4388ab2de151dcb83528bcf350b8acff2f77e9d85be5e2
diff --git a/dev-python/botocore/botocore-1.40.45.ebuild b/dev-python/botocore/botocore-1.40.45.ebuild
index ee8074e67dce..83ae573e7294 100644
--- a/dev-python/botocore/botocore-1.40.45.ebuild
+++ b/dev-python/botocore/botocore-1.40.45.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
<dev-python/jmespath-2[${PYTHON_USEDEP}]
diff --git a/dev-python/botocore/botocore-1.40.65.ebuild b/dev-python/botocore/botocore-1.40.65.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.65.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.66.ebuild b/dev-python/botocore/botocore-1.40.66.ebuild
new file mode 100644
index 000000000000..ee8074e67dce
--- /dev/null
+++ b/dev-python/botocore/botocore-1.40.66.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/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index d8c03cf26b55..a3d76c493db9 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -3,3 +3,4 @@ DIST cfn_lint-1.40.0.tar.gz 3359732 BLAKE2B adcefc474df4c05558acf69892daf8335cca
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
diff --git a/dev-python/cfn-lint/cfn-lint-1.40.4.ebuild b/dev-python/cfn-lint/cfn-lint-1.40.4.ebuild
new file mode 100644
index 000000000000..5a4087d65a4f
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.40.4.ebuild
@@ -0,0 +1,61 @@
+# 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/cheroot/Manifest b/dev-python/cheroot/Manifest
index 0566680233f2..d2f0a7ccb153 100644
--- a/dev-python/cheroot/Manifest
+++ b/dev-python/cheroot/Manifest
@@ -1,2 +1,4 @@
-DIST cheroot-10.0.1.tar.gz 167586 BLAKE2B d8c882c3d16d29a2f97f35542321fd0aba4d0f9b310bc1359f9b832362e2d75424077d02d9a810a33a1bd10cf2ba9922a8baf8519dbd04c5e6f9b48edd3c3db1 SHA512 c878647a7bcf564509ee07481b3e371a2e09019d78240e79293bc4e0bfa872e8e2f947925c54eda56cc1790a3ff4d656c70066278c74073b44fc070627f5c71d
DIST cheroot-11.0.0.tar.gz 182140 BLAKE2B a33f192373ce9f223b7dc0ee51babfb09da921ec079cac323ca567af5e06aae68487b1977019df805931c868c4986b04c5a6084843602c2424fc58398a2df61d SHA512 143e0f7f5b9dd9a2ad668e7e935a44b41f9b586f0549476cad22a5b8b099b882d3dee0e008f2a53a6305901659e921f3dc788bdecd87a6e487a3539d61b15e20
+DIST cheroot-11.0.0.tar.gz.provenance 9040 BLAKE2B e19fc78bb5f8f4fac35d11a6d86db68a5b00c0e170e386dcb3871f0fc2faa399644aa998acc20b87dd50dcad4f2fc755dbaa5ef6afbd97dc8b9d93942436fb88 SHA512 32eeaf876fccc90fe4858fb4898ccef24d5e8334b09d8092dea830e57b0c606dea8e66a85069285ae7518693dc98e7d1077ed915aa5f475cfbd15baeb8d16ae6
+DIST cheroot-11.1.1.tar.gz 185168 BLAKE2B b3915229c0e922aab460166e8e6b66f2cddeaf9faeee0873a152c1a3f647c1194ef0bdfcbb79221a34a30e2a0c90e4c02e54de2c7429e1f36bb18c2e6472f162 SHA512 890b22ad09c76462c6d4037ff692c6d3c6ea110e020593106dd984e7795366520e3bd041ed08bdb793c3a5c9831206a7c362510b64a86ff3b870b4854c870f1a
+DIST cheroot-11.1.1.tar.gz.provenance 9169 BLAKE2B 37018fc55ed66096904e30964ab036912bafeeb5fb56bc26981a46e58f3e9cb9c7019f62ee5a15c093dd52f91bab157f07086fc3ff44eabffb2257d36579385e SHA512 3590256f5cd29a62560cc58ecbf44984072810379aff1eeabe339c4d55232fb8439d7e5d15eb7ccf94e6b25040346eb3ae6d8fb37517e578454546a98a7002ec
diff --git a/dev-python/cheroot/cheroot-11.0.0.ebuild b/dev-python/cheroot/cheroot-11.0.0.ebuild
index d8b66edb8f5b..584c681608a8 100644
--- a/dev-python/cheroot/cheroot-11.0.0.ebuild
+++ b/dev-python/cheroot/cheroot-11.0.0.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/cherrypy/cheroot
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
diff --git a/dev-python/cheroot/cheroot-10.0.1.ebuild b/dev-python/cheroot/cheroot-11.1.1.ebuild
index 0c51c800588a..dec7eda59506 100644
--- a/dev-python/cheroot/cheroot-10.0.1.ebuild
+++ b/dev-python/cheroot/cheroot-11.1.1.ebuild
@@ -4,6 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/cherrypy/cheroot
PYTHON_COMPAT=( python3_{10..14} )
inherit distutils-r1 pypi
@@ -17,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
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"
IUSE="test-rust"
RDEPEND="
@@ -30,7 +31,6 @@ BDEPEND="
dev-python/jaraco-context[${PYTHON_USEDEP}]
dev-python/jaraco-text[${PYTHON_USEDEP}]
dev-python/portend[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-1.11.0[${PYTHON_USEDEP}]
dev-python/requests-toolbelt[${PYTHON_USEDEP}]
dev-python/requests-unixsocket[${PYTHON_USEDEP}]
dev-python/urllib3[${PYTHON_USEDEP}]
@@ -41,17 +41,12 @@ BDEPEND="
)
"
-PATCHES=(
- # https://github.com/cherrypy/cheroot/pull/703
- "${FILESDIR}/${PN}-10.0.1-no-pytest-forked.patch"
-)
-
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
EPYTEST_XDIST=1
distutils_enable_tests pytest
python_prepare_all() {
- sed -e '/--cov/d' \
- -e '/--testmon/d' \
+ sed -e '/cov/d' \
-e '/--numproc/d' \
-i pytest.ini || die
@@ -93,6 +88,5 @@ python_test() {
)
fi
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p pytest_mock
+ epytest
}
diff --git a/dev-python/cheroot/files/cheroot-10.0.1-no-pytest-forked.patch b/dev-python/cheroot/files/cheroot-10.0.1-no-pytest-forked.patch
deleted file mode 100644
index c9cf1d13d73c..000000000000
--- a/dev-python/cheroot/files/cheroot-10.0.1-no-pytest-forked.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-https://github.com/cherrypy/cheroot/commit/a01ada64ae804519428d404d2fa0784392bc36ec
-
-From a01ada64ae804519428d404d2fa0784392bc36ec Mon Sep 17 00:00:00 2001
-From: "Jason R. Coombs" <jaraco@jaraco.com>
-Date: Mon, 15 Apr 2024 21:11:29 -0400
-Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20Stop=20using=20`pytest-forked`?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This plugin is incompatible with Pytest 7+, it's difficult to fix
-upstream and there is no timeline for addressing that.
-
-The patch also bumps the top version boundary of Pytest to 7.2 due
-to the pinned `pytest-cov` raising warnings.
-
-Fixes #502
-Resolves #511
-Closes #680
-Resolves #681
----
- cheroot/test/test_server.py | 9 ---------
- requirements/tests.in | 9 +++------
- 2 files changed, 3 insertions(+), 15 deletions(-)
-
-diff --git a/cheroot/test/test_server.py b/cheroot/test/test_server.py
-index e2e5f788c7..3c39773119 100644
---- a/cheroot/test/test_server.py
-+++ b/cheroot/test/test_server.py
-@@ -400,15 +400,6 @@ def test_reuse_port(http_server, ip_addr, mocker):
- assert spy.spy_exception is None
-
-
--ISSUE511 = IS_MACOS
--
--
--if not IS_WINDOWS and not ISSUE511:
-- test_high_number_of_file_descriptors = pytest.mark.forked(
-- test_high_number_of_file_descriptors,
-- )
--
--
- @pytest.fixture
- def _garbage_bin():
- """Disable garbage collection when this fixture is in use."""
-diff --git a/requirements/tests.in b/requirements/tests.in
-index 7192fdff71..9b3f4070ed 100644
---- a/requirements/tests.in
-+++ b/requirements/tests.in
-@@ -34,18 +34,15 @@ pypytools
-
- pytest-clarity
- pytest-cov==2.12.0
--pytest-forked>=1.2.0; sys_platform != "win32"
- pytest-mock>=1.11.0
- pytest-rerunfailures
- pytest-sugar>=0.9.3
- pytest-watch==4.2.0
- pytest-xdist>=1.28.0
-
--# pytest-forked is currently incompatible with pytest 7
--# Refs:
--# * https://github.com/cherrypy/cheroot/issues/511
--# * https://github.com/pytest-dev/pytest-forked/issues/67
--pytest >= 4.6.6, < 7
-+# pytest 7.2 introduces deprecations triggered by pytest-cov
-+# * https://github.com/cherrypy/cheroot/issues/682
-+pytest >= 7, <7.2
-
- # HTTP over UNIX socket
- requests-unixsocket
-
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index a61a6b1d4cf6..1c31485f030c 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -12,5 +12,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
DIST llvm-project-21.1.4.src.tar.xz 158939036 BLAKE2B b87eff4e3cb881d86aafcfdb46d85344ad6ae92d5c1e72c05282f375b4b11844756d0e6b4d0da5e522a348170a5da9842917737e272b758d8dde7e1fb2bee135 SHA512 a8c0883abe7c5a3e55ca7ed0fd974fae4351184a0b0df18295a982ca8ddb0f8d167353564204ed00f0cd9a1d8baef7074c0b39a99e0b5c52ced6bbee73dde3da
DIST llvm-project-21.1.4.src.tar.xz.sig 119 BLAKE2B c74a56448ad3e325234fcbe7d62ea888831e1e7696afb5aa5a185ea76a0880abe2d755f9e69a07760bbf9380534c3bb96c920ed6359ffd0f5f51c962d1494dcf SHA512 4812c2e3861aa3b726d842c3ca259b19ef1aa531fed9f6f47099483de91de2b2a165f40d243f6f40f2eea749741d5f8b7090f394399c56db02053f308921077a
+DIST llvm-project-21.1.5.src.tar.xz 158957032 BLAKE2B c056049214b18a17a3fd2dc86ae82121a821841002b8386b1fe35fc34f1f0faeb681f39880814e4a47f976b2744bfd2c4f1316156469c6b6a79c013d200dab30 SHA512 865ad44575c9288f06da8c48acbb60779f6c38aaf2ee85eac2002452f83892b704263f2ef51d3596abf06dccc1559f1d9dcdc89120363efd8ce1b1239ae83f6b
+DIST llvm-project-21.1.5.src.tar.xz.sig 119 BLAKE2B abf014908e981ea358ee38f6d1ef6c745ebbe51011fa7e83a514672bbad152fac92c95dd32a7b52a8d9c2a2a9ea1b44e447bb0bc5953f0f7bbd9ced34aa3c0cc SHA512 4e327c7d60525526ff3ac6ca58f1e753a57f841b88078a9bfe2a2ce91e4a5e17bcc52fd2f27f75801540610c1a56d57a3070243f13ad583e3526901b1f7be4a5
DIST llvm-project-7631c73850bec991ec9a7c9cca58c275bb0277a4.tar.gz 253713417 BLAKE2B 0126bdf53ffb57ca0fa471c01deb4f0a9f824083c332f72e14ea7dc843cf80e7360aa0bcd8eff22f42f993db2b077c696c25232c1a9d98cfa865d98569398b55 SHA512 58488afe3eb7865f171ac5f692a8c1252bf3d049420a72e72581e5024066b2a4ba2dbfa5c9f06de799ad3e04949997e61c60ee0f89aa6a8642b6d9263c78a144
DIST llvm-project-c1779f33bdada6e478e882cc23a647ef9abaad96.tar.gz 253250521 BLAKE2B fbd40cb52d56d5a817ff6cb469b9772af4eb358584eed1440c82864923add456961a672784838f510c390680a54c4abc7a33159848a34133f8d23b80b5feb0ef SHA512 01f8944ee6c89fd4a56caab236b302bc6b49b933c968a73edcb00ae2522b884371a05a75dec1321b0efed24e20cde4a58e1697c3c097f26ed0fbd629d8cf561c
diff --git a/dev-python/clang/clang-21.1.5.ebuild b/dev-python/clang/clang-21.1.5.ebuild
new file mode 100644
index 000000000000..f633fe0eda2f
--- /dev/null
+++ b/dev-python/clang/clang-21.1.5.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/cloudpickle/Manifest b/dev-python/cloudpickle/Manifest
index cdd6250cca18..664f9d85f4b9 100644
--- a/dev-python/cloudpickle/Manifest
+++ b/dev-python/cloudpickle/Manifest
@@ -1 +1,2 @@
DIST cloudpickle-3.1.1.gh.tar.gz 63697 BLAKE2B 81a971fd2e96cab4bdd56adf3c6f9eb4349a978a2b5d7dddeb3a1c0ecf0b2c4f02f4fb64890759316d4ba978758aee042ede883f1803d5133d6012da8eef5a48 SHA512 a967f7236dde114d76b3b77e981bc274101e3bd5a11b05b57a23428bf6b9cd8f6b04113295170e40b9d30f1f09d646bc906879c0146aa81b7adf0368608f45b4
+DIST cloudpickle-3.1.2.gh.tar.gz 64055 BLAKE2B 65ccf67aefb92581daf3ba6b4835246e1446c00a2489aedf093ccfdb78323d487a30535d107db9ff10ad8169f4b2fbe5a017388340b43ba752f3542fd5c2c0d6 SHA512 d3742305eb6f336278ae31fb16b86bf49c55db5ea47d1ff637a5cff55c7e4157c70dba99b82f70181c40c204e6afccedbb768315c78c0f67c3f1324b01238079
diff --git a/dev-python/cloudpickle/cloudpickle-3.1.2.ebuild b/dev-python/cloudpickle/cloudpickle-3.1.2.ebuild
new file mode 100644
index 000000000000..a0b9782a5b17
--- /dev/null
+++ b/dev-python/cloudpickle/cloudpickle-3.1.2.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=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Extended pickling support for Python objects"
+HOMEPAGE="
+ https://github.com/cloudpipe/cloudpickle/
+ https://pypi.org/project/cloudpickle/
+"
+SRC_URI="
+ https://github.com/cloudpipe/cloudpickle/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTHONPATH=${PYTHONPATH}:tests/cloudpickle_testpkg
+ # -s unbreaks some tests
+ # https://github.com/cloudpipe/cloudpickle/issues/252
+ epytest -s
+}
diff --git a/dev-python/coverage/coverage-7.10.7.ebuild b/dev-python/coverage/coverage-7.10.7.ebuild
index f121e4534425..0c20003b4162 100644
--- a/dev-python/coverage/coverage-7.10.7.ebuild
+++ b/dev-python/coverage/coverage-7.10.7.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/cryptg/Manifest b/dev-python/cryptg/Manifest
index bb98acb90de8..d802ccf6f395 100644
--- a/dev-python/cryptg/Manifest
+++ b/dev-python/cryptg/Manifest
@@ -1,46 +1,71 @@
DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79
DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST cfg-if-1.0.3.crate 8719 BLAKE2B 5cd0ac122110740895b45cdf8e0f738f2de1882d5a06c696d08e906765e4ddcd72a866dcc115da52d9fece205c9ad15dc25ad98dff36b32517012a7586e986ee SHA512 afe424a191c2aaaffec3d114e0116d0324d12117aeb22df78e47ad6752444bc5acb074ab0a174476b71e584a37743f9dcc2b0e8036d590fcc5afc7c55f86122b
DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846
DIST core2-0.4.0.crate 37075 BLAKE2B 89ad26bf5eb5ee48dff32d3b6b11e0a84b68e4f29c39fb9db79c64f3c445fde248b33b1ba9d1410673c3fe823ecca25dea637237c384b7cb419de9bceab8a570 SHA512 53c9d2599d87c37d8b6fc8b2293fc16928a97754240e35af770f7e969e4d91ffffe3afbb4e04312de828d1d43ca6c9b734e0725ac5ac9d74f252449ce296ab7b
DIST cpufeatures-0.2.14.crate 13165 BLAKE2B 45521d1a4bf2ddc03c6cdb9ceacb900806a03748fd122dd4431f6927d06cbf8608f9830e312b5728dd55b5084476280669129ea80477432fd04fdd68a0e50fb0 SHA512 402c0d6497c65882415841b9eb5953b1dcc1cb35b9fb4512801f3d0e2a056ca95bd32fdf70b6e65a18b048d7df8892c95fef1de975b56b63cfe45460783d5867
+DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2
DIST cryptg-0.5.0.post0.tar.gz 13395 BLAKE2B 511ed190704d639214223c42faccfe8b462945e8c9e772cbb9e9a48725fae672e4a6de8e9f8c32d60a9978f17576d8a266e20678cc6d7637a490c2371b1f0a31 SHA512 6a8eb1db7a4b00eb55fe7c89fe3fdb54f714fe954692e3b96e0786b60bb724ffd058de6d9552210791ee4671198a30c6b3b2cc8d718359f1fe5a4d07ee5785db
+DIST cryptg-0.5.2.tar.gz 13347 BLAKE2B 39090ac22b35d27c8a8794bb9ca37215a4d9d79eefdef919062eb01cfd5b011571adac2d293a16a29738bba21cdb29b8065fcafa718f09935f4a3aa67ec9c963 SHA512 f188ee703612a5c0d9c85bdc1a2b70b5117d0b883ca378bf8ba79e460cfed278cb80f0532cf4fc19806f014532d242d89f2189dfd963f443de37fda33167a34e
DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST getrandom-0.2.16.crate 40163 BLAKE2B cf95b380a610313eaf068fa210bdb4a9e0b9211321d708f9877cd9e1901df0f6b7f57462a4937da3419c7547ef300291deb5367f4dce4ff776e7f0d9d36dcd8d SHA512 6391d5322f8ce2ea7d14062d378ae2ffad66622afd58b9f1732e5314b27d3a554c8a008f6d0d133640f11d769ac51ea4acd24e40259e14e2ffce93d5c3c1eb1e
DIST glass_pumpkin-1.7.0.crate 22709 BLAKE2B 28e226a7d1139eb4ef19c5fa505a8326ac1c19206b6f7b328361db2785f338a583c316933a141b1cd46b6b21590ae0411d3dd4823ba932d0c1db47f7e665d491 SHA512 54c802873a7f03e79c118c4bfc41136ab8b03b1a870fc936046c32d8b835ff9206d9f1b33a0ea26be710b70bcf76aaf5c7c2ae6d46bd69449b493fefcefd9426
DIST grammers-crypto-0.7.0.crate 18251 BLAKE2B 119e7c541eb72e14184f32375abfdd3eae724025fd8b36a25cdbe7e33e05fbd6462809e344d1f9035c0026c7a307225c6abeefb5538d459ba760a1c0a05f53e1 SHA512 f3e91ca98bc69c74d5d30772b6723d5c63dec7867c1e58d09905a25f34ab6f74bd1473b5f7aa95d334b6e501acc63ad4e7e209810eb93f2c26b048d5d3f4336a
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST hmac-0.12.1.crate 42657 BLAKE2B 5d432a666dbcf9077a98e1f8a4aaa3afc88f3d88553cf7a2356d117c66f38efafe686c148598ad67ae89d64ee3edf56387a6f89b75dd9ab5eee63e13953dcead SHA512 77d4bf51f4633a8c36712ce3178945141df31cd645eafcf4bd130b8ecd7cb498bf1ee6f2d9c8dfbbc9f97ac638919fcc81bd3ee600a1b27c3be3fa87313aa0b8
DIST indoc-2.0.5.crate 14396 BLAKE2B fe838c6a855d6ff7396675a3fe9b2e0b06a93cfd4013b0b843d24d2fb81f6566528bfd1753c649646f06cb7e59262bd6ec3ed79d4e6f01d740cf0682355f2e5a SHA512 095fb56a3d87946c42a63065a8b276c2d4b9b835800014b400bb987593bf56701bad9f55d947f090740fdb7641a4f3c87fe8bfa5724709e95254d1e8e2e3616f
+DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
DIST inout-0.1.3.crate 10743 BLAKE2B ac2fa5cadd98088ea3f6eb94ca46b3a9ceb6547ba49f0de311d86474d71024d1a087ce9b8d44ec808008db69146e9c81446bcfeebeb2fd74d2e8d0ad2c4975ed SHA512 1db5bc2bd87aae145b3b0be6669a9a722df2aac8f970fda210aaf945c372e641b941cee822917926dfa1ab8381c6e99cc7df4b18d2f4e2fbef17fdec36ed2beb
+DIST inout-0.1.4.crate 11280 BLAKE2B 557fb7818cd5e5b8a921fb456028b1d41b42ece0e9824976e83b577981e5c5dec30ed0acab903ad85b059ac40cc8b0f117c1810221dbf2362ffddebc85537373 SHA512 683ef612191d19a867afb1a622a30ceee8ae720df432132293c7e967ad1782190ad973e84ece7fa52a5d1ec7f4d8f078f56d818ac07fe7268547deb5b2399370
DIST libc-0.2.159.crate 755366 BLAKE2B 70f46eb6228b4a8958dfbee00cdfa3c7d218f30d66c8591f4ccc9c5d8eda411d83ce9450552384ac4bc29deb2869561a2111dd157c9f228f617baf8f6b537bc4 SHA512 c803939ceea5ad9bdfdd122726c7a5f12ffd8b0cb66cf0bc62c9670e1e5904a504def388c1e043c520f4ece484addf6dac465aebd58578aa6b79995077bbdf9f
+DIST libc-0.2.177.crate 792045 BLAKE2B ecea1ade26b0faa9cb5fb025e237f3a59dfb562e7b3de3682b42a41038b1d436e83b42b53158c1fc1cc4b1cc64ab55ba1497e869ae850a677c089fcce9138912 SHA512 9d737091dba80244137987d06a52ffcd44a968c96b59ae9af9cfa40c38cb9675d023f6324fbf25c436ce1b9592ebf26248f85b0a7c97ee02360ca624b0efb3e0
DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST memchr-2.7.6.crate 97616 BLAKE2B 3429786e97f1aa078892e417c8ed8198ec727969517309049b842e44097e58038583508aa974e6246888c18e11f9d23863c1bb012b542c5685250fe34e250d7b SHA512 38843817334da88ad74ce679b4401cf948cf8138815f3acc5eb0d005da3aabceb2216e20887e79344396569a2fa136e3aa1f7f3251a00d07dd6934cee79f4fad
DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST num-bigint-0.4.6.crate 102801 BLAKE2B 0460e7dfdbd44b6c68fc8ead6bff4353e549127158dab8bb5d217ee33104fe9ad5f58b63a01d56fffa8d7c4df1a87dcf5b536e436a0ef98dc4418a4690c4cc15 SHA512 19d14a7755de2b559026547d9e3e1775e636781bdfdd418f2e1d962c51411a0973a46d84d0356e30c0f708a7c7b2097926611960043f71391919cab1aeb6aa04
DIST num-integer-0.1.46.crate 22331 BLAKE2B d88c9f84e5d803a3aa8f44dfc1bd6d9b5e336e7cbf47231cb3a7de30dfe263c41c62c586d31f0029459c8c240475cd329b3fce79f355be7643bdccf8d56dcbba SHA512 e27986d91f6c6dc3d5a0900defe28ab5f47905cde3f84d0914b7acee076dca8fec6fdb7b631ac94d3a31eb01ecbc5854e51afc3187cd1abfa21e1bfafdc700ae
DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
DIST once_cell-1.20.2.crate 33394 BLAKE2B 79dd394fcf1637adfef28b4159ec653c8b71d2bda0e0e36a940c04e3d87698f039dc30c97f26648ecf0d9742962f1f0a117568f7c705a8a3fc167085b0ca3e80 SHA512 bc6005bdab7a154c01e2203fb553a68695727475a9a882cf906d49c054ce886ad92cb491d380b6b9fe71a81b2fd690ce91c9a6cf8dfa8508470ac9acfc8a31c8
+DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST pbkdf2-0.12.2.crate 13906 BLAKE2B 062731ec8623719543e497dbfc23b909c8cc62a521ba927f5cb628290c1b3898a0b6ca7677d733b2eb0c563d7af4018981f4ae533b5b3a23c312ce98119eae6c SHA512 5360a661db8ef11586badfa2623dc409e34f3e2f79254cebcb5fb68bfb20c3be47def7bbb16f7779facb42a92bb789cf0e71947d1c4c6f5b1ecb8d358f6b41ef
+DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1
DIST portable-atomic-1.9.0.crate 166365 BLAKE2B 9abc31364770923847dac16f532452bc8783a5068c0f757f79122bc5b68863b58c0acfa12d28836188413c2f0b61d494cb53fa07a57e199ecd4910a2534c5bb3 SHA512 1431a4c092f6a0cb50bcc78488d603c8ba8f4ee697f77fdcfcce7002fcb371f52a321089422c76564fbf3277c48e30f889565747951c60360d95a6917bb6adeb
+DIST proc-macro2-1.0.101.crate 53886 BLAKE2B db566c4fb6a197e0aa45cc074310853eaa24ceeafe9fb91f2014ba47cf6b1cbc34e4e9391456c946587540c8e270e1a37f5195cf03bd15ea5d4f171bba9772db SHA512 3171c807d24371da2931f9c706fb3129bb9bf3ac40418e5d14cfc372baf96e5fee9ede72091163858e3ba0b4f88594efa1031b0bb7128ca68e7b847dead6856c
DIST proc-macro2-1.0.87.crate 49121 BLAKE2B 4a5136e28b5174c1382037d294dfec51cd7211eb7876c06a98600768d071915e76c81a7958a780cb7b843b98d9df4bd4e01d4f280db226d241bf84de348593f2 SHA512 32ce9c8b5bad55cfae537882c3fffc4d56824f6214ea97aede89ad460e3f66956b52af4a268496fc95c2c0eda0baeaaed4b12cd98df2efab24837e23b48b1f0e
DIST pyo3-0.22.4.crate 546534 BLAKE2B 48294620651db49b04655289ff6481897b9d3fc7faff3c0c2514c93ad636fe6d819e87349c2c4f946009b42bfc99020f58f96bcf206210a1fe508d6c184cf921 SHA512 58dc4ccde8f534f1b70019d4e3d4d0834b7698acdbbcba0d5c470c9ccbe257f251df9664b918a34784b2fb76ede2758ec8c168bb2603750f3b53ed9de2d195b7
+DIST pyo3-0.26.0.crate 1151579 BLAKE2B bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3 SHA512 e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194
DIST pyo3-build-config-0.22.4.crate 31296 BLAKE2B 8a1b8e3f1ee7b7943b4c420c99cf5cc6bd53136c343a2755558dd80dcec8fe848a005b3ae58757c00bda6bda8c2b96b79c44457a5acb61b2826df7ae21ca391d SHA512 fd3015260b399729724eed802d1f67a338e12d275b9ba49cd03a413a9f951c3a68e681cbe756f394f7d901ad88654af9ea30d6a76da34ed261285125f43f95dc
+DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722 SHA512 a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b
DIST pyo3-ffi-0.22.4.crate 69360 BLAKE2B d04de2726cc3a17c185d4a0b305501cd44ae02276599ef3e28457ca902bb0d503e31342ae6b72432c7cffdbd2443eeb460d192b834fd6a8b1cc19359a059214b SHA512 c81e76aa58672cc894188980db073c81bd9c091e89e281313e81c14ef5573940c114fcf110d1a4c923249db5a1a45cd1732621395edf6f5ea6d29b4f81d81eeb
+DIST pyo3-ffi-0.26.0.crate 78247 BLAKE2B 65f1c399bc763bf8afc36ccac27d28242ebcccebd08ab8d9b3165ca5c9abb10f76e76fe5a250aa1e0cdc1d1e8a613160660f07bc0dbc2812675acb9dfc8e89c2 SHA512 91c2ae828e997dee5e48d839794727e94576228e9329c358a3bc77a59f8f37fa0ae6c2579229782b3f46ab90725844ce9194b9de4d3849d824adf1d40743bf7e
DIST pyo3-macros-0.22.4.crate 8188 BLAKE2B a422fd908b36bff6ba6489832259aa74f40008c4776f178eaf7ed4b401b1898c3043c78d8476cc2e7b28cc1f24d0e0235e94b6c1e951938d3f557822067a6738 SHA512 b5065bd8de680621fc868d4a030904af1378b14d424c890477efb0988dafa2b711a0da61b03b3fdfa7b2a03cb7fbe087b48cee8b9c674d820f3a088fb9c386e8
+DIST pyo3-macros-0.26.0.crate 8906 BLAKE2B 60eef72d27b5bc922b75f71ae24bb6f380288cb3a619bf2940b0de47b27e86cce0ffdb1fbdc9c0540d3f15c9df4884497aa1e6efec0f1579ac722b414818a428 SHA512 07bcddba0926c3dff7629da3260f9a38593fbb337b6a68d55c223f5944d912885e5319cd635ae1785026fed4adea1fcc19695ae83aca5bea127c5a8868fd2c43
DIST pyo3-macros-backend-0.22.4.crate 66307 BLAKE2B 90eaea7f01757a8b51b4b3f4839d80d889f2b3551fdb65858bc5840dacab244b16990eeeb045ea6353f8d4f5053ada910c69977faa8c0cc0bd19facb638e68cb SHA512 8b31f7c0471540d5b500bfc21bfe433fda257cb23e61cc125a2d516b99923e17a5b250f02e63eaf7ad4b244eb44f798d0db2800699f85730755c16a19a892de3
+DIST pyo3-macros-backend-0.26.0.crate 81809 BLAKE2B 73885035855daf00b001e97e0a5ebe09412d212c8f01aa4db6638ef09990bf1bccbacf2e5a7e6ec21929bb1c2beba06587ecdb6ee954eda9e9c51c6c276cea95 SHA512 4146011a8ef18ecaa44b425eebe6e5e1370945063b98aaa83452e57b66aefbf5d483367b1d4d44aa5091303c4ba7f568c6428ecec0cfa6c90ba41631d4e99367
DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05
+DIST quote-1.0.41.crate 31408 BLAKE2B 9d496e0878fc329ac9492ecbd470e762bd807ec8ca4e17a856b4d1c776351434778f519977137a67b8c143ee60b20774c09768d480cff51b22f2cfcb364a20d9 SHA512 64374d70eb29f7d7e02e535ba383586d93f68a9b6464c79840fa6c42a1ac47be7ba14e415a40e158f845e486ed33d5c564c882913780d296360b30a56301ff7e
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
DIST sha2-0.10.8.crate 26357 BLAKE2B 1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a SHA512 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785
+DIST sha2-0.10.9.crate 29271 BLAKE2B 1d614e0efe085cdb40e05726578a9b4ca6bce93f6d3324f5dc0444cb37054912cdaf5d28d468eac2c0046030d920fced2ccd006953b80865ce8a2d43ef3daa81 SHA512 963adeeb4ed8b0e7fc19085e8721ea13e9b3aea5d115ca1b3dbca495ad14810c6450991dd3753807c293c415aaeb1054b8b4124c72e7090cd9e86f09fcbb4f80
DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd
+DIST syn-2.0.106.crate 301514 BLAKE2B 6b28b30ee067c23dc4bd1b38365d14c1700245c974e785173965b0822301966d642b36bdda25210d61f17a99fc71eb81e29a56c89d1649773908bae32778fb1f SHA512 e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c
DIST syn-2.0.79.crate 268981 BLAKE2B 2bf4bde1890ce4ee91fbacca81bd298d15f0111fedb27b9cf8d675dc2489f46026c1804f9e4e24afbd0718539820096cd5c4ed2c2da02e598370dbfd2b18c293 SHA512 1ee073fa3428c031e53bff8ff305bcd6b37ac142bee3955dcdb44fec1c77c733eb78760c8bfb30b83fc3dacdad8a384e2b6f9f31a89c4cc300359e33457fd433
DIST target-lexicon-0.12.16.crate 26488 BLAKE2B e7950e4a302059a1bfc9bc15618a3c1b971a17cffae117a6e8f5f63a0d82fd2bd02680301d15338612d5426d349dd24cfee30ee787a15a7d3187f2a6825e69ce SHA512 092639957c4a0391560b6442b31c47159c04d12e971010f730a6ec9cb5389e4be903ef3d7daa06db95e64dc78b6970731fb647179ebaad2b12e9ed5e9b24da27
+DIST target-lexicon-0.13.3.crate 28498 BLAKE2B 397315667737abde41949081f8377f704c3a1105790162249a9f0c08b60f012e67d66550e9063d900ac98f5191d13c5ed23d1a8045f99373e7a673a3cfc029e7 SHA512 23422df6edb2a8cb0a9f048864faf76ccb27d6e97fbed7b208b77206941b196f155896a0381150e387142e976439a0a296dcf4cbb4df6bc0e11c65f97f979443
DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
+DIST typenum-1.19.0.crate 76414 BLAKE2B 8083988e0bf1d7927377112b8939607f32af098f198a2bfcc2c5302170d9f6e5b29cf02d3cab16c1ecd0fb9f0a45ea3c6bd4a4e4baaf2dfdf8f694093300deeb SHA512 09ebcd7a2cc11f422469cf4fe706f1988bcd81d628e2bab3f54ae82b0aa5486d03a4392187a3736c13dc0c2027053387f89ac656caff72f36365c8be38bc7ff4
DIST unicode-ident-1.0.13.crate 43279 BLAKE2B b5e935020d1c9f3aa24f7d382f6b73d6510d654a61ce1c9c024e2e365bb817182e076139f370e822573531356fb78ff7499049b1f29aa1e2f4a2cc74a955b47b SHA512 5ba884f39debe9c8eb0b1d251ca713f7e2bc191d211707ed10cd81465487dbdca53914c19e131edfa1da15af132dc2c346260c3969c61e3747b63399ccb1cc51
+DIST unicode-ident-1.0.19.crate 47480 BLAKE2B d1b9d26833fcd1f3a8498abe2f4ba4202e4547315e48aa927c0f6e4a760c6c7000ff0c18d0cf45af362323c42843d745958c1b0419835f39e13dbc1559487026 SHA512 b17fcf6bffdb4745e0b1bf4983a0dcc4c84f8b4e2c2c618eefbbeae83f94ec75df87b55f9e2dede8c3b4c6e22107fcfc589475c0cbc2c58dfb8630db8d362183
DIST unindent-0.2.3.crate 7306 BLAKE2B a57407b117e99c230750c7d4a2a0899586c8271e4ba88ecb409c976905c014f42885372c234a75fbfbedf71dbed779f95f735975d150adacdcb61152a49db4c2 SHA512 2f1eb420ea3653b00d3e5fa0c2c105da8fd8a37cb3e699373c168604b799fccd5f0faf0cddce4212d119c2afb0c86b41efc3a50752b83ff7beda2bd84d360505
+DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b
DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasi-0.11.1+wasi-snapshot-preview1.crate 28477 BLAKE2B bcc773ba28cbe8d820e9e9fbb275fb4451bc7f39b3bd88bcd93850bf2bdb5300489bd8eca27489ccc5f6269b00f4e1b505ae3a33a35d708cd5a414ad307be149 SHA512 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49
diff --git a/dev-python/cryptg/cryptg-0.5.2.ebuild b/dev-python/cryptg/cryptg-0.5.2.ebuild
new file mode 100644
index 000000000000..c571e3dd7808
--- /dev/null
+++ b/dev-python/cryptg/cryptg-0.5.2.ebuild
@@ -0,0 +1,92 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.13.3
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{10..14} )
+
+CRATES="
+ aes@0.8.4
+ autocfg@1.5.0
+ block-buffer@0.10.4
+ cfg-if@1.0.3
+ cipher@0.4.4
+ core2@0.4.0
+ cpufeatures@0.2.17
+ crypto-common@0.1.6
+ digest@0.10.7
+ generic-array@0.14.7
+ getrandom@0.2.16
+ glass_pumpkin@1.7.0
+ grammers-crypto@0.7.0
+ heck@0.5.0
+ hmac@0.12.1
+ indoc@2.0.6
+ inout@0.1.4
+ libc@0.2.177
+ memchr@2.7.6
+ memoffset@0.9.1
+ num-bigint@0.4.6
+ num-integer@0.1.46
+ num-traits@0.2.19
+ once_cell@1.21.3
+ pbkdf2@0.12.2
+ portable-atomic@1.11.1
+ proc-macro2@1.0.101
+ pyo3-build-config@0.26.0
+ pyo3-ffi@0.26.0
+ pyo3-macros-backend@0.26.0
+ pyo3-macros@0.26.0
+ pyo3@0.26.0
+ quote@1.0.41
+ rand@0.8.5
+ rand_core@0.6.4
+ sha1@0.10.6
+ sha2@0.10.9
+ subtle@2.6.1
+ syn@2.0.106
+ target-lexicon@0.13.3
+ typenum@1.19.0
+ unicode-ident@1.0.19
+ unindent@0.2.4
+ version_check@0.9.5
+ wasi@0.11.1+wasi-snapshot-preview1
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Cryptographic utilities for Telegram"
+HOMEPAGE="
+ https://pypi.org/project/cryptg/
+ https://github.com/cher-nov/cryptg/
+"
+SRC_URI+=" ${CARGO_CRATE_URIS}"
+
+LICENSE="CC0-1.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+QA_FLAGS_IGNORED=".*"
+
+EPYTEST_PLUGINS=( pytest-import-check )
+
+distutils_enable_tests import-check
+
+src_unpack() {
+ cargo_src_unpack
+}
diff --git a/dev-python/dbus-fast/dbus-fast-2.44.5.ebuild b/dev-python/dbus-fast/dbus-fast-2.44.5.ebuild
index 5ab086fc9e30..a722221301ca 100644
--- a/dev-python/dbus-fast/dbus-fast-2.44.5.ebuild
+++ b/dev-python/dbus-fast/dbus-fast-2.44.5.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~riscv"
+KEYWORDS="amd64 ~riscv"
BDEPEND="
>=dev-python/cython-3[${PYTHON_USEDEP}]
diff --git a/dev-python/environs/Manifest b/dev-python/environs/Manifest
index 653b7fae0f75..d6c30c159440 100644
--- a/dev-python/environs/Manifest
+++ b/dev-python/environs/Manifest
@@ -1,2 +1,2 @@
-DIST environs-14.3.0.gh.tar.gz 46904 BLAKE2B c787c7e62d92dfa4a39f8ef7a9017806608743a8d601f8669f47b5bdaa60215db8c6aa25a435ba2b3c0cb4dab7bea423bba066c745f1530cabdaf5e31e065ab7 SHA512 70acb1f5f3d607b75098d8d679c09052d2bd585124032a09d518c7067559b62eedac0a45adac76dcd25fa8c9366a84773199ffd2283b34da63e12aca9c466953
DIST environs-14.4.0.gh.tar.gz 48220 BLAKE2B 7dd89016a30b6194c666d1b5d4931c1223d52a609ec369c435a8b066daea52622c42932598a07ca43976bec5a186879309d079248809d116e1b110f7a39adcf0 SHA512 e49ec88ed6eaf09465505378db5b74b01637e04b16b53ae0a7245ca4bd26c9ee0ec795c7b7c9b6791bb0d1b0ac7a6cb33c16a0bad7cd30805779b1791e151b69
+DIST environs-14.5.0.gh.tar.gz 48055 BLAKE2B efb67a9f947169020ab2337ffd065a095f49bd8bbefe51ba45f00f78f105f276b2a8775d1c778c8f5929b667933189752a99fbe814760cacf8fc340650d6eb7f SHA512 421328d2b3bb563cfb3b4ce8eeb7d3032f01f637cdbd481a0c2fc3c05e5768e1b94169386a7ec39c7f7a4a36116dacba7f2ced25c3dc31e43de5dcadcb941f14
diff --git a/dev-python/environs/environs-14.3.0.ebuild b/dev-python/environs/environs-14.5.0.ebuild
index 7e140f03e826..7e140f03e826 100644
--- a/dev-python/environs/environs-14.3.0.ebuild
+++ b/dev-python/environs/environs-14.5.0.ebuild
diff --git a/dev-python/fastbencode/Manifest b/dev-python/fastbencode/Manifest
index 8c696bc773ef..2e0288d428fc 100644
--- a/dev-python/fastbencode/Manifest
+++ b/dev-python/fastbencode/Manifest
@@ -1,21 +1,34 @@
DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
-DIST fastbencode-0.3.4.gh.tar.gz 21576 BLAKE2B 8647f98f672cc24a5eea517afdc1232543374a5ed283bff6f51e4f53ce576fd7355963406ecfa5aaf9a075f71b6608586e26f879c1da00cc406d2fa9b4916dc5 SHA512 456311c40ec6ab6750e74244ad4bdf731c39c7fd294ebabba867a05221d0af054838ef0e75620982ad274061732e55716053505dfcafbc2d1b6e12c324406369
-DIST fastbencode-0.3.5.tar.gz 16953 BLAKE2B 703549bffc69d6b85b80cb4f8081c15cbbed94261fc03337bb927204de2ad75eda838559decf70bc76bb40bbe219c2ffdb53132263dbdf6c6998b79c1118430b SHA512 fd4d167fea1e8075b78ea748408d05badc1bbb3fbb09d6393c045ad990f83f07a926748d4b2b686cba2e23a839a57f18687af021c690eb402bd3b3e191bc324c
DIST fastbencode-0.3.6.tar.gz 16915 BLAKE2B 720c5f6c5531548850d7231f244d974d4a05c2c1725b4e0f8aff44289aff7aedbba7e9c76465145ead3629c3ec5cdc819de2ff0376f6b60837c2f3dddedf543a SHA512 c7c20f76144f99233212f52d584156050f84744669860d72b1c7295a1fb90fd929fa03383bf83330a099ea1c594396d2b4165dc509a974c67e16a4ccbc534450
+DIST fastbencode-0.3.7.tar.gz 16931 BLAKE2B 7ae8ed990f82541419bb416318ce6e819f944c8afebc44b93a74b7673369e057978b18cacb0a12a530bdaf80df3819a7b28c10c634c9c90efe7864aaf34f624b SHA512 27610d7f11cbb6a21fd762e67756388ca0c4eb984263a675787d8c67b937f8fbc2add9622c399ccc946128a8624212e0b66dae1190fb088d5a1d3e1a69e5f42b
+DIST fastbencode-0.3.7.tar.gz.provenance 9388 BLAKE2B 46ee48e889a31465cdb00ba56d48c23d010ed1215bb79d1b90377dffd2e092118588e2141c9280ab2729326a5773b569abf173093ec770f4c938bcbc56a50032 SHA512 0a4dfc6ee49abafbd3a2ac73912a212ea265a97b794247bcdf6c828a206a7cf8414667d4f465c57204651b2820a922d534e539e6d2a8e4b8f6616621d53a8e95
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
+DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73
DIST libc-0.2.174.crate 779933 BLAKE2B 20ffcbbcad6961e732521940f0595039dc0576d85b2d3b2ad3f1decd37571132a4cd7505b2e108078a4379fc4cec46290b5633bcbcc6e7009c3b474c1a852628 SHA512 243f2ffd5741ef859e4dc5b7ee0396071943b1d10429efcaecb322957e256c4be88a7a649029dfd47e6456acc73ee257893fb6c4e8b4d0fe66a12bc5d1c13c73
+DIST libc-0.2.177.crate 792045 BLAKE2B ecea1ade26b0faa9cb5fb025e237f3a59dfb562e7b3de3682b42a41038b1d436e83b42b53158c1fc1cc4b1cc64ab55ba1497e869ae850a677c089fcce9138912 SHA512 9d737091dba80244137987d06a52ffcd44a968c96b59ae9af9cfa40c38cb9675d023f6324fbf25c436ce1b9592ebf26248f85b0a7c97ee02360ca624b0efb3e0
DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1
+DIST proc-macro2-1.0.103.crate 60024 BLAKE2B e5ce5f77838fd063b5615b1555db02175621135132de6aa7479d67fd0a34c15e8235290112a728f3251cf913a835bf0aafaf6930880511427143b63152047259 SHA512 9a6964a2ad24dbb1108b7018882ddb48cb6e6f652d1c5eed1cac94602539fc71f011a0a276765778df161edbd6387bf03a8505d93565e0c106f09e98d7d6efce
DIST proc-macro2-1.0.95.crate 51820 BLAKE2B 93229d80556ec03bce4031607d13c7902cacc2d7e2586a692ffe8543d52e3f3ba253c9c311ddedf6d9348ce8758ae8ff64577675cda2dac557f936a328de47e3 SHA512 f78e4d47ecd29c1b2315554705e445507bbfb9449afd0bf1b74df28f266ac6382ca8c3ce135ddc55c989eaee64d1794a0933a941c8ff55f543fa21c400016547
DIST pyo3-0.25.1.crate 1121993 BLAKE2B 79a982131fc4c4f9292e97bc8d938d236ee9cefb99bb90646a84703660ad506aee8ae1f1e626d985aa62c695722510f2697544581fa5c3a01f193be2bc2779fe SHA512 9c842c89d274dba0c8a3085a8524736245d65f07e5c05bc13fc89167cfdeb1a4ff2b4a9da9467eee918e45d01777473f39bda11efe0052859969d4fdeac1adc6
+DIST pyo3-0.26.0.crate 1151579 BLAKE2B bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3 SHA512 e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194
DIST pyo3-build-config-0.25.1.crate 34126 BLAKE2B ca905f1f74e26f38ab63a4f5754055c9dff01f9396f81ece09b7ce067181b657e6746db3b373f7177805f6564d0df0db064b5fcab8160d5edc357e64dd32d0fc SHA512 d6fe4a46111188203a839c8c73b9835f98cd6bc5982868cbcc9f502c5a09b35c3e61117b50ef8372470051b5bc4959731907748ffca89f42f300a3081b7b0467
+DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722 SHA512 a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b
DIST pyo3-ffi-0.25.1.crate 78058 BLAKE2B 351fe00c99008a34a003e50cd4f6d25e6dae5a446928358cd5146ac9924254614724a015ae77d8aade7bcb497cf5e5b5018021ff5d89a8efa6412f5ccb48744e SHA512 35ab63888f49df13fab8b96b87f6c705186173923fd5898abe8730675156426f020ee517019926ba5e06cdb4fc5f91a75f648ce9eba892e9eaf3ee17864a8ec7
+DIST pyo3-ffi-0.26.0.crate 78247 BLAKE2B 65f1c399bc763bf8afc36ccac27d28242ebcccebd08ab8d9b3165ca5c9abb10f76e76fe5a250aa1e0cdc1d1e8a613160660f07bc0dbc2812675acb9dfc8e89c2 SHA512 91c2ae828e997dee5e48d839794727e94576228e9329c358a3bc77a59f8f37fa0ae6c2579229782b3f46ab90725844ce9194b9de4d3849d824adf1d40743bf7e
DIST pyo3-macros-0.25.1.crate 8886 BLAKE2B aad9c975c90ff93429be24287d76edd945578b546a927f54d82b6d4bf184f1f8d426ac112307205346e85999a1e89b097f68310de647f27474790bff01c3517a SHA512 08387f3d1ddb0cc253eed376e6e8ebe5722b31664ec742f16c0454b52f1fbcadbe7720ae9e2d3870fe0ca2690916cf6e3e032f5a3e65d767322c068432f6d470
+DIST pyo3-macros-0.26.0.crate 8906 BLAKE2B 60eef72d27b5bc922b75f71ae24bb6f380288cb3a619bf2940b0de47b27e86cce0ffdb1fbdc9c0540d3f15c9df4884497aa1e6efec0f1579ac722b414818a428 SHA512 07bcddba0926c3dff7629da3260f9a38593fbb337b6a68d55c223f5944d912885e5319cd635ae1785026fed4adea1fcc19695ae83aca5bea127c5a8868fd2c43
DIST pyo3-macros-backend-0.25.1.crate 76006 BLAKE2B 02225f8591585a6cbea7d6e53503bfbac395253cb0f45c588a2eb38908bf241034412832f2fcf4e9301318b5b9b82a888755d970f544f402a4f0cf9e4a6eefe9 SHA512 4c9006424630ab9bcd5dcdd45fe927a95a40a61757f0950396eb9f0c3f1794772092a19773c102220489cc621ad65d81dbbe459a1be472f6cd3211c50ef33cc2
+DIST pyo3-macros-backend-0.26.0.crate 81809 BLAKE2B 73885035855daf00b001e97e0a5ebe09412d212c8f01aa4db6638ef09990bf1bccbacf2e5a7e6ec21929bb1c2beba06587ecdb6ee954eda9e9c51c6c276cea95 SHA512 4146011a8ef18ecaa44b425eebe6e5e1370945063b98aaa83452e57b66aefbf5d483367b1d4d44aa5091303c4ba7f568c6428ecec0cfa6c90ba41631d4e99367
DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
+DIST quote-1.0.41.crate 31408 BLAKE2B 9d496e0878fc329ac9492ecbd470e762bd807ec8ca4e17a856b4d1c776351434778f519977137a67b8c143ee60b20774c09768d480cff51b22f2cfcb364a20d9 SHA512 64374d70eb29f7d7e02e535ba383586d93f68a9b6464c79840fa6c42a1ac47be7ba14e415a40e158f845e486ed33d5c564c882913780d296360b30a56301ff7e
+DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
DIST syn-2.0.104.crate 299699 BLAKE2B f64d2267abe9140456dd31d52ada0c75bfa3e4e0112ca77491245e9e84a0530f6c7cdc7428b73cf567a65ef6e7727f814fb9cb34db0ecc9cc3afd05b69fd36f7 SHA512 da532fa362266161b5604c821c913f8f990eb32c18e18c0a360b7147b9f71ae008e208f377cb203e85818bd5db926951122a971fa97563a10678f0ba4671e64f
+DIST syn-2.0.108.crate 301754 BLAKE2B 627699ade4dcd89157c64628e7243be829d79e5e1800c3da82f2da24628e8895809f3b250e9cdcfaa3c69d2d2deb7d4db8868767961c25ce6ad71baebd995ad6 SHA512 27ca199db662f3d06de9f139b9707fc30e9719556831b9fcb78f7108f61cdf186cbead48ebd4b684bdcb96944552ba4340a4bd154556cc08d0698f65c9332aaa
DIST target-lexicon-0.13.2.crate 27923 BLAKE2B 0761f0ffdc23b9c9df86b384d59611c7b8b5e29ff068f03367ad2fe84cfb6d11e1af149b9338236978e9566fedc51387db9f239d2a602db41045ac3db907faec SHA512 d25e3cc3d679cb6b6f24c03e0c24db9d6ca31b8ed42ac9531bd7637557fbba225a6c8ac4f68a8eaf3569195814d599e668a968afbc73b940a77cbc27552cc90a
+DIST target-lexicon-0.13.3.crate 28498 BLAKE2B 397315667737abde41949081f8377f704c3a1105790162249a9f0c08b60f012e67d66550e9063d900ac98f5191d13c5ed23d1a8045f99373e7a673a3cfc029e7 SHA512 23422df6edb2a8cb0a9f048864faf76ccb27d6e97fbed7b208b77206941b196f155896a0381150e387142e976439a0a296dcf4cbb4df6bc0e11c65f97f979443
DIST unicode-ident-1.0.18.crate 47743 BLAKE2B 517ab42a847020515b2b871844d0571ea672340f89a762631a791eac18935ac122122fa5566e58b99ab47de179eadb5298e8ff1d05b123c4e93b7fa989c8e31f SHA512 d11f89fb696f9e2953c96a40b5478832651b268c83b9c7a700b07e768e795d6e8dc346597d1226df21219d36866768d1f640bd8edb68db8bd3d5d437b2bfd324
+DIST unicode-ident-1.0.22.crate 47919 BLAKE2B 766f52249631092af952df717e09e1eb0d2a8e87c45e65113f0b2b88b42e8b406a87241fadd368ceb9e13339362b48cdbbc6f699f95f448ab45dbbd861615d62 SHA512 81666679aaa2eebfe1429827fa2a88ee0b52bd69723067132c24252070133b3731287bcd880ba16d16274f038c7b27bcf637e9150b6cd955fb4ff49642078125
DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b
diff --git a/dev-python/fastbencode/fastbencode-0.3.4.ebuild b/dev-python/fastbencode/fastbencode-0.3.4.ebuild
deleted file mode 100644
index 39d85bc4ff8c..000000000000
--- a/dev-python/fastbencode/fastbencode-0.3.4.ebuild
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- autocfg@1.5.0
- heck@0.5.0
- indoc@2.0.6
- libc@0.2.174
- memoffset@0.9.1
- once_cell@1.21.3
- portable-atomic@1.11.1
- proc-macro2@1.0.95
- pyo3-build-config@0.25.1
- pyo3-ffi@0.25.1
- pyo3-macros-backend@0.25.1
- pyo3-macros@0.25.1
- pyo3@0.25.1
- quote@1.0.40
- syn@2.0.104
- target-lexicon@0.13.2
- unicode-ident@1.0.18
- unindent@0.2.4
-"
-
-CARGO_OPTIONAL=1
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit cargo distutils-r1
-
-DESCRIPTION="Implementation of bencode with Rust implementation"
-HOMEPAGE="
- https://github.com/breezy-team/fastbencode/
- https://pypi.org/project/fastbencode/
-"
-SRC_URI="
- https://github.com/breezy-team/fastbencode/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
- native-extensions? (
- ${CARGO_CRATE_URIS}
- )
-"
-
-LICENSE="Apache-2.0"
-LICENSE+=" native-extensions? ("
-# Dependent crate licenses
-LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
-LICENSE+=" )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="+native-extensions"
-
-BDEPEND="
- native-extensions? (
- ${RUST_DEPEND}
- dev-python/setuptools-rust[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/fastbencode/_bencode_rs.*.so"
-
-pkg_setup() {
- use native-extensions && rust_pkg_setup
-}
-
-src_unpack() {
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
-
- if ! use native-extensions; then
- # setup.py is only used for setuptools-rust
- rm setup.py || die
- fi
-}
-
-src_test() {
- mv fastbencode/tests tests || die
- rm -r fastbencode || die
-
- distutils-r1_src_test
-}
diff --git a/dev-python/fastbencode/fastbencode-0.3.5.ebuild b/dev-python/fastbencode/fastbencode-0.3.7.ebuild
index b79d47b981f2..91ed49e774cd 100644
--- a/dev-python/fastbencode/fastbencode-0.3.5.ebuild
+++ b/dev-python/fastbencode/fastbencode-0.3.7.ebuild
@@ -6,27 +6,29 @@ EAPI=8
CRATES="
autocfg@1.5.0
heck@0.5.0
- indoc@2.0.6
- libc@0.2.174
+ indoc@2.0.7
+ libc@0.2.177
memoffset@0.9.1
once_cell@1.21.3
portable-atomic@1.11.1
- proc-macro2@1.0.95
- pyo3-build-config@0.25.1
- pyo3-ffi@0.25.1
- pyo3-macros-backend@0.25.1
- pyo3-macros@0.25.1
- pyo3@0.25.1
- quote@1.0.40
- syn@2.0.104
- target-lexicon@0.13.2
- unicode-ident@1.0.18
+ proc-macro2@1.0.103
+ pyo3-build-config@0.26.0
+ pyo3-ffi@0.26.0
+ pyo3-macros-backend@0.26.0
+ pyo3-macros@0.26.0
+ pyo3@0.26.0
+ quote@1.0.41
+ rustversion@1.0.22
+ syn@2.0.108
+ target-lexicon@0.13.3
+ unicode-ident@1.0.22
unindent@0.2.4
"
CARGO_OPTIONAL=1
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/breezy-team/fastbencode
PYTHON_COMPAT=( python3_{10..14} )
inherit cargo distutils-r1 pypi
@@ -67,12 +69,16 @@ pkg_setup() {
}
src_unpack() {
+ pypi_src_unpack
cargo_src_unpack
}
src_prepare() {
distutils-r1_src_prepare
+ # treat build failures as fatal
+ sed -i -e '/optional/d' setup.py || die
+
if ! use native-extensions; then
# setup.py is only used for setuptools-rust
rm setup.py || die
diff --git a/dev-python/flask-compress/Manifest b/dev-python/flask-compress/Manifest
index 95c40387d7e8..1813025583ff 100644
--- a/dev-python/flask-compress/Manifest
+++ b/dev-python/flask-compress/Manifest
@@ -1,3 +1,4 @@
DIST flask_compress-1.17.tar.gz 15733 BLAKE2B f548983e03b66cfbec55726ab14b757d3a079842a9de46e294305409bb1f655478567c43b992b79c8e5c46f50f1f044f2bc8602a683f71a944b4c05f0f33df39 SHA512 58d66f7be21117ad2769743c148b7df6981634341d1ffa1c6c71aabd86119364e85a8242297e6f369b02ecf09ccdd3980806e91c869754f917d0bd83ae7b9b5d
DIST flask_compress-1.18.tar.gz 16571 BLAKE2B 82a4fae8551136e20befb4a8cc1f26730629e851a555db941023fa98f45813eb3e1e036121daea8713f669b70aceeb2b795ee6995882f4b3dade6af3db5cfcf6 SHA512 a070fca45d0905dabf336151e3014b8cd6727c5fd7b3f157ab5b6fba1571ca05ac973c97727dc787abe9d35957b51e539b72edde8b291954d8fb7ee8919480a2
DIST flask_compress-1.20.tar.gz 17574 BLAKE2B d7b7f2d9fccd0eab28cbb75d0349cd690bd2c36e969f0bf089bffac6ce9f65bdf7083a93ba3d83fb8ef998bf171aa1bf36cd37177f35a79e96499fc675bcb6ac SHA512 ebd168d299d7ece251033159b795ec0cb49b4469d9c498d00304c1e43a4fcc74fbab1651d9852aa6a6815e6e10a423c8b6c03202b1c156e639e563296e4b9c28
+DIST flask_compress-1.22.tar.gz 18916 BLAKE2B e2eb64c9fe246ef52111c2dd86ae3b4d6be83fe4ec108bbc4fa0c11541c43680162486f517ffa5657b3d09dd7b97094cd1e23b80554e4d5ecdfe59b76ac17e90 SHA512 6ddfda4e6fe0d12d35de747d0ac2e6d395da8828dafdbb244806aeaf2493c27e90d1eae1f40a8b3181d23cb2e71dcfd35e1b4e1518e06cebab847e88a7bfca17
diff --git a/dev-python/flask-compress/flask-compress-1.22.ebuild b/dev-python/flask-compress/flask-compress-1.22.ebuild
new file mode 100644
index 000000000000..7b2d51f8b87d
--- /dev/null
+++ b/dev-python/flask-compress/flask-compress-1.22.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN="Flask-Compress"
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Compress responses in your Flask app with gzip"
+HOMEPAGE="
+ https://github.com/colour-science/flask-compress/
+ https://pypi.org/project/Flask-Compress/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+# brotli on cpython, brotlicffi on pypy3
+RDEPEND="
+ app-arch/brotli[python,${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/backports-zstd[${PYTHON_USEDEP}]
+ ' 3.{11..13})
+"
+BDEPEND="
+ test? (
+ dev-python/flask-caching[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/furo/furo-2025.9.25.ebuild b/dev-python/furo/furo-2025.9.25.ebuild
index 66ffa9330801..0a9cbaa6a0cb 100644
--- a/dev-python/furo/furo-2025.9.25.ebuild
+++ b/dev-python/furo/furo-2025.9.25.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
diff --git a/dev-python/google-api-core/google-api-core-2.25.2.ebuild b/dev-python/google-api-core/google-api-core-2.25.2.ebuild
index 01584f47ee0f..318e2b70925d 100644
--- a/dev-python/google-api-core/google-api-core-2.25.2.ebuild
+++ b/dev-python/google-api-core/google-api-core-2.25.2.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="grpc"
RDEPEND="
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.184.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.184.0.ebuild
index c898d6e76ad0..9a86c7b8f670 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.184.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.184.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
diff --git a/dev-python/grapheme/Manifest b/dev-python/grapheme/Manifest
new file mode 100644
index 000000000000..85f55b13434e
--- /dev/null
+++ b/dev-python/grapheme/Manifest
@@ -0,0 +1 @@
+DIST graphemeu-0.8.0.tar.gz 306775 BLAKE2B a336bc4bffe0429001aaea70d3e963541dbdc48919ae083b0e5753e78d8969530491bdeec336190ca90dcba681dfbda62a77890bc497239b6994d5165dbe5657 SHA512 ccc85db9db964c65a3ada48ff0c5dbf16cd9d76f2a2d5f08e9523b662ff801dc2c0280b4df95fa71f058d876186309d53fb88da73296f7ffbe02cde48ae2bb49
diff --git a/dev-python/grapheme/grapheme-0.8.0.ebuild b/dev-python/grapheme/grapheme-0.8.0.ebuild
new file mode 100644
index 000000000000..302848cf440f
--- /dev/null
+++ b/dev-python/grapheme/grapheme-0.8.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 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} )
+PYPI_PN="graphemeu"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Unicode grapheme helpers"
+HOMEPAGE="
+ https://graphemeu.readthedocs.io/
+ https://pypi.org/project/graphemeu/
+ https://github.com/timendum/grapheme
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+distutils_enable_sphinx docs dev-python/alabaster
diff --git a/dev-python/grapheme/metadata.xml b/dev-python/grapheme/metadata.xml
new file mode 100644
index 000000000000..722d7140530c
--- /dev/null
+++ b/dev-python/grapheme/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <name>Timendum</name>
+ </maintainer>
+ <doc>https://graphemeu.readthedocs.io/</doc>
+ </upstream>
+ <origin>gentoo-guru-overlay</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/grpcio-status/grpcio-status-1.75.1.ebuild b/dev-python/grpcio-status/grpcio-status-1.75.1.ebuild
index 6483dc16d222..d06dac516c1d 100644
--- a/dev-python/grpcio-status/grpcio-status-1.75.1.ebuild
+++ b/dev-python/grpcio-status/grpcio-status-1.75.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}/src/python/grpcio_status
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/grpcio-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/guidata/Manifest b/dev-python/guidata/Manifest
index 29b0a62b0c19..d0cd541df5d7 100644
--- a/dev-python/guidata/Manifest
+++ b/dev-python/guidata/Manifest
@@ -1,2 +1,2 @@
-DIST guidata-3.11.0.tar.gz 720579 BLAKE2B 55c346222a60cc12484d9966aaff77da22532bc6066cd5c9592afbe0c09818598cbec1a4ed4240c135f5ee7feb9f552f60fe186915b46da106622cf6c0d3ca51 SHA512 32c9087a7f45e6f07b67b090be01b0010e9ccd5037e608cd87b3b29c9d1fd760ff135602b3f2d539e6441a96a53eb89595e59d7db85e4b900f4c8afdebf44247
DIST guidata-3.12.0.tar.gz 722401 BLAKE2B 63849d3c83ac3a5c940b5fb5c9e9c58294461c93dd82a95ea3f3c20be98f6e58f9905c96bbe4766739f41d3373b8ed171113fc693d00b7194bebdf8481566397 SHA512 aec447bd3483f977d4e26c7cbb68e1232ecc218d9df72843c5ad7baaf944bbedc91e9d2343f6169e1c88c20a577111405092701cbf1c4c0a49c245cdee726517
+DIST guidata-3.13.1.tar.gz 775563 BLAKE2B 4a7b1739b9a2d194cc8455de92df60d7584dda9b81f9a8e5f76d25b3f773e98cffd58d24c1df3a4548b0c2e3854428b933f75b9b33d848ca7571ee4f5f34b715 SHA512 578d34878b25cfb36c563c0b9fd913fd3b28c36e2a9a0b3b2485a8d6c9bfecd6e120b969617268c738f288be42ec564faf38321e083eb59c17e1b0a9600cd103
diff --git a/dev-python/guidata/guidata-3.11.0.ebuild b/dev-python/guidata/guidata-3.13.1.ebuild
index c3e47082dbcd..27d0a91fe154 100644
--- a/dev-python/guidata/guidata-3.11.0.ebuild
+++ b/dev-python/guidata/guidata-3.13.1.ebuild
@@ -14,16 +14,12 @@ LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="test +pyqt5 pyqt6"
-
-REQUIRED_USE="|| ( pyqt5 pyqt6 )"
+IUSE="test"
RDEPEND="
- pyqt5? ( dev-python/pyqt5[${PYTHON_USEDEP}] )
- pyqt6? ( dev-python/pyqt6[${PYTHON_USEDEP}] )
-
dev-python/h5py[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pyqt6[${PYTHON_USEDEP}]
dev-python/qtpy[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/tomli[${PYTHON_USEDEP}]
diff --git a/dev-python/hishel/Manifest b/dev-python/hishel/Manifest
index bdc4bffabbc3..b7c517f4ce12 100644
--- a/dev-python/hishel/Manifest
+++ b/dev-python/hishel/Manifest
@@ -1,4 +1,3 @@
DIST hishel-0.1.5.gh.tar.gz 1065622 BLAKE2B 926801f579a57cc2b45cb6cd5326459493452d34b32a2725b906307dcc4575b1297b35ffc626e51acc5805216731552d58c672dedb0541f2c771f153daee960d SHA512 b1f850895b147da616ace381d98ac9b6a15386d7e79d64a57a4e87f9bd0b42009a6ffa15fe1f8e46c57f8bc664c3af97d46e5adb81211e30fae87dab898f7734
-DIST hishel-1.0.0.gh.tar.gz 1094037 BLAKE2B 65ae2cf7f4b891ffc4ee1db1b2cfd816cf27f47dc3a410844e3da943a565e2372b706c6c1500c999cbc482165fea769b174a66e2e111824e28f57dfb8d6a6bbb SHA512 521058fec2e8e998c94b348260500ee36dfbbd571eb557f3430f3557a314ac7e7fe4f3e68f3a6980e17a232328ce1989de37629134023ac6bdacd83151958d39
-DIST hishel-1.1.0.gh.tar.gz 1094013 BLAKE2B b5efeefe4ed58607fceff877e3c5f8f0c9a4dffbd959f1e12ba703c9202a4c3e66d4b497e45b08ea3cdec90d8577c1d11a095fecd989d743259430946571a021 SHA512 5bed11379a73ed8afed0173b9e33b92294ca076aed3422c4fd484794a8834426498045edb55ad4f58f0a0e355f61766dfa6ccaaffc0d14971c8c179a2ca054e2
DIST hishel-1.1.1.gh.tar.gz 1096020 BLAKE2B aa575b65be1f95905c789ffc8159c81d7c39a30b8f8f2e3f85983e4f0d7a47b13b5953bf08fc53fb81116d2fe6f7735daef88fc623abb1f2e8c7d7df25b17670 SHA512 cd6e90695cfd4194306432cf8adaf2a7adc3f44bbe6ccb31b6a651f07eb0ccb6ea16641f1c4b6f0f3a5198a8a891ebedce051e597613d8d8ab5028e95328e2e6
+DIST hishel-1.1.2.gh.tar.gz 1097284 BLAKE2B 230bde8f23bea76a6741c7030c63b0eb10698f99092010044d7b269673f9c1426a9aa8e268261bfe0634d318f361d5a87578c056842ab294296e2f9afc73c900 SHA512 49d956184421da99ae89f047023fbe3584a3e5623cd07d288e1b4759969be73b7de07020712b5b57117ffe95385ca14a4bea346e2a3beecc024f6fdb1df71436
diff --git a/dev-python/hishel/hishel-1.1.0.ebuild b/dev-python/hishel/hishel-1.1.0.ebuild
deleted file mode 100644
index f11ce5dc514c..000000000000
--- a/dev-python/hishel/hishel-1.1.0.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# 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/hishel/hishel-1.0.0.ebuild b/dev-python/hishel/hishel-1.1.2.ebuild
index f11ce5dc514c..f11ce5dc514c 100644
--- a/dev-python/hishel/hishel-1.0.0.ebuild
+++ b/dev-python/hishel/hishel-1.1.2.ebuild
diff --git a/dev-python/html5lib/files/html5lib-1.2_pre20240221-py314.patch b/dev-python/html5lib/files/html5lib-1.2_pre20240221-py314.patch
new file mode 100644
index 000000000000..785f77b04c59
--- /dev/null
+++ b/dev-python/html5lib/files/html5lib-1.2_pre20240221-py314.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/965490
+https://github.com/html5lib/html5lib-python/pull/589
+
+From b90dafff1bf342d34d539098013d0b9f318c7641 Mon Sep 17 00:00:00 2001
+From: Andrew Sukach <andrew@sukach.org>
+Date: Fri, 12 Sep 2025 21:53:31 -0700
+Subject: [PATCH] `setup.py`: fix version parsing on Python 3.14 (ast.Str
+ removed)
+
+Python 3.14 removes the ast.Str node type. String literals now appear
+as ast.Constant(value=str).
+Update the AST check to accept both ast.Str (for older Pythons) and
+ast.Constant with a string value (for Python 3.8+), allowing html5lib to
+build successfully on Python 3.14 while remaining compatible with older
+version.
+---
+ setup.py | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 30ee0575..42ab6f67 100644
+--- a/setup.py
++++ b/setup.py
+@@ -92,9 +92,14 @@ def default_environment():
+ for a in assignments:
+ if (len(a.targets) == 1 and
+ isinstance(a.targets[0], ast.Name) and
+- a.targets[0].id == "__version__" and
+- isinstance(a.value, ast.Str)):
+- version = a.value.s
++ a.targets[0].id == "__version__"):
++ if hasattr(ast, "Str") and isinstance(a.value, ast.Str):
++ version = a.value.s
++ elif (hasattr(ast, "Constant")
++ and isinstance(a.value, ast.Constant)
++ and isinstance(a.value.value, str)):
++ version = a.value.value
++assert version is not None
+
+ setup(name='html5lib',
+ version=version,
diff --git a/dev-python/html5lib/html5lib-1.2_pre20240221.ebuild b/dev-python/html5lib/html5lib-1.2_pre20240221.ebuild
index 5bc0bebafcd2..085fbf42e565 100644
--- a/dev-python/html5lib/html5lib-1.2_pre20240221.ebuild
+++ b/dev-python/html5lib/html5lib-1.2_pre20240221.ebuild
@@ -40,6 +40,10 @@ RDEPEND="
>=dev-python/webencodings-0.5.1[${PYTHON_USEDEP}]
"
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.2_pre20240221-py314.patch
+)
+
EPYTEST_PLUGINS=( pytest-expect )
distutils_enable_tests pytest
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 41d857929c4f..812157aaf11f 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -4,3 +4,5 @@ DIST hypothesis-6.142.3.gh.tar.gz 9624774 BLAKE2B 0c61fc5cde52c782a11670ae09cb11
DIST hypothesis-6.142.4.gh.tar.gz 9624807 BLAKE2B ca10595f6d76b6b707428a9bbf432ddb3e61890b6e529b984ce8231ac3d0b7070e6a311f1a7f70e2c82f673694f3e39bd8a8dad716f5bdb02fdec08aa4f2205f SHA512 a34749a558bd688f66201601a5ce29f1180e6b5fe3d0c07da9f72f1c0152ea9bc516797e917a287a8a6b9da1c09886cf97c934a154fc090083b2b9cf37492426
DIST hypothesis-6.142.5.gh.tar.gz 9625137 BLAKE2B 2a0146541b95710419c5ede4288a3996d1e7688932b7f888d960fed5c69b344b1fb5e9e4509c97033d102137e315b10d3d1d336ed6964db8caaacdd23c160213 SHA512 5d7f21dd449a951ea9974dcb586087a5f0a43a2bc84ff5898ef81d53d9a543a7afdc26e85ffc21be01f300d6582eedb2f99cf086fd5eb9debb457b62f75500ea
DIST hypothesis-6.143.0.gh.tar.gz 9632960 BLAKE2B f09cbbefe2f8f08f395f7b985e0228ad187a5099e4324a42fb46b3b2717121d51adac443659179b8a71069b9588036d667a9d9190cbfdd7ea5af08dc32aacafe SHA512 3e64ca49152f776f719f25ad10f60616535eb7d9474237df64613997ce7bec9d8afbf15ecd1f0b84246b3befe7fe78398dc7a5b475f489573393c966aa31babc
+DIST hypothesis-6.144.0.gh.tar.gz 9635457 BLAKE2B 1cfcdde69238b5e7233178e8df0f3351bba03eb2f9164cc8f45aafbaa0e7ae1877b1bf7c6619f4b8f3f4ded791f6736b0bbf4cdffcb0c98a04f9c39414d33510 SHA512 14794308624be4ed65f88a9fd6affec6e69372c8e03c17a475b71f7cf14f5a7c2fb656720257750f51c35b51c48c26902c854fb6854dff9ae50c94db113701a7
+DIST hypothesis-6.145.1.gh.tar.gz 9636827 BLAKE2B e39544074d83b33b6e04eb26319d20dd48e4196f216c782149fdf9e2bd869b5f29aa97b3606a5235bcf41dc0a98db05966c6e542a64ab5a63470038f9eca02fd SHA512 3af66ecac9217a11dccba070f16af610e0ca0216d802ae298d9a5ded6c62546b70d260d7fd191785b84f106ff9786af2dbda400e30bd4fb5caa05ef6a0fd65ee
diff --git a/dev-python/hypothesis/hypothesis-6.144.0.ebuild b/dev-python/hypothesis/hypothesis-6.144.0.ebuild
new file mode 100644
index 000000000000..51164dd25038
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.144.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=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/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=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/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.145.1.ebuild b/dev-python/hypothesis/hypothesis-6.145.1.ebuild
new file mode 100644
index 000000000000..3239d4fba180
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.145.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/imageio/Manifest b/dev-python/imageio/Manifest
index 31233b13bb1d..981771d5bb20 100644
--- a/dev-python/imageio/Manifest
+++ b/dev-python/imageio/Manifest
@@ -1,2 +1,3 @@
DIST imageio-2.37.0.gh.tar.gz 416361 BLAKE2B 6d66b9896cceca2279cec10968f1f71e0a9b387f0a3c43dcdf69a02cb037e3df2ea4e07c13d4f89dc5e61177d7a57fbed30c1cc8423977a1518c8b056ed8e87c SHA512 24d57913e6f070d85591a7ed13362d17ff6011385bece7ad715a5b1d775202832028223eae1b6817bf30fc189eb136a88a969e882310742aa7cb2a1cd59ba310
+DIST imageio-2.37.2.gh.tar.gz 415683 BLAKE2B 29b51deb60308a9b7cdb4f42d659af9ed12b326677023ecd86f764d729a30bbb0451019d12274ac8f0469ddb5632777ef8e9d374dcd9397957c613fc286e7f3a SHA512 46d44c3f5c32e13e3317d7135062e201bc80f5bd0f504dbc34398f34a6fa8140d61072e5a3566bef503baf994deaadaa13c81f25f69fac5009fad24e14cd1dac
DIST imageio-test_images-1121036015c70cdbb3015e5c5ba0aaaf7d3d6021.gh.tar.gz 195497374 BLAKE2B 0083212fd63c196dc2e721bff8f89c177b6741317b6b1c6ae9d00a8dd5fb6366efa3f01b9bffafafac7177cfdaa4d700077a2bad42ada735f5553e97f651c4ad SHA512 1bb1f36a069bfaa0d0ffe5258534e02e49237fc6ce85fe3d3648650130165abc9b3d5ff0e7e5861ee1d94add00d4258575f9c2f8556debecf597bdaa5499efe0
diff --git a/dev-python/imageio/imageio-2.37.2.ebuild b/dev-python/imageio/imageio-2.37.2.ebuild
new file mode 100644
index 000000000000..884969383383
--- /dev/null
+++ b/dev-python/imageio/imageio-2.37.2.ebuild
@@ -0,0 +1,104 @@
+# 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
+
+# teh test suite always clones the newest version
+TEST_IMAGES_COMMIT=1121036015c70cdbb3015e5c5ba0aaaf7d3d6021
+DESCRIPTION="Python library for reading and writing image data"
+HOMEPAGE="
+ https://imageio.readthedocs.io/en/stable/
+ https://github.com/imageio/imageio/
+ https://pypi.org/project/ImageIO/
+"
+SRC_URI="
+ https://github.com/imageio/imageio/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/imageio/test_images/archive/${TEST_IMAGES_COMMIT}.tar.gz
+ -> imageio-test_images-${TEST_IMAGES_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.3.2[${PYTHON_USEDEP}]
+ media-libs/freeimage
+"
+BDEPEND="
+ test? (
+ >=dev-python/imageio-ffmpeg-0.4.9-r1[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/tifffile[${PYTHON_USEDEP}]
+ || (
+ media-video/ffmpeg[openh264]
+ media-video/ffmpeg[x264]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ local PATCHES=(
+ # block silently downloading vulnerable libraries from the Internet
+ "${FILESDIR}/imageio-2.22.0-block-download.patch"
+ )
+
+ if use test; then
+ mv "${WORKDIR}/test_images-${TEST_IMAGES_COMMIT}" .test_images || die
+ # upstream tries to update the image cache, and invalidates it
+ # if "git pull" fails
+ sed -i -e 's:git pull:true:' tests/conftest.py || die
+ # ffmpeg tests expect it there
+ mkdir -p "${HOME}/.imageio/images" || die
+ cp .test_images/cockatoo.mp4 "${HOME}/.imageio/images" || die
+ fi
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # uses fsspec to grab prebuilt .so from GitHub, sigh
+ tests/test_freeimage.py
+ )
+
+ local EPYTEST_DESELECT=(
+ # Note: upstream has a needs_internet marker but it is also
+ # used to mark tests that require test_images checkout that we
+ # supply
+
+ # Tries to download ffmpeg binary ?!
+ tests/test_ffmpeg.py::test_get_exe_installed
+ # blocked by our patch
+ tests/test_core.py::test_fetching
+ tests/test_core.py::test_request
+ # Internet
+ tests/test_bsdf.py::test_from_url
+ tests/test_core.py::test_mvolread_out_of_bytes
+ tests/test_core.py::test_request_read_sources
+ tests/test_pillow.py::test_gif_first_p_frame
+ tests/test_pillow.py::test_png_remote
+ tests/test_pillow.py::test_webp_remote
+ tests/test_pillow_legacy.py::test_png_remote
+ tests/test_swf.py::test_read_from_url
+ # requires pillow-heif, also possibly Internet
+ tests/test_pillow.py::test_avif_remote
+ tests/test_pillow.py::test_heif_remote
+ # not important, requires random system libs
+ tests/test_core.py::test_findlib2
+ )
+
+ epytest
+}
diff --git a/dev-python/indexed-gzip/indexed-gzip-1.10.1.ebuild b/dev-python/indexed-gzip/indexed-gzip-1.10.1.ebuild
index 772e0fdeb0a5..d8726c50b487 100644
--- a/dev-python/indexed-gzip/indexed-gzip-1.10.1.ebuild
+++ b/dev-python/indexed-gzip/indexed-gzip-1.10.1.ebuild
@@ -20,7 +20,7 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
- sys-libs/zlib:=
+ virtual/zlib:=
"
DEPEND="
${RDEPEND}
diff --git a/dev-python/indexed-gzip/indexed-gzip-1.8.7.ebuild b/dev-python/indexed-gzip/indexed-gzip-1.8.7.ebuild
index 9ab0d111814b..39484e9f9e5b 100644
--- a/dev-python/indexed-gzip/indexed-gzip-1.8.7.ebuild
+++ b/dev-python/indexed-gzip/indexed-gzip-1.8.7.ebuild
@@ -20,7 +20,7 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
- sys-libs/zlib:=
+ virtual/zlib:=
"
DEPEND="
${RDEPEND}
diff --git a/dev-python/indexed-gzip/indexed-gzip-1.9.5.ebuild b/dev-python/indexed-gzip/indexed-gzip-1.9.5.ebuild
index 9ab0d111814b..39484e9f9e5b 100644
--- a/dev-python/indexed-gzip/indexed-gzip-1.9.5.ebuild
+++ b/dev-python/indexed-gzip/indexed-gzip-1.9.5.ebuild
@@ -20,7 +20,7 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
- sys-libs/zlib:=
+ virtual/zlib:=
"
DEPEND="
${RDEPEND}
diff --git a/dev-python/internetarchive/Manifest b/dev-python/internetarchive/Manifest
index 412e83290aa2..83909d734b2e 100644
--- a/dev-python/internetarchive/Manifest
+++ b/dev-python/internetarchive/Manifest
@@ -1,2 +1,3 @@
DIST internetarchive-3.7.0.gh.tar.gz 145990 BLAKE2B f4832193fde0afdfd6ea1af46d0dea08abd73e56b5d799eb4e9a1b6424f95dbb6b1d0bc3d25fe0ae2bda7edcd003cfbff97c941a313018d4fb83bb562e30c121 SHA512 56554c3001f21ce770fd44ed2628b2fac40b96bcd5370935604c1fec465fd5a44be4a89ffa119cbd6f01be805161fe2fac93375d96f59d2ed38ff6418d5da714
DIST internetarchive-5.3.0.gh.tar.gz 152973 BLAKE2B 1ff3b3bb61d830a27738bded36346c599bd9adbe34c4627a88ed8a371249701c7219e798211e82f58a4e4207e83761154c1b43b4046d3cfbaeb2d0dfd414ad3f SHA512 8f0e07e5add97a8f4d194fef023388c702c17bdd1bf25b8b22e7962a53f2a8077577eb615d8eb74769a829bac5ec41aeb5617ea4fc8e38d4adb0be69b2a896f3
+DIST internetarchive-5.7.1.gh.tar.gz 165427 BLAKE2B 34e6c35feacbe60e228a6896486480b438db704dd63fcdb5529d4dc449d3db1075198a23fbef32defebb0855f9df18fcfa7f942c316500222c0b8ad5edf313e8 SHA512 be3035f047d5eb133cb490ddfbf3f773bc5e565d4142cc449345c814938571e02af21a3162e5f33746c53affe1a5389f3fc1fb442c7a0934fb2ce31d785f24a2
diff --git a/dev-python/internetarchive/internetarchive-5.7.1.ebuild b/dev-python/internetarchive/internetarchive-5.7.1.ebuild
new file mode 100644
index 000000000000..7012afc819ac
--- /dev/null
+++ b/dev-python/internetarchive/internetarchive-5.7.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 2024-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
+
+DESCRIPTION="Lib and CLI for archive.org - for search, uploading, downloading, rename etc"
+HOMEPAGE="https://github.com/jjjake/internetarchive"
+
+SRC_URI="https://github.com/jjjake/internetarchive/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/schema[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/responses[${PYTHON_USEDEP}]
+ )
+"
+
+# Because they want internet
+EPYTEST_DESELECT=(
+ tests/cli/test_ia.py::test_ia
+ tests/cli/test_ia_download.py::test_checksum
+ tests/cli/test_ia_download.py::test_checksum_archive
+ tests/cli/test_ia_download.py::test_clobber
+ tests/cli/test_ia_download.py::test_destdir
+ tests/cli/test_ia_download.py::test_dry_run
+ tests/cli/test_ia_download.py::test_exclude
+ tests/cli/test_ia_download.py::test_format
+ tests/cli/test_ia_download.py::test_glob
+ tests/cli/test_ia_download.py::test_https
+ tests/cli/test_ia_download.py::test_no_args
+ tests/cli/test_ia_download.py::test_no_directories
+ tests/cli/test_ia_download.py::test_on_the_fly_format
+ tests/cli/test_ia_upload.py::test_ia_upload_invalid_identifier
+ tests/test_api.py::test_get_item_with_kwargs
+ tests/test_api.py::test_upload_validate_identifier
+ tests/test_item.py::test_download_ignore_errors
+ tests/test_item.py::test_upload
+ tests/test_item.py::test_upload_automatic_size_hint
+ tests/test_item.py::test_upload_metadata
+ tests/test_item.py::test_upload_queue_derive
+ tests/test_item.py::test_upload_validate_identifier
+ tests/test_session.py::test_cookies
+ tests/test_session.py::test_s3_is_overloaded
+)
+
+distutils_enable_tests pytest
diff --git a/dev-python/internetarchive/metadata.xml b/dev-python/internetarchive/metadata.xml
index e6eaa5b74cee..bfdc86e6a06f 100644
--- a/dev-python/internetarchive/metadata.xml
+++ b/dev-python/internetarchive/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person">
+ <email>esteve.varela@gmail.com</email>
+ <name>Esteve Varela Colominas</name>
+ </maintainer>
<upstream>
<doc>https://archive.org/developers/internetarchive</doc>
</upstream>
diff --git a/dev-python/isort/isort-6.1.0.ebuild b/dev-python/isort/isort-6.1.0.ebuild
index a1ec1fcf78f8..04c09a667ba9 100644
--- a/dev-python/isort/isort-6.1.0.ebuild
+++ b/dev-python/isort/isort-6.1.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
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/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/libcst/Manifest b/dev-python/libcst/Manifest
index c0c6d19510e3..92dea86fdc13 100644
--- a/dev-python/libcst/Manifest
+++ b/dev-python/libcst/Manifest
@@ -32,15 +32,16 @@ DIST itertools-0.14.0.crate 152715 BLAKE2B 3c075b735a6ae4b66980b1f7ca0ccf4237286
DIST itoa-1.0.2.crate 11112 BLAKE2B e277db8e2f506d4d20b6888b609d9726d594e1cb2c9f21df60a8cf8dcbad1808d8c1bdb0b7857ce7734b92c0f23fb1ec56f8564e779f27eea953d0ffbfcd3f84 SHA512 44a732a102d60b58e72fe76c43a1d185fa12ff08d04eeacf03234368552f84d3de87a2ea0a6e7a56b8cfa74cb6f6697005afcee26f45afe0c2fc7dce5da3b593
DIST js-sys-0.3.77.crate 55538 BLAKE2B 8a4c04a8e93bf5dab63784a24320a314cc5cb629df788e116c452857b8c049c6bf357f3bf8f35086eaa81bc2d7f0954001addfd0577d845844871ee138e81bc6 SHA512 d9370ed6ea892bd51ea181630ca661c348f82d575381aa4c8b529113dfcab6687f4d19bceecad7e1b28ebaca74d405862150a5b5ee2d5d55efdaf98eed1ab255
DIST libc-0.2.149.crate 715592 BLAKE2B 21dd5d4f9351f3c75790077c7b025046db665f2d48d7a72cda7667bc60febf79d82708cf7d39a323a594397cd590bd3d2a2f85349b4473b90ea4da918382ed0a SHA512 0def64d400d473d6eed30e985522d36801ee6472b15f90e74dc4592e0a8ffbaf30b731be280de52b30255cf60aeca8efe817b67049227dc7000c807e007d7289
-DIST libcst-1.8.2.tar.gz 881534 BLAKE2B e68e0af99c3db0e1280529bce2dacccea5c01a5d19635d195c13c128c8f485d8e4ac621de34f51a25daaa342aee58c5d0af238affb674a30465deabceda654ed SHA512 dd501de64e13dcb6cbfa4ebe8c89513cf8b2d27fa97d34b02553c1462c3052bc65253cf55a1bce1124e87108bdc834f7e7f5bc1180217a678304efa1130e2a3e
-DIST libcst-1.8.4.tar.gz 884416 BLAKE2B e633723a4c59fdee07f27e51fd161971aa69f99c087613a016205c43eadb75e54078a233a0f0350eb514bc8d77463eac8f450ba752c6c8b037e03863a3f2f465 SHA512 3d6f96d75e05853c92e1ee10a146d86b405f0d3286049f7676c6f7b81f6bd0c3de8b9e7948f4a589748187d76b04a5759a1e14627e47f067d8df2e56195054ec
DIST libcst-1.8.5.tar.gz 884582 BLAKE2B b79c7c91050d5401c50cdcdbb8e9f8784dfe06d6a100795c20d67595f209f84996be4a46cc1f82ed7768212b829a245205f1846f202c7e60969a8a744676cd92 SHA512 30070d7f4ed973934b37e58313fe27d66402877f9db3ff644ad488978758053bdc41d7d073441bce4466f92ec9a3b01ecd4e7e58462a84cc55ddf46c0ee0c7b2
+DIST libcst-1.8.6.tar.gz 891354 BLAKE2B f99592fe85a543e5996ebed401478cc27f8cba53d9945fa5e948e109e2b52f35a11da78a44fc66a16c1877be55b99d16015e90cac9811410f37b615ec2d9ddac SHA512 fe6c2b1cb1a9ef2b02e8f73fae3b91fc42af7e2ae78f9c0120dd5417635026aa26ee2cf1413f3ecc1fbbd9655381e2c49a878ec7475c205ab93a89ae7f317100
+DIST libcst-1.8.6.tar.gz.provenance 9393 BLAKE2B 3938392a475caaf546df3c0280e956202a016abfdb4566a391e49e02c6d2346ed4ddf683c3d9f6ca6e32288ff06f5e6e1e8537f095fa06b513c5cf5a9ecbe4e3 SHA512 ea4d3e60ffd0d6f7b34f1dad72011c7ef50f03cfed44fec8fa58e1c387ff1b6f748a55c1a2f297fe392573c91a7965adbf92e45d39a4e49fd553718df7a2e788
DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f
DIST memoffset-0.9.0.crate 9033 BLAKE2B 19090c1af8b8cf54a2cf7593748aff4d3dc685ec7080aa476139c1721ef71555495e1bc513b1efaddc7e7702f83e0e1c2a8f71ff40009d266539484c9297e0ed SHA512 2f04f9b6fed31e94388c18162ad275897a835df7b9ac827f4df0f4b0ecf71064ef247f7ad11dbc27d7a6d448984a0f29d1c000e3c8d5fa6e121fa9571770ec55
DIST num-traits-0.2.15.crate 49262 BLAKE2B 942ab170b2acce1cb40e6847f766bf810a79edd293d34f3a27864f464c16fe2b99fb13171ba429cc6d584248de879434beaadf1b231a4001b0e8389ed6c1be04 SHA512 5228498af0f15daeac3c9210f3e6e71cfaaeb30beea81dd37f8eb06b9592c8bf3226a47597cd8592ad4c513964a9a40f1ab2c33102ef3dfe3800d22c8d4528e8
DIST once_cell-1.16.0.crate 32120 BLAKE2B 59bfc8a44f1fec72442e3d34bf4be3a5af073f854f07b3618b2857c759dca4a0fa6ba358514ae28c25d745b01bb7b390ffe9ed6e296d163fd3dd67e49092b87a SHA512 bc199570ee43bde9245a2c4637ae738e370ce9988635c8342349ceb6fb158f376247b69f9ec4ea0e6d76b934decdc77a524299ebde96c0a2c2d29d9501b9a568
+DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
DIST oorandom-11.1.3.crate 10068 BLAKE2B 443ced49f63015823866257a36a88e566f75adaa79511c1c73f1190ec8855ca590d2b6ece07c2ad5e9e47a89f7891af6e9e43b7d74d9ac57cb3551e60b50aca1 SHA512 51ae60ef51da56d7673f36a6c5b99b743580c5f5be54fdcb54b69e5e2f6bbba3267f96b74e7cd6dee6962dfa6696fd9ed073f22726a2861b8f2601946a8efab9
DIST paste-1.0.15.crate 18374 BLAKE2B 69ee7def55e658a9aa72405bad62325e8d6021a4989fbf11c88d1bf05fbac520f7b04d467bc3c6eb45043a41119f65aceecc4a6a1418a9192d73f33134545062 SHA512 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4
DIST peg-0.8.5.crate 22411 BLAKE2B d11ae9dd8eee3555d3cdb882d0b9c8ec8b042ba312ddc146fbe1630cabe233af1acfe99d19d5bf795423d1f350cacc7089515d460e8be2ffeedcf6205ded8753 SHA512 d23fe530ab6d7a26e5a51e25ab672c188ed030d92e14db1f0409267cfc46ebeb13b4e8d07b4e2e7739a4db015808bd5d1654861a89cf5ee31b64dd5e05f583c8
@@ -51,22 +52,19 @@ DIST plotters-backend-0.3.7.crate 13709 BLAKE2B 7ba96de1435beaffe0171dd4fd010f84
DIST plotters-svg-0.3.7.crate 6715 BLAKE2B 1437ad7e1c1b3e82ab1f58660ff6931e510f6ea5ea6cae6eb48582d4652bc65c5dad518d3312e25303651c03d90bf56d9abac4c2e3979f8290b4cb35c0b6ba5c SHA512 9a60e19026edfad359a7d042630b60825d7723855fc0c17881ac880c29160a81449ca672a3ae5cea4405293947ae0556f31cb37f519dad4cef56353248350cd6
DIST portable-atomic-1.4.3.crate 126291 BLAKE2B 08fbfd391c9eb55c02b8345549a57fb5c3b8cfcd81e3867ca49cba94faa7b2d372e4f2996fbef4a52742d852b117d4b7cc488571df7272b93caf47a9a2680c46 SHA512 89f14902c1e55c37d7663bc9255378441a0951e5d8e21665a8102e06b766135cec6d982f9ed01b4167e872a7853102ad0e9347e9b163ea81d81b00ee2362e9a0
DIST proc-macro2-1.0.95.crate 51820 BLAKE2B 93229d80556ec03bce4031607d13c7902cacc2d7e2586a692ffe8543d52e3f3ba253c9c311ddedf6d9348ce8758ae8ff64577675cda2dac557f936a328de47e3 SHA512 f78e4d47ecd29c1b2315554705e445507bbfb9449afd0bf1b74df28f266ac6382ca8c3ce135ddc55c989eaee64d1794a0933a941c8ff55f543fa21c400016547
-DIST pyo3-0.25.0.crate 1120850 BLAKE2B 6f373129d032e6980d058ec5dbfea58a7ce0cb8ed2b32aa852a14746cfd3a541b02286676c934a5d7f7bc1bea03e986e93e44de42114f7620b487977c0092d85 SHA512 83336d284eefdef5bc26dec4880e21c608a001b4676b3628eb59b7c0011fb672ca81fca035666b714eeb158809064f9b5b0720802045d5ff8fc9f6af02813c30
DIST pyo3-0.25.1.crate 1121993 BLAKE2B 79a982131fc4c4f9292e97bc8d938d236ee9cefb99bb90646a84703660ad506aee8ae1f1e626d985aa62c695722510f2697544581fa5c3a01f193be2bc2779fe SHA512 9c842c89d274dba0c8a3085a8524736245d65f07e5c05bc13fc89167cfdeb1a4ff2b4a9da9467eee918e45d01777473f39bda11efe0052859969d4fdeac1adc6
-DIST pyo3-build-config-0.25.0.crate 34122 BLAKE2B ba098ff1c963c43d0cd1fdfaec43573ee0d9afff7cc010b7b371504ab66e1fec9233bab04c8c7656c382366d622589d0d5e865a8a271c68a9831ca657b49fcb9 SHA512 f6580bcc12bf8235bd8bdc09908f861645adfcdee31cf88d6443e628601bf3107c1d823c09dacb8e1bdaa171ae49f15e19811b9752600b799a4e86cdea081d40
+DIST pyo3-0.26.0.crate 1151579 BLAKE2B bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3 SHA512 e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194
DIST pyo3-build-config-0.25.1.crate 34126 BLAKE2B ca905f1f74e26f38ab63a4f5754055c9dff01f9396f81ece09b7ce067181b657e6746db3b373f7177805f6564d0df0db064b5fcab8160d5edc357e64dd32d0fc SHA512 d6fe4a46111188203a839c8c73b9835f98cd6bc5982868cbcc9f502c5a09b35c3e61117b50ef8372470051b5bc4959731907748ffca89f42f300a3081b7b0467
-DIST pyo3-ffi-0.25.0.crate 77991 BLAKE2B 0474051570bf71070eab2578e0f9278327ccc48510419d292a81887fffad753ba434db6b795536512a688426eff42ea9805f99b1a3237ec927f6c731033850b2 SHA512 e03cb71493c898408a0692ba7fb4cd704e48c307f5115159f3375fae879e46f5cd7536325d70e7dbd3aeca8ea282a0fb5b5ac609bc807e8b9cb6abbd3a9a2ca5
+DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722 SHA512 a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b
DIST pyo3-ffi-0.25.1.crate 78058 BLAKE2B 351fe00c99008a34a003e50cd4f6d25e6dae5a446928358cd5146ac9924254614724a015ae77d8aade7bcb497cf5e5b5018021ff5d89a8efa6412f5ccb48744e SHA512 35ab63888f49df13fab8b96b87f6c705186173923fd5898abe8730675156426f020ee517019926ba5e06cdb4fc5f91a75f648ce9eba892e9eaf3ee17864a8ec7
-DIST pyo3-macros-0.25.0.crate 8876 BLAKE2B 09c37cc5bdaec6859461a7bb4d1c28d0ddd77a448fb5097275fe7be373897900e2dcdb1c43eb4cc915e1089ac1204f4a7155c4b69478b0778e179aded1449ff0 SHA512 ee1218b6981d94a228bf55f31f0131c094728b12c19b312a77386cace2c4768ad8fc8a1a1999bf27c6a30012e20a1eb7a574d918ccacc421930c12cb1a6386ef
+DIST pyo3-ffi-0.26.0.crate 78247 BLAKE2B 65f1c399bc763bf8afc36ccac27d28242ebcccebd08ab8d9b3165ca5c9abb10f76e76fe5a250aa1e0cdc1d1e8a613160660f07bc0dbc2812675acb9dfc8e89c2 SHA512 91c2ae828e997dee5e48d839794727e94576228e9329c358a3bc77a59f8f37fa0ae6c2579229782b3f46ab90725844ce9194b9de4d3849d824adf1d40743bf7e
DIST pyo3-macros-0.25.1.crate 8886 BLAKE2B aad9c975c90ff93429be24287d76edd945578b546a927f54d82b6d4bf184f1f8d426ac112307205346e85999a1e89b097f68310de647f27474790bff01c3517a SHA512 08387f3d1ddb0cc253eed376e6e8ebe5722b31664ec742f16c0454b52f1fbcadbe7720ae9e2d3870fe0ca2690916cf6e3e032f5a3e65d767322c068432f6d470
-DIST pyo3-macros-backend-0.25.0.crate 75089 BLAKE2B ea4d87e16616782c60f46f97d87a002ea2873a2ab6f7335da68bab32d636988fa30834c946943d4c56c6e5992c78ba6dc2cf8b613c2a402218599ef3e7a6c5be SHA512 dc2e567a09e746893d7cea57aa456124df31b1e3cb25f5b1fabdc97cd2ae73eea1d57aa642268bdbef3dc1ba0e383893d1b5dfd9cf1f3e818f77b9fc0ef2c486
+DIST pyo3-macros-0.26.0.crate 8906 BLAKE2B 60eef72d27b5bc922b75f71ae24bb6f380288cb3a619bf2940b0de47b27e86cce0ffdb1fbdc9c0540d3f15c9df4884497aa1e6efec0f1579ac722b414818a428 SHA512 07bcddba0926c3dff7629da3260f9a38593fbb337b6a68d55c223f5944d912885e5319cd635ae1785026fed4adea1fcc19695ae83aca5bea127c5a8868fd2c43
DIST pyo3-macros-backend-0.25.1.crate 76006 BLAKE2B 02225f8591585a6cbea7d6e53503bfbac395253cb0f45c588a2eb38908bf241034412832f2fcf4e9301318b5b9b82a888755d970f544f402a4f0cf9e4a6eefe9 SHA512 4c9006424630ab9bcd5dcdd45fe927a95a40a61757f0950396eb9f0c3f1794772092a19773c102220489cc621ad65d81dbbe459a1be472f6cd3211c50ef33cc2
+DIST pyo3-macros-backend-0.26.0.crate 81809 BLAKE2B 73885035855daf00b001e97e0a5ebe09412d212c8f01aa4db6638ef09990bf1bccbacf2e5a7e6ec21929bb1c2beba06587ecdb6ee954eda9e9c51c6c276cea95 SHA512 4146011a8ef18ecaa44b425eebe6e5e1370945063b98aaa83452e57b66aefbf5d483367b1d4d44aa5091303c4ba7f568c6428ecec0cfa6c90ba41631d4e99367
DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
-DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3
DIST rayon-1.11.0.crate 182470 BLAKE2B 40a21dac636e7a652d62d9db520bc50a7a0019f0f96aec6a9002dffdef3d7ee0b2a323e4c3022e5cbaa22efe52bc72573bcfc7d399dffc853bec08190ea4eab6 SHA512 24238ba604099b3e58282b7338ccc63e52621e329ac908d7f3799c632f4ff97ae305a5b361479d4d7d0f09b76f49ab3b75c4187c41542caaca0575d51c299d2c
-DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
DIST rayon-core-1.13.0.crate 73151 BLAKE2B 31112b2f4ff2a0607daced97e234c6cad1356c79d21c7493f3b19b2747083eca85709d5548c9214bb5186a7e2e5fe0def27c45d69d597cac976bb0956da2aa70 SHA512 dce0adda8f5858d351f628f50168d9097ecca437b77fc0c63ad18fb8b3fcc87f2f513cbcbf57606862e30e81f293a05d245073be75292d1a536d6a4d3e2edb9b
-DIST regex-1.11.1.crate 254170 BLAKE2B 5cf41012fc2ba8a006c0eb4a922cbbf1614bf300be361c9e2d98956a9a5e9b140e37bea09132fab7bfb633d4439158723624bcf45e8c619c4061b399253c1b82 SHA512 d065f6dc405771518260425f39a5eaaf8cab62e78c91ceed3b3994a9a121674d2484cadaaf816bdad89c87a40550d57b66a3d9de6618a7119a658301ce7e67d8
DIST regex-1.11.2.crate 166265 BLAKE2B 1ad50e6aa5d116e9aee28f8fb74ff1c981e62a31290441a62103a1f9827d1ce3b8f48dabf154dfa33441e57cc26d0fff95f2d27c05bf5c00f0820e22c584ccc4 SHA512 b1cd7de6128d2dd6dea6c367fd95d6eb10bdd4323d0750fa869d02a544e6e18222fdf369a2b29e991182d0374f75eb85b6fde70bb17df4bfb5d47efa46d7c0ae
DIST regex-automata-0.4.9.crate 618525 BLAKE2B ee3fc41c8c445be4c1aa3e5b19a3e61efd641b1a24e7a1ed55f837c1fba9c816272cb4645c13232b66b170bc7c413802928beb22e3891500141ad4ede65b60b0 SHA512 40bde0ec91cc27bc0c3fa237a37ecee5a1f023dbe006a999c5888f8f578ee2c4c64d9edfe1827546cea8e92ca3c10f8b4d494d81f3d0422b40d90bca9cf598d2
DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8
diff --git a/dev-python/libcst/libcst-1.8.2.ebuild b/dev-python/libcst/libcst-1.8.2.ebuild
deleted file mode 100644
index 1065d6d7f234..000000000000
--- a/dev-python/libcst/libcst-1.8.2.ebuild
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright 2024-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} )
-
-RUST_MIN_VER="1.80.0"
-CRATES="
- aho-corasick@1.0.4
- anes@0.1.6
- annotate-snippets@0.11.5
- anstyle@1.0.10
- autocfg@1.1.0
- bumpalo@3.12.0
- cast@0.3.0
- cfg-if@1.0.0
- ciborium-io@0.2.0
- ciborium-ll@0.2.0
- ciborium@0.2.0
- clap@4.5.38
- clap_builder@4.5.38
- clap_lex@0.7.4
- criterion-plot@0.5.0
- criterion@0.6.0
- crossbeam-deque@0.8.1
- crossbeam-epoch@0.9.9
- crossbeam-utils@0.8.10
- difference@2.0.0
- either@1.6.1
- equivalent@1.0.1
- glob@0.3.0
- half@1.8.2
- hashbrown@0.14.5
- heck@0.5.0
- indexmap@2.4.0
- indoc@2.0.4
- itertools@0.10.5
- itertools@0.13.0
- itertools@0.14.0
- itoa@1.0.2
- js-sys@0.3.77
- libc@0.2.149
- log@0.4.17
- memchr@2.7.4
- memoffset@0.6.5
- memoffset@0.9.0
- num-traits@0.2.15
- once_cell@1.16.0
- oorandom@11.1.3
- paste@1.0.15
- peg-macros@0.8.5
- peg-runtime@0.8.5
- peg@0.8.5
- plotters-backend@0.3.7
- plotters-svg@0.3.7
- plotters@0.3.7
- portable-atomic@1.4.3
- proc-macro2@1.0.95
- pyo3-build-config@0.25.0
- pyo3-ffi@0.25.0
- pyo3-macros-backend@0.25.0
- pyo3-macros@0.25.0
- pyo3@0.25.0
- quote@1.0.40
- rayon-core@1.12.1
- rayon@1.10.0
- regex-automata@0.4.9
- regex-syntax@0.8.5
- regex@1.11.1
- rustversion@1.0.21
- ryu@1.0.10
- same-file@1.0.6
- scopeguard@1.1.0
- serde@1.0.208
- serde_derive@1.0.208
- serde_json@1.0.125
- serde_spanned@0.6.7
- syn@2.0.101
- target-lexicon@0.13.2
- target-triple@0.1.4
- termcolor@1.1.3
- thiserror-impl@2.0.12
- thiserror@2.0.12
- tinytemplate@1.2.1
- toml@0.8.19
- toml_datetime@0.6.8
- toml_edit@0.22.20
- trybuild@1.0.105
- unicode-ident@1.0.18
- unicode-width@0.2.0
- unindent@0.2.3
- walkdir@2.3.2
- wasm-bindgen-backend@0.2.100
- wasm-bindgen-macro-support@0.2.100
- wasm-bindgen-macro@0.2.100
- wasm-bindgen-shared@0.2.100
- wasm-bindgen@0.2.100
- web-sys@0.3.77
- winapi-i686-pc-windows-gnu@0.4.0
- winapi-util@0.1.5
- winapi-x86_64-pc-windows-gnu@0.4.0
- winapi@0.3.9
- winnow@0.6.18
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="A concrete syntax tree with AST-like properties for Python"
-HOMEPAGE="
- https://github.com/Instagram/LibCST/
- https://pypi.org/project/libcst/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
-"
-
-LICENSE="MIT Apache-2.0 PSF-2"
-# Dependent crate licenses
-LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
-SLOT="0"
-KEYWORDS="amd64 ~riscv"
-
-RDEPEND="
- >=dev-python/pyyaml-5.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/setuptools-rust[${PYTHON_USEDEP}]
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/black[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/libcst/native.*"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # do not require the freethreading fork for regular 3.13
- sed -i -e '/pyyaml-ft/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO
- libcst/codemod/tests/test_codemod_cli.py::TestCodemodCLI::test_codemod_formatter_error_input
- )
- local EPYTEST_IGNORE=(
- # fuzzing, require hypothesmith
- libcst/tests/test_fuzz.py
- # require pyre-check
- libcst/metadata/tests/test_type_inference_provider.py
- # requires `python -m libcst.codegen.generate` which has extra
- # deps and needs patching to work in our venv
- # TODO: figure out if we don't need that for revdeps anyway
- libcst/codegen/tests/test_codegen_clean.py
- )
-
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # https://github.com/Instagram/LibCST/issues/1278
- libcst/codemod/commands/tests/test_rename_typing_generic_aliases.py::TestRenameCommand::test_rename_typing_generic_alias
- )
- ;;
- esac
-
- cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
- # fixtures
- ln -s "${S}/native" . || die
-
- nonfatal epytest
- local ret=${?}
-
- rm native || die
-
- [[ ${ret} -ne 0 ]] && die "Tests failed on ${EPYTHON}"
-}
-
-python_test_all() {
- cd native || die
- cargo_src_test
-}
diff --git a/dev-python/libcst/libcst-1.8.4.ebuild b/dev-python/libcst/libcst-1.8.6.ebuild
index b2dfa7176ee6..9baa32c8ac37 100644
--- a/dev-python/libcst/libcst-1.8.4.ebuild
+++ b/dev-python/libcst/libcst-1.8.6.ebuild
@@ -5,6 +5,8 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/Instagram/LibCST
+# TODO: add freethreading when the deps are done
PYTHON_COMPAT=( python3_{10..14} )
RUST_MIN_VER="1.80.0"
@@ -48,7 +50,7 @@ CRATES="
memoffset@0.6.5
memoffset@0.9.0
num-traits@0.2.15
- once_cell@1.16.0
+ once_cell@1.21.3
oorandom@11.1.3
paste@1.0.15
peg-macros@0.8.5
@@ -59,11 +61,11 @@ CRATES="
plotters@0.3.7
portable-atomic@1.4.3
proc-macro2@1.0.95
- pyo3-build-config@0.25.1
- pyo3-ffi@0.25.1
- pyo3-macros-backend@0.25.1
- pyo3-macros@0.25.1
- pyo3@0.25.1
+ pyo3-build-config@0.26.0
+ pyo3-ffi@0.26.0
+ pyo3-macros-backend@0.26.0
+ pyo3-macros@0.26.0
+ pyo3@0.26.0
quote@1.0.40
rayon-core@1.13.0
rayon@1.11.0
@@ -121,10 +123,10 @@ LICENSE="MIT Apache-2.0 PSF-2"
# Dependent crate licenses
LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="amd64 ~riscv"
+KEYWORDS="~amd64 ~riscv"
RDEPEND="
- >=dev-python/pyyaml-5.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.3[${PYTHON_USEDEP}]
"
BDEPEND="
dev-python/setuptools-rust[${PYTHON_USEDEP}]
@@ -140,6 +142,11 @@ distutils_enable_tests pytest
QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/libcst/native.*"
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
src_prepare() {
distutils-r1_src_prepare
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index a61a6b1d4cf6..1c31485f030c 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -12,5 +12,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
DIST llvm-project-21.1.4.src.tar.xz 158939036 BLAKE2B b87eff4e3cb881d86aafcfdb46d85344ad6ae92d5c1e72c05282f375b4b11844756d0e6b4d0da5e522a348170a5da9842917737e272b758d8dde7e1fb2bee135 SHA512 a8c0883abe7c5a3e55ca7ed0fd974fae4351184a0b0df18295a982ca8ddb0f8d167353564204ed00f0cd9a1d8baef7074c0b39a99e0b5c52ced6bbee73dde3da
DIST llvm-project-21.1.4.src.tar.xz.sig 119 BLAKE2B c74a56448ad3e325234fcbe7d62ea888831e1e7696afb5aa5a185ea76a0880abe2d755f9e69a07760bbf9380534c3bb96c920ed6359ffd0f5f51c962d1494dcf SHA512 4812c2e3861aa3b726d842c3ca259b19ef1aa531fed9f6f47099483de91de2b2a165f40d243f6f40f2eea749741d5f8b7090f394399c56db02053f308921077a
+DIST llvm-project-21.1.5.src.tar.xz 158957032 BLAKE2B c056049214b18a17a3fd2dc86ae82121a821841002b8386b1fe35fc34f1f0faeb681f39880814e4a47f976b2744bfd2c4f1316156469c6b6a79c013d200dab30 SHA512 865ad44575c9288f06da8c48acbb60779f6c38aaf2ee85eac2002452f83892b704263f2ef51d3596abf06dccc1559f1d9dcdc89120363efd8ce1b1239ae83f6b
+DIST llvm-project-21.1.5.src.tar.xz.sig 119 BLAKE2B abf014908e981ea358ee38f6d1ef6c745ebbe51011fa7e83a514672bbad152fac92c95dd32a7b52a8d9c2a2a9ea1b44e447bb0bc5953f0f7bbd9ced34aa3c0cc SHA512 4e327c7d60525526ff3ac6ca58f1e753a57f841b88078a9bfe2a2ce91e4a5e17bcc52fd2f27f75801540610c1a56d57a3070243f13ad583e3526901b1f7be4a5
DIST llvm-project-7631c73850bec991ec9a7c9cca58c275bb0277a4.tar.gz 253713417 BLAKE2B 0126bdf53ffb57ca0fa471c01deb4f0a9f824083c332f72e14ea7dc843cf80e7360aa0bcd8eff22f42f993db2b077c696c25232c1a9d98cfa865d98569398b55 SHA512 58488afe3eb7865f171ac5f692a8c1252bf3d049420a72e72581e5024066b2a4ba2dbfa5c9f06de799ad3e04949997e61c60ee0f89aa6a8642b6d9263c78a144
DIST llvm-project-c1779f33bdada6e478e882cc23a647ef9abaad96.tar.gz 253250521 BLAKE2B fbd40cb52d56d5a817ff6cb469b9772af4eb358584eed1440c82864923add456961a672784838f510c390680a54c4abc7a33159848a34133f8d23b80b5feb0ef SHA512 01f8944ee6c89fd4a56caab236b302bc6b49b933c968a73edcb00ae2522b884371a05a75dec1321b0efed24e20cde4a58e1697c3c097f26ed0fbd629d8cf561c
diff --git a/dev-python/lit/lit-21.1.5.ebuild b/dev-python/lit/lit-21.1.5.ebuild
new file mode 100644
index 000000000000..50e339049670
--- /dev/null
+++ b/dev-python/lit/lit-21.1.5.ebuild
@@ -0,0 +1,46 @@
+# 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 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/lz4/Manifest b/dev-python/lz4/Manifest
index ba3feedbff32..f1495a706af6 100644
--- a/dev-python/lz4/Manifest
+++ b/dev-python/lz4/Manifest
@@ -1 +1,2 @@
DIST lz4-4.4.4.tar.gz 171884 BLAKE2B a5a1a183b831de32c6197007a278351ed2ff7003c77d686432887436ca8920345995f1a1c2f64144d71ad929fe0cea13939c568030b8622a6b55bc53f0cad41b SHA512 eb49fa28d8745c8d232e82565338e1021da8bc27b4f9c01277e51fbd01a30943f420ee7a983e4683ccb81e72039a12b05b56836fa06c10039ba7267df72d0fcb
+DIST lz4-4.4.5.tar.gz 172886 BLAKE2B 27c6ec1c66ac77609e64eff6656e484900b17724b0df914e4b36215edeeb7bc6296425d7749ac25659a6a9bf10e83cce1d31af701e6464c7361f624b7d253d83 SHA512 29a3a244987295b39465191bd1c95d935a63ad3f94a6a0a9c88c5ff2063c04f28a201b9d8a4591cb36b35101e3b956dd445ed638de1d3ba2b307655c28f2353f
diff --git a/dev-python/lz4/lz4-4.4.5.ebuild b/dev-python/lz4/lz4-4.4.5.ebuild
new file mode 100644
index 000000000000..ffebafc22247
--- /dev/null
+++ b/dev-python/lz4/lz4-4.4.5.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="LZ4 Bindings for Python"
+HOMEPAGE="
+ https://github.com/python-lz4/python-lz4/
+ https://pypi.org/project/lz4/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+ app-arch/lz4:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+# note: test suite fails with xdist
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # lz4.stream is not officially supported and not installed by default
+ # (we do not support installing it at the moment)
+ tests/stream
+ )
+
+ rm -rf lz4 || die
+ epytest
+}
diff --git a/dev-python/markdown/Manifest b/dev-python/markdown/Manifest
index 26870e71a997..6c954be82f7a 100644
--- a/dev-python/markdown/Manifest
+++ b/dev-python/markdown/Manifest
@@ -1,2 +1,2 @@
-DIST markdown-3.8.2.tar.gz 362071 BLAKE2B 3961c8de4a34ea42656753121958e58d4a5835a14c371d735cc87a7b90d237e04c5ed5f8c1f773ece5689400880d5e74244479bd8da4308b62ce995c29ec2595 SHA512 e5ec7ca85a74e3914f699e79d1e07a55bbe2deabe6781a9f218280a8b4dc11dbb7fe11de4379aa019fe442383d74b01ec88b27640e79481906230f2d6eddf52f
+DIST markdown-3.10.tar.gz 364931 BLAKE2B 43cdbdcda9e43e0525664e13e36708f6565c7e0a8cf0219ed27d3a6de89835c6423caaa67d075d5dc244ef53739414d56dcd26626b2d11d14b4e23ae356eec99 SHA512 5b07895f8bd560348722a97517ef33b740221092cd2567f19ac5baf823a43916c6243ed603c8f6b94b526b39d9876a040b5ef2f4d50f3de277e6d96a2bcc510c
DIST markdown-3.9.tar.gz 364585 BLAKE2B d6b42c252a80b40f47d8153d3080a817289fbb3093e95dbea96da930af43f3e7d51ae200352abc09eaa87ef79389c526def488e8cf32e8222e0ef4dea26aa8d8 SHA512 3427e5f5ee18d8973dc32e14c38e455a02a8e77521c8db18a750e4a7ec5f6a00c01e3e6528a6e461f35faab00dad80a7b33098fedcdf1d2b136e19daa3e8b09c
diff --git a/dev-python/markdown/markdown-3.8.2.ebuild b/dev-python/markdown/markdown-3.10.ebuild
index 6455b589363b..1d836b74f109 100644
--- a/dev-python/markdown/markdown-3.8.2.ebuild
+++ b/dev-python/markdown/markdown-3.10.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="doc test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/mastodon-py/Manifest b/dev-python/mastodon-py/Manifest
index b75f6a7f49de..c524ae345d52 100644
--- a/dev-python/mastodon-py/Manifest
+++ b/dev-python/mastodon-py/Manifest
@@ -1 +1,2 @@
DIST mastodon_py-2.0.1.tar.gz 10988936 BLAKE2B 237e81a0501db59acb066cb156cddf9898265b7dc988c1edee451f4f9c5fb4f97629b2dfc561ce42e5d1e5858e00a916b56d002acbbe2891b4bb4d57e05661da SHA512 7aff1f6cf6c159d9ab95ff9d44aa1249c8db1536121fc5cd88ff0c46c22b23efb0c4857d6c6a744630b23804504b6d7886848ca194957dd524b4b014dadcd5e3
+DIST mastodon_py-2.1.4.tar.gz 11636752 BLAKE2B 9e001da9d17b93e2ab8fbabcd7a8f2a19380aad76811acda15556e8a5bf7f38dc432d027f9e47ce7f8bf778aaff12df6f81ef3a953e9b06bcd1f8d80779d6f6f SHA512 cfb4515a24e69df16d320630157e1b32a99203fca8a56ab5c5f93b5585c56d1034a0520af276b384779bdfe2cc6d16451932e4014e005d756fd2c335de84bf00
diff --git a/dev-python/mastodon-py/mastodon-py-2.1.4.ebuild b/dev-python/mastodon-py/mastodon-py-2.1.4.ebuild
new file mode 100644
index 000000000000..1f11df4c52b3
--- /dev/null
+++ b/dev-python/mastodon-py/mastodon-py-2.1.4.ebuild
@@ -0,0 +1,61 @@
+# 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} )
+PYPI_PN="Mastodon.py"
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python wrapper for the Mastodon API"
+HOMEPAGE="
+ https://pypi.org/project/Mastodon.py/
+ https://github.com/halcy/Mastodon.py
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="blurhash crypt grapheme"
+
+RDEPEND="
+ >=dev-python/decorator-4.0.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4.2[${PYTHON_USEDEP}]
+ blurhash? ( >=dev-python/blurhash-1.1.4[${PYTHON_USEDEP}] )
+ crypt? (
+ >=dev-python/cryptography-1.6.0[${PYTHON_USEDEP}]
+ >=dev-python/http-ece-1.0.5[${PYTHON_USEDEP}]
+ )
+ grapheme? (
+ dev-python/grapheme[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/python-magic[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/vcrpy[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=(
+ pytest-mock
+ pytest-recording
+ requests-mock
+)
+EPYTEST_XDIST=1
+EPYTEST_DESELECT=(
+ # passes only with outdated 'grapheme'
+ tests/test_status_length.py::test_get_status_length_against_ground_truth
+)
+
+distutils_enable_tests pytest
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/mastodon-py/metadata.xml b/dev-python/mastodon-py/metadata.xml
index 736a1167c898..a20685fc799d 100644
--- a/dev-python/mastodon-py/metadata.xml
+++ b/dev-python/mastodon-py/metadata.xml
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <use>
+ <flag name="blurhash">Install dependencies required for decoding blurhash strings to images</flag>
+ <flag name="grapheme">Install dependencies required for grapheme-aware string handling</flag>
+ </use>
<origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/mautrix/mautrix-0.20.8.ebuild b/dev-python/mautrix/mautrix-0.20.8.ebuild
index 5eec2c69ea06..1cd1dac6b3b6 100644
--- a/dev-python/mautrix/mautrix-0.20.8.ebuild
+++ b/dev-python/mautrix/mautrix-0.20.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index d95d3d19a17e..5b77329cb0bb 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -9,5 +9,7 @@ DIST moto-5.1.14.tar.gz 7264025 BLAKE2B cca4fd06070ee6db7306f3f95a2fd785b53f0f7f
DIST moto-5.1.14.tar.gz.provenance 9286 BLAKE2B 73c844157e33029d62fde7530a25d0557aae3f38d61df611248ba78e85925c3cf9df0b40bb9ddef93a7990c91fec6895d0c3a2c43306432a2a8f13c119254e6b SHA512 e7e5b1415d5b4cfd145f477fa49e72f39d7611a7f961735d6986aa5691e48fc6e13e3f87aeaccf5d6cd26b26b45ddd7b15ad01d89a086df2d545bf6342151503
DIST moto-5.1.15.tar.gz 7288767 BLAKE2B 5f03a939de3dea4e635cc2c8ca35c7ab30b20d7ec6bf6a4fefc6a3dedc776bb1354da2ac0e0b317318bdc4edc3027e1c01e323a888ad077d389810338c502cff SHA512 dc58df1ef867b3259e30f8f788e1f2964ec48b5ad80102854be94740bfdb71573ea26b0b392af29919f2f967ce6150e59a2a96bbbd04f2c14c44ad671df5d856
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
diff --git a/dev-python/moto/moto-5.1.16.ebuild b/dev-python/moto/moto-5.1.16.ebuild
new file mode 100644
index 000000000000..da29bd9851e6
--- /dev/null
+++ b/dev-python/moto/moto-5.1.16.ebuild
@@ -0,0 +1,114 @@
+# 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/getmoto/moto
+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
+
+ epytest -m 'not network and not requires_docker'
+}
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index cfa1006b07e7..dd1c620bdb74 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -1,6 +1,4 @@
-DIST narwhals-2.10.0.tar.gz 582423 BLAKE2B e1d961d62f313075320812d2efbedf732a1a02b69f225503caa6c8b853bb659f96b86578ea3835a66e310c7a1962041bebad15e69fae80e521ad2bf7175b52c6 SHA512 5ebbf759bd19dfd055d53671fe3a8f4a7275a6f6a8e7d72bfdfe58f1019afe3fc3a41375bc751a80592eb515910ec73068ff842eb89092dd530ccc3c6a68ad0c
-DIST narwhals-2.10.0.tar.gz.provenance 9767 BLAKE2B 25f9dae99f64be6b2e5bc079922a8ce9a6bc09662cb4f86eb3ff5a6356340d1e5795150905d832a5590925f7c561e9d3ac0bca2e2aaedad52962107772c29c47 SHA512 dcd0de9ac66c812d9412badb8a366befdc98b615b24424da3af3cc05c34a899fc9e597f73376abe89390a759b90a11225e63a081135c02b5423542eaba9e1340
DIST narwhals-2.10.1.tar.gz 584727 BLAKE2B acfa7fadbfd32288072a16a82dab9f5d48a09dbb709179505954f3326308a62af2c4e444e602119a2c0799dd525531cc5e59b4878c1fec7e7ed7674e8ff0036a SHA512 7658296ace9415179a3eda3e9aa26435ced6b8f839f6eb46ba765ec47ea58a8c05d061e046bd3be451baa24cdf7d192a1acdcfc6c3be28d5f101458124848447
DIST narwhals-2.10.1.tar.gz.provenance 9673 BLAKE2B 389bf3a168972d34fc772d79081870733f04e0cec13ca481dc19b516a727eaa58aceac307cac1fccf5e98f7bcaf56561d442e1a3a5e652bc1797cedb5e78cce8 SHA512 b4cfd42e7b909d1fd8d8bd48c96271e7c151cea112027559c8a425bb852bd4904b8eba806377083e8c620e492eb4b522aa9c12e50cca2eaf12928ba96643a7ce
-DIST narwhals-2.9.0.tar.gz 584098 BLAKE2B eb5a2e78e4cbc11de23a3cd758e3e70e51f83fca409964d700ff6d26fd5d403a0445fe01ae74b963ae2dc10d89707ff84276cf0df9b0646352c1e9f89d93ce5a SHA512 8d6adcf5c1f189de4b0bef1ffe87a29769d35f9a11022974104d215a3cfd99cd913d8f128e14b2ff7729b458c67c3b6822257c73c2946efa43db2fef76d5062f
-DIST narwhals-2.9.0.tar.gz.provenance 9657 BLAKE2B 80e388069286c4481bcee98614a9bea360f722db6491de4cbbd594d32cb1f74140c45f2983ebaa9885739c029b11454eae6f58486aeea2c29453c53eae481173 SHA512 8688f4848cb5bd507a6266bba49d8c515c096d8a99952c81c3bdc3ff61b101b71e83f8bb1aaab6fb41c93863c9250eb36a656b9e117c37b7b394f40843db7be6
+DIST narwhals-2.10.2.tar.gz 584954 BLAKE2B 9f8b96e44d3ceb4fa27d4bc36f4d0507f9f93d163180b25eebc4e96a4a4f10479b6f9ccac42368151331d9b5167c5694e7b3195336c4d4fe95efbc16628927e8 SHA512 818d57fe759b76374fc869056f0a4ffe6cc83bd19f2d0783428128f1ed958daf8e5a3c8cecfb365e318d5f41cc814d9388531273b77e946a76f6058f8a28850a
+DIST narwhals-2.10.2.tar.gz.provenance 9485 BLAKE2B 9cc829eb823c8a27681c6d7a47bb894b99c3aaa6532c923fa4e6cd708fa019d2d61fec6889c19303d4e847485d188c051c20f4db14e53a86796bb917481f51aa SHA512 66b9c91aaf6e8a507c0e35bb076c7b4ba4d35c27773b9432557ade4650aa1d8cda4c621139138d8342d153d390ff87879cedd34f46c801c213f0b785af18fe9c
diff --git a/dev-python/narwhals/narwhals-2.10.0.ebuild b/dev-python/narwhals/narwhals-2.10.2.ebuild
index 449e85db9ce7..449e85db9ce7 100644
--- a/dev-python/narwhals/narwhals-2.10.0.ebuild
+++ b/dev-python/narwhals/narwhals-2.10.2.ebuild
diff --git a/dev-python/narwhals/narwhals-2.9.0.ebuild b/dev-python/narwhals/narwhals-2.9.0.ebuild
deleted file mode 100644
index 449e85db9ce7..000000000000
--- a/dev-python/narwhals/narwhals-2.9.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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/nbxmpp/Manifest b/dev-python/nbxmpp/Manifest
index fcf0c4ec0308..091e7a1730fe 100644
--- a/dev-python/nbxmpp/Manifest
+++ b/dev-python/nbxmpp/Manifest
@@ -1,2 +1,3 @@
DIST python-nbxmpp-6.3.0.tar.bz2 153622 BLAKE2B 9cfb5286c091d12b6e63dbf73d85dc338d1c8b1f3158feee0f31acb836af99034211c4d805f40b89f691c51cb13594e9b7eea2369bdd2cb0f873aa920742b7d5 SHA512 48ffa19d0563da16a113fad141c9d159f80c78dab9d5ba098df913555d632ad00006a64cddd63009a89f228bef1f2b911ce207a70642b75f085b2d9ee91b6717
DIST python-nbxmpp-6.3.1.tar.bz2 153878 BLAKE2B bc5aafe61863755af8c11578b68361f2ce7cf8c8dab1539fd97a69258fb43539a92ca119f1ec5f98a4d496010f9720c83e80c137539c0b924150a96e57094a18 SHA512 a15311ac4593f1462e040188a8a539d6e078b254085c02df33fb48450c88e9a0a534d02494994233978ef967f007eae9516c2002bca5c7060a52daccd0e38af8
+DIST python-nbxmpp-6.4.0.tar.bz2 157204 BLAKE2B 41ab60bc8b4322773e5c70aeb86ef906a1a19c948512738696b9d83c05b6319605c87d45faa1786207300b5b0849297a3baabb89cf1a3d91bf065348943b3ef2 SHA512 6d097f4f69bd4b905926cec4b1af3d69b3862d0c48045237b3e34d58d33c0769d11d3612a04e6e6d28699f041bed51ecaeabb522599e445d6241431e390d6727
diff --git a/dev-python/nbxmpp/nbxmpp-6.4.0.ebuild b/dev-python/nbxmpp/nbxmpp-6.4.0.ebuild
new file mode 100644
index 000000000000..1b5028baa015
--- /dev/null
+++ b/dev-python/nbxmpp/nbxmpp-6.4.0.ebuild
@@ -0,0 +1,35 @@
+# 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=python-nbxmpp-${PV}
+DESCRIPTION="Python library to use Jabber/XMPP networks in a non-blocking way"
+HOMEPAGE="
+ https://dev.gajim.org/gajim/python-nbxmpp/
+ https://pypi.org/project/nbxmpp/
+"
+SRC_URI="
+ https://dev.gajim.org/gajim/python-nbxmpp/-/archive/${PV}/${MY_P}.tar.bz2
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~riscv ~x86"
+
+RDEPEND="
+ >=dev-libs/gobject-introspection-1.82.0-r2
+ net-libs/libsoup:3.0[introspection]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/precis-i18n-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pygobject-3.42[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/pbr/Manifest b/dev-python/pbr/Manifest
index d561b6bfc565..7159882befa8 100644
--- a/dev-python/pbr/Manifest
+++ b/dev-python/pbr/Manifest
@@ -1,2 +1,3 @@
DIST pbr-7.0.1.tar.gz 130086 BLAKE2B e29b94fcd2a0316aac2c5a918d2f94607f50c77225e5535da0381e61e41f05cea01341e77547316816963cda235fed356cf6ffd87c5faf0f2c47ff99122a4d8b SHA512 79e204e81f1ca5c74fdfab3df007e394f0248761c1464c1ffab270347d3c2e25b1aba331be153bdfa4a6fad152a39574df5fffd39051b0242af3cdf05ef454c8
DIST pbr-7.0.2.tar.gz 134192 BLAKE2B 44bd6b522cbcbd7ea23aabd5baec854812f61a5ad3323bd63afbf85c94b59c01a4638a6a21fb4f39046ddd20997d5dd39c31112a36ca35c86bf01dc4b6a14917 SHA512 ee0b9928f0a025b7e645beef49dad27ae95c9cb6b0e8b94df090c8298659c950d7214a9979af5b66b20947f06705eeb0114a55390d62b759f382c5b85aa11b0c
+DIST pbr-7.0.3.tar.gz 135625 BLAKE2B a0271614d745165056a65d6de3673217fe4ae2d3bbc43b0eb7b9d1b07fef4364dc3e5f938ce0db63b9fb5031247a49ccca1be4bbee5ecbc4d53ca6663faaaba1 SHA512 dff6c9ae44cdb8db111d87530a1096dd3f9045df20cb3105f736b909f9dce957e2e8f54d6a8a1c09139689d39b1b3b4dbd53947414e4d467b11314b7f397fb99
diff --git a/dev-python/pbr/pbr-7.0.3.ebuild b/dev-python/pbr/pbr-7.0.3.ebuild
new file mode 100644
index 000000000000..42572748bb44
--- /dev/null
+++ b/dev-python/pbr/pbr-7.0.3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( pypy3_11 python3_{11..14} )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Inject some useful and sensible default behaviors into setuptools"
+HOMEPAGE="
+ https://opendev.org/openstack/pbr/
+ https://github.com/openstack/pbr/
+ https://pypi.org/project/pbr/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/setuptools-64.0.0[${PYTHON_USEDEP}]
+"
+
+# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and
+# https://bugs.gentoo.org/show_bug.cgi?id=561038 docutils is needed for sphinx
+# exceptions... https://bugs.gentoo.org/show_bug.cgi?id=603848 stestr is run as
+# external tool.
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/wheel-0.32.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.0.3[${PYTHON_USEDEP}]
+ dev-vcs/git
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests unittest
+
+python_prepare_all() {
+ # TODO: investigate
+ sed -e 's:test_with_argument:_&:' \
+ -e 's:test_wsgi_script_run:_&:' \
+ -i pbr/tests/functional/test_wsgi_scripts.py || die
+ # installs random packages via pip from the Internet
+ rm pbr/tests/functional/test_pep517.py || die
+ rm pbr/tests/functional/test_requirements.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Testing on ${EPYTHON} is not supported at the moment"
+ return
+ fi
+
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ eunittest -b
+}
diff --git a/dev-python/peewee/Manifest b/dev-python/peewee/Manifest
index e5ff8d419a6f..c20da450cd30 100644
--- a/dev-python/peewee/Manifest
+++ b/dev-python/peewee/Manifest
@@ -1 +1,2 @@
DIST peewee-3.18.2.gh.tar.gz 931233 BLAKE2B cc0c29e4137b88e4a419faff35afbc64bb13b583344db272955df4a7658bc29d336fca2f2e6829b1741c4e74c5aa83460950396f87a252050669ba02a9a4d7d9 SHA512 d4c68b88b1652ca065e49d692fcc875717a1d67c4ee5c9dfc0942f2994bf49ef564bb14aa046f10f5201835a19f21a15979f5069a812133e9a2b0214dc6226c6
+DIST peewee-3.18.3.gh.tar.gz 931933 BLAKE2B e8bc92af4089eda5645ee725c9f6343f8b99622e58a8be5ebf1b8be805b45bbcc46f0260f444000b47dd5425609174d05173d8d81c518f75a6b9c272a0cf5668 SHA512 f3665284dc0da1a710f38561d337fbea3e85f6266515bf97be2ff218c0a7614aada9ae25ac9c4a971b72aff8be708647c2d5425635a20bf58b424d99877235fc
diff --git a/dev-python/peewee/peewee-3.18.3.ebuild b/dev-python/peewee/peewee-3.18.3.ebuild
new file mode 100644
index 000000000000..13179f6ef079
--- /dev/null
+++ b/dev-python/peewee/peewee-3.18.3.ebuild
@@ -0,0 +1,81 @@
+# 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="sqlite"
+
+inherit distutils-r1
+
+DESCRIPTION="Small Python ORM"
+HOMEPAGE="
+ https://github.com/coleifer/peewee/
+ https://pypi.org/project/peewee/
+"
+SRC_URI="
+ https://github.com/coleifer/peewee/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ native-extensions? ( dev-db/sqlite:3= )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ dev-db/postgresql
+ dev-python/psycopg:0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+src_prepare() {
+ default
+
+ # disable test failing on postgres 16
+ sed -e 's/test_timeout/_&/' -i tests/sqliteq.py || die
+}
+
+src_compile() {
+ if ! use native-extensions; then
+ local -x NO_SQLITE=1
+ fi
+
+ distutils-r1_src_compile
+}
+
+src_test() {
+ initdb -D "${T}"/pgsql || die
+ pg_ctl -w -D "${T}"/pgsql start -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" peewee_test || die
+ psql -h "${T}" peewee_test -c 'create extension hstore;' || die
+
+ local -x PEEWEE_PSQL_HOST="${T}"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ "${EPYTHON}" runtests.py -v 2 || die "tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ use examples && DOCS=( examples/ )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pillow/pillow-11.3.0.ebuild b/dev-python/pillow/pillow-11.3.0.ebuild
index e780add6760b..359a727e7bf2 100644
--- a/dev-python/pillow/pillow-11.3.0.ebuild
+++ b/dev-python/pillow/pillow-11.3.0.ebuild
@@ -53,7 +53,7 @@ DEPEND="
)
webp? ( media-libs/libwebp:= )
xcb? ( x11-libs/libxcb )
- zlib? ( sys-libs/zlib:= )
+ zlib? ( virtual/zlib:= )
"
RDEPEND="
${DEPEND}
diff --git a/dev-python/pillow/pillow-12.0.0.ebuild b/dev-python/pillow/pillow-12.0.0.ebuild
index d4406744a448..d7931527b3cf 100644
--- a/dev-python/pillow/pillow-12.0.0.ebuild
+++ b/dev-python/pillow/pillow-12.0.0.ebuild
@@ -53,7 +53,7 @@ DEPEND="
)
webp? ( media-libs/libwebp:= )
xcb? ( x11-libs/libxcb )
- zlib? ( sys-libs/zlib:= )
+ zlib? ( virtual/zlib:= )
"
RDEPEND="
${DEPEND}
diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest
index 6651e589e98f..93d6afda8570 100644
--- a/dev-python/plotly/Manifest
+++ b/dev-python/plotly/Manifest
@@ -1,2 +1,2 @@
-DIST plotly.py-6.3.0.gh.tar.gz 10089966 BLAKE2B 1aed2cd325098fc06e39c0643e6cf6be330b60b50043ab625530fc51f6cf10d1302bc8335969ae115b445ca057b992b28c3a21e6634f7eca4e29fad7684e0084 SHA512 4923c78ca44388e17c36e00a4482c58d81deabe968a4b4d66da44d25abc8ee6ff10f28b11dfd18455abf8894478310e2872e6f10b358555c8a758958910dae98
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
diff --git a/dev-python/plotly/files/plotly-6.3.0-test.patch b/dev-python/plotly/files/plotly-6.3.0-test.patch
deleted file mode 100644
index 2ae6bef9ef22..000000000000
--- a/dev-python/plotly/files/plotly-6.3.0-test.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 622428a4f3f5831dc2d32a74743265fe7dc1f9d6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Wed, 13 Aug 2025 09:55:23 +0200
-Subject: [PATCH] Fix broken import in `mplexporter` tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes #5253
-
-Signed-off-by: Michał Górny <mgorny@gentoo.org>
----
- plotly/matplotlylib/mplexporter/tests/test_utils.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plotly/matplotlylib/mplexporter/tests/test_utils.py b/plotly/matplotlylib/mplexporter/tests/test_utils.py
-index 5659163084a..1373dd46795 100644
---- a/plotly/matplotlylib/mplexporter/tests/test_utils.py
-+++ b/plotly/matplotlylib/mplexporter/tests/test_utils.py
-@@ -1,6 +1,6 @@
- from numpy.testing import assert_allclose, assert_equal
--from . import plt
- from .. import utils
-+import matplotlib.pyplot as plt
-
-
- def test_path_data():
diff --git a/dev-python/plotly/plotly-6.3.0.ebuild b/dev-python/plotly/plotly-6.4.0.ebuild
index f9686feb58e7..dbf4a8c9cf8c 100644
--- a/dev-python/plotly/plotly-6.3.0.ebuild
+++ b/dev-python/plotly/plotly-6.4.0.ebuild
@@ -54,7 +54,7 @@ BDEPEND="
# distutils_enable_sphinx ../../../doc/apidoc
EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
+# xdist is causing pretty nasty race conditions here
distutils_enable_tests pytest
EPYTEST_IGNORE=(
@@ -91,14 +91,7 @@ EPYTEST_DESELECT=(
'tests/test_plotly_utils/validators/test_colorscale_validator.py::test_acceptance_named[Inferno_r]'
)
-python_prepare_all() {
- local PATCHES=(
- # https://github.com/plotly/plotly.py/pull/5322
- "${FILESDIR}/${P}-test.patch"
- )
-
- distutils-r1_python_prepare_all
-
+src_configure() {
# Do not try to fetch stuff with npm
export SKIP_NPM=1
}
diff --git a/dev-python/propcache/propcache-0.4.0.ebuild b/dev-python/propcache/propcache-0.4.0.ebuild
index bb2e5d292d2d..e720bd154093 100644
--- a/dev-python/propcache/propcache-0.4.0.ebuild
+++ b/dev-python/propcache/propcache-0.4.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/psutil/Manifest b/dev-python/psutil/Manifest
index 788915a96450..32de4543defb 100644
--- a/dev-python/psutil/Manifest
+++ b/dev-python/psutil/Manifest
@@ -1,4 +1,4 @@
-DIST psutil-7.0.0.tar.gz 497003 BLAKE2B d5bd3845f4a1a9852ea0136d43f3c4ef9534f08cde7acc3e7a02d7725e52a517882986cf48be241d51b001646b0550d8d7d964dd38ba15e6777d82c3605c34af SHA512 83c17e5dd975bd403d8ece3bcfe021e5b845eb53260f8857999ebc6fdea8aca83e136b945aaa0b3974dc387191988c22fcdcab03effc8e943382989a106aeaf3
DIST psutil-7.1.0.tar.gz 497660 BLAKE2B 77c6adb50d4c8191bc47d3511735e97fffefd02cb6bdd85e2c9ef5f3cd7b3eee439e959d968bac05d5a26bd7cd3b6833519e71aac960d4fe578b845b1aeb1453 SHA512 6bf0fdaa7c1241126f99041bdfde87c3fe834b8364e306eb72deebafcc272a135d64502e12157e1134ebf0353893dee906fa00517ca3d399e97ea486b238ee6c
DIST psutil-7.1.1.tar.gz 487067 BLAKE2B 7c3d5833bdc6c08fd8686d1a0f563c336cd8d4ddc86d38947b570cbc18d2ff1a0a5559d94da864260ff1b199a6eb0f376fb2e7e6bc648bcc0d36a2c7e6a05672 SHA512 e363a12e16e3cfb5df3f6df54af09a9f585e641cae41df1a9f5420dbb5a6e61c53e54c1a1eaf4fe29cb7d28adea9278dba9b374f0d57689f2fe6b7984ff8f2a4
DIST psutil-7.1.2.tar.gz 487424 BLAKE2B d2f98b49c8b0d90639e0524864c4f6ce221240d4b79218fe1d72f11fd47e95eb6e79d705ac07239e59cca597880d8de8a5c9f89875e8f44811692256c9ab8b44 SHA512 89721868fcbf9a99ff21ddcfa6b5ae991d89f30b31db6c10dc8e712295640c2e4f0987975bba7f94a1d9153362c20e5628994c9e013c1e2ab106a2344a1fc5bb
+DIST psutil-7.1.3.tar.gz 489059 BLAKE2B 860fce273fd5f6977eeef3a47c97fbe9500e750fadb2bb7e9d4d8e7859e566202f8436fa5c022005c4d90e84265e50f0bf9b560f749831e6ea6c60fbe2ba8529 SHA512 6c4a4ef94e634a808cce94c143d5f4164d2012dc314091257ba122a7963fa6bf982c4c54ba3b60da6c52535fbe83de19a4e3181e07fde1807ec4acc47eb44621
diff --git a/dev-python/psutil/psutil-7.0.0.ebuild b/dev-python/psutil/psutil-7.1.3.ebuild
index 3470835ad36d..eeb98ea5fae2 100644
--- a/dev-python/psutil/psutil-7.0.0.ebuild
+++ b/dev-python/psutil/psutil-7.1.3.ebuild
@@ -17,8 +17,9 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+EPYTEST_PLUGINS=( pytest-subtests )
distutils_enable_tests pytest
python_test() {
@@ -62,6 +63,7 @@ python_test() {
tests/test_posix.py::TestProcess::test_cmdline
tests/test_posix.py::TestProcess::test_name
tests/test_posix.py::TestSystemAPIs::test_users
+ tests/test_process.py::TestProcess::test_memory_maps_lists_lib
tests/test_process.py::TestProcess::test_terminal
tests/test_unicode.py::TestFSAPIs::test_memory_maps
@@ -79,9 +81,8 @@ python_test() {
local -x APPVEYOR=1
local -x GITHUB_ACTIONS=1
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
rm -rf psutil || die
- epytest --pyargs psutil
+ epytest --pyargs psutil -o addopts=
}
python_compile() {
diff --git a/dev-python/pydata-sphinx-theme/files/pydata-sphinx-theme-0.16.0-tests-ignorecase.patch b/dev-python/pydata-sphinx-theme/files/pydata-sphinx-theme-0.16.0-tests-ignorecase.patch
new file mode 100644
index 000000000000..4ab1a68eeedc
--- /dev/null
+++ b/dev-python/pydata-sphinx-theme/files/pydata-sphinx-theme-0.16.0-tests-ignorecase.patch
@@ -0,0 +1,81 @@
+https://github.com/pydata/pydata-sphinx-theme/pull/2091
+
+From f43024ded15bf55ea61e2bbaec8612d8b8631645 Mon Sep 17 00:00:00 2001
+From: Daniel McCloy <dan@mccloy.info>
+Date: Wed, 8 Jan 2025 11:01:22 -0600
+Subject: [PATCH 4/6] improve test
+
+---
+ tests/test_build.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test_build.py b/tests/test_build.py
+index 7a005fa4ab..170a29a832 100644
+--- a/tests/test_build.py
++++ b/tests/test_build.py
+@@ -891,8 +891,8 @@ def test_pygments_fallbacks(sphinx_build_factory, style_names, keyword_colors) -
+ # see if our warnings worked
+ if style_names[0].startswith("fake"):
+ assert len(warnings) == 2
+- re.match(r"Color theme fake_foo.*tango", warnings[0])
+- re.match(r"Color theme fake_bar.*monokai", warnings[1])
++ assert re.search(r"Highlighting style fake_foo.*tango", warnings[0])
++ assert re.search(r"Highlighting style fake_bar.*monokai", warnings[1])
+ else:
+ assert warnings == [""]
+ # test that the rendered HTML has highlighting spans
+
+From 513729664b1c2c51c68d2c6086a9f05cea1976c1 Mon Sep 17 00:00:00 2001
+From: Daniel McCloy <dan@mccloy.info>
+Date: Wed, 8 Jan 2025 11:23:46 -0600
+Subject: [PATCH 5/6] show info why test fails
+
+---
+ tests/test_build.py | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/tests/test_build.py b/tests/test_build.py
+index 170a29a832..0d2f861f72 100644
+--- a/tests/test_build.py
++++ b/tests/test_build.py
+@@ -907,11 +907,9 @@ def test_pygments_fallbacks(sphinx_build_factory, style_names, keyword_colors) -
+ lines = css_file.readlines()
+ assert lines[0].startswith('html[data-theme="light"]')
+ for mode, color in dict(zip(["light", "dark"], keyword_colors)).items():
+- regexp = re.compile(
+- r'html\[data-theme="' + mode + r'"\].*\.k .*color: ' + color
+- )
+- matches = [regexp.match(line) is not None for line in lines]
+- assert sum(matches) == 1
++ regexp = re.compile(rf'html\[data-theme="{mode}"\].*\.k .*color:\s?{color}')
++ matches = [regexp.search(line) is not None for line in lines]
++ assert sum(matches) == 1, f"expected {mode}: {color}\n" + "\n".join(lines)
+
+
+ def test_deprecated_build_html(sphinx_build_factory, file_regression) -> None:
+
+From d73887b5c73e805b28d8c7cd865c8f8e58a85745 Mon Sep 17 00:00:00 2001
+From: Daniel McCloy <dan@mccloy.info>
+Date: Wed, 8 Jan 2025 11:28:43 -0600
+Subject: [PATCH 6/6] ignorecase
+
+---
+ tests/test_build.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_build.py b/tests/test_build.py
+index 0d2f861f72..8444da330d 100644
+--- a/tests/test_build.py
++++ b/tests/test_build.py
+@@ -907,7 +907,10 @@ def test_pygments_fallbacks(sphinx_build_factory, style_names, keyword_colors) -
+ lines = css_file.readlines()
+ assert lines[0].startswith('html[data-theme="light"]')
+ for mode, color in dict(zip(["light", "dark"], keyword_colors)).items():
+- regexp = re.compile(rf'html\[data-theme="{mode}"\].*\.k .*color:\s?{color}')
++ regexp = re.compile(
++ r'html\[data-theme="' + mode + r'"\].*\.k .*color:\s?' + color,
++ re.IGNORECASE,
++ )
+ matches = [regexp.search(line) is not None for line in lines]
+ assert sum(matches) == 1, f"expected {mode}: {color}\n" + "\n".join(lines)
+
diff --git a/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.0.ebuild b/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.0.ebuild
index dc86be73be93..8fd2a3629180 100644
--- a/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.0.ebuild
+++ b/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.0.ebuild
@@ -41,6 +41,10 @@ BDEPEND="
)
"
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.16.0-tests-ignorecase.patch
+)
+
EPYTEST_XDIST=1
distutils_enable_tests pytest
diff --git a/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.1.ebuild b/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.1.ebuild
index 21015d006400..d12ff4544521 100644
--- a/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.1.ebuild
+++ b/dev-python/pydata-sphinx-theme/pydata-sphinx-theme-0.16.1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD-with-disclosure"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/accessible-pygments[${PYTHON_USEDEP}]
@@ -36,6 +36,10 @@ RDEPEND="
dev-python/typing-extensions[${PYTHON_USEDEP}]
"
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.16.0-tests-ignorecase.patch
+)
+
EPYTEST_PLUGINS=( pytest-{datadir,regressions} )
EPYTEST_XDIST=1
distutils_enable_tests pytest
diff --git a/dev-python/pyfakefs/Manifest b/dev-python/pyfakefs/Manifest
index b343a486a6fb..93fce3fe20c1 100644
--- a/dev-python/pyfakefs/Manifest
+++ b/dev-python/pyfakefs/Manifest
@@ -1,3 +1,4 @@
DIST pyfakefs-5.10.0.gh.tar.gz 257657 BLAKE2B abf84ee4c1dab06c741eee83a6fce1f366d44d48b987f7fb79e996771e030b989c53f83a5d74c2504067b08848b359251a2e61cb177cd3f5328fa9e058201d20 SHA512 1b35cf3c0ed329e653834673bab2fbfd9d9850809b9282d5cdb90dc1a26fe39fa651778aa3ffa060b3ecccc12fcb432d45029e59b51d6f8e87fda824bbaff2cd
DIST pyfakefs-5.10.1.gh.tar.gz 257867 BLAKE2B 374e773d968a0a24aa1e561caf8b0d58472bca7f8f864f47c156c8b3bd8e8f5c6e55a90ee4c3473c98fc2fb8c06c44d41e34c530d61b2f0550d2f4448c60d3ac SHA512 00a46de59f1e7180848e7a66d61f6c008580c41e7bc70cf78d6bcd0e80ba67956b15b72015b5ee2f4038f27c18210952522f9f4767788da015c52a2c28fd14ac
+DIST pyfakefs-5.10.2.gh.tar.gz 257936 BLAKE2B bc6adfadd0d2adcb0f56d0e9c53db5003f0a128c2f877004cf629cc70e26865c424187a737423924178f8d189ff02aebef541df6302c171c7bceaf4be6af2fc7 SHA512 57a46f01ad2985884fe8b448c3625007bbf29689e42eb956788f5f213e9557e6d0964c0e9702e784a2dfe1bd73af90d5a9dad52dd3d0ac1c1f395ea90cef47f1
DIST pyfakefs-5.9.3.gh.tar.gz 256673 BLAKE2B 638720a82f06a0c54298959e4f9d32195fc9ffb2bae00f21fb6c4cc93862e6cb6c5680d7c4e5340ffd6259505f1ce291fdcdbcced077ab89a2b0ba58c365e732 SHA512 5a79fc56836bd8c3416f653c3222f7d93203cff112f08b9ae357b271c695a720f65fc90a8a3bfff2b8b6168ddd8dfba0219ba8582e0f54ec4d9ce393ab55dab9
diff --git a/dev-python/pyfakefs/pyfakefs-5.10.2.ebuild b/dev-python/pyfakefs/pyfakefs-5.10.2.ebuild
new file mode 100644
index 000000000000..9d2d4ed78e00
--- /dev/null
+++ b/dev-python/pyfakefs/pyfakefs-5.10.2.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
+
+DESCRIPTION="A fake file system that mocks the Python file system modules"
+HOMEPAGE="
+ https://github.com/pytest-dev/pyfakefs/
+ https://pypi.org/project/pyfakefs/
+"
+SRC_URI="
+ https://github.com/pytest-dev/pyfakefs/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires *.dist-info/RECORD file that we're stripping
+ pyfakefs/tests/fake_filesystem_test.py::RealFileSystemAccessTest::test_add_package_metadata
+ # wants dev-python/openpyxl
+ pyfakefs/tests/patched_packages_test.py::TestPatchedPackages::test_read_excel
+ )
+ local EPYTEST_IGNORE=(
+ # test for regression with opentimelineio package
+ pyfakefs/pytest_tests/segfault_test.py
+ # test for regression with undefined package
+ pyfakefs/pytest_tests/pytest_fixture_test.py
+ )
+
+ if ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ pyfakefs/pytest_tests/pytest_reload_pandas_test.py
+ )
+ fi
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO: this test messes up everything
+ pyfakefs/tests/fake_filesystem_unittest_test.py::TestDeprecationSuppression::test_no_deprecation_warning
+ # TODO
+ pyfakefs/tests/fake_pathlib_test.py::SkipPathlibTest::test_exists
+ )
+ ;;
+ esac
+
+ epytest
+}
diff --git a/dev-python/pyftpdlib/pyftpdlib-2.1.0.ebuild b/dev-python/pyftpdlib/pyftpdlib-2.1.0.ebuild
index 8f30842589c4..2045fc974342 100644
--- a/dev-python/pyftpdlib/pyftpdlib-2.1.0.ebuild
+++ b/dev-python/pyftpdlib/pyftpdlib-2.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="examples ssl"
RDEPEND="
diff --git a/dev-python/pyglet/Manifest b/dev-python/pyglet/Manifest
index 8be526d4b50c..c7b2bf710771 100644
--- a/dev-python/pyglet/Manifest
+++ b/dev-python/pyglet/Manifest
@@ -1,2 +1,3 @@
+DIST pyglet-2.1.10.tar.gz 6594138 BLAKE2B 3b7f00605084856caee4bcde7d8f857b3a0287946c912673965d4451873684d599226440a7cdd6e1f4535cda8bb6feb190450dc94150900244e7cdcbbe831a96 SHA512 b07fa44285982a537ae4616dd8b36e5a4743014ea1d0f0f5317d4222ab6867cc37007973806eb6bada194ff5d8cce8cc057ee0c69afda31f48f3a163845c6004
DIST pyglet-2.1.8.tar.gz 6591905 BLAKE2B 03142754f461402f625225622f6ca53a066b8c3d924762e740b2cbd46dc1851ec661b9263fc90c33949ade25c07d7b63ad92cd243bc12869f50c0b8e77b6b660 SHA512 cd38d7e4d39f26f5188898c822a8f7c53a34429f9098c0f0695df3befadb1d287b92533d264988654def7ceae6f70debc096d546da5d42848ca69644933a4a9b
DIST pyglet-2.1.9.tar.gz 6593094 BLAKE2B 0af2ec4b4f7414a644555268b04f71b99fb157c65c8f2d961490676c9182aec524be82397589cb113972197f8bc94a0b00f234732d9559ba4ff85c6ed3b23bf3 SHA512 1d865ee8145245e2afb41aa40c7b4d938ca4b092b02b57480b3d375991428de222016bafaa7111b765e2dd20f4155d962582fb6978a1c7f5e1532c23431dbfcb
diff --git a/dev-python/pyglet/pyglet-2.1.10.ebuild b/dev-python/pyglet/pyglet-2.1.10.ebuild
new file mode 100644
index 000000000000..8805ed77e0a1
--- /dev/null
+++ b/dev-python/pyglet/pyglet-2.1.10.ebuild
@@ -0,0 +1,80 @@
+# 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 virtualx xdg-utils
+
+MY_P=${P/_/.}
+DESCRIPTION="Cross-platform windowing and multimedia library for Python"
+HOMEPAGE="
+ https://pyglet.org/
+ https://github.com/pyglet/pyglet/
+ https://pypi.org/project/pyglet/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples image +sound"
+
+RDEPEND="
+ virtual/glu
+ virtual/opengl
+ image? (
+ || (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ x11-libs/gtk+:2
+ )
+ )
+ sound? (
+ || (
+ media-libs/libpulse
+ media-libs/openal
+ )
+ )
+"
+# ffmpeg? ( media-libs/avbin-bin )
+BDEPEND="
+ test? (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ media-libs/fontconfig
+ x11-base/xorg-server[-minimal]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ xdg_environment_reset
+
+ local EPYTEST_DESELECT=(
+ # lacking device/server permissions
+ tests/unit/media/test_listener.py::test_openal_listener
+ tests/unit/media/test_listener.py::test_pulse_listener
+ # fragile to system load
+ tests/unit/media/test_player.py::PlayerTestCase::test_pause_resume
+ tests/unit/test_clock_freq.py::test_elapsed_time_between_tick
+ )
+
+ # Specify path to avoid running interactive tests
+ # We could add in integration tests, but they're slow
+ nonfatal epytest tests/unit || die "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyicu/Manifest b/dev-python/pyicu/Manifest
index 49de0eb46ffa..e9e51931f8f4 100644
--- a/dev-python/pyicu/Manifest
+++ b/dev-python/pyicu/Manifest
@@ -1,2 +1,2 @@
-DIST pyicu-v2.15.2.tar.bz2 199619 BLAKE2B ae08a808d74a574a61eae2f3b2701a2fb379c790115ca6018a1511b1fc4e84864a2c9f426e3566e924285047ccf432a8f09b81529a3e0c9ef8284e8d72b75fcd SHA512 5effb58c9da01d5cc37289991dc82cf1d6aac07b381f8b7355171a3a4cce8528c550ae27ba58342b28ff8ad15ba6266fdaccf2e3c38347c9073c2caeebf04c81
DIST pyicu-v2.15.3.tar.bz2 199667 BLAKE2B fc5f689be3383b6ce148a77e03ca6f25c884ea72cea5c6542d5cd8cb4f4e7ba69489257c85e9186a13ea0fbaafe81e9b4056c7bf84a57766b8544c0dbd0f3475 SHA512 a566badd7c0b0031e60b2d595db26bce1d874473d570facabfa76b5a099afb9bfa88c5ecced10a399c9032d75deb819a302cb4addbce61c1d33a7d58fdaffcb4
+DIST pyicu-v2.16.tar.bz2 200082 BLAKE2B 084b872357b8211da6499a020091f8bde8b4480eab25d3dd4d0db6f888c53e5c3a8e60e20703babd1c29196b7f6dd434fe8ada261ce6d1a2eaf033d260fe577b SHA512 ade25fa86c16c94a2c4d7553d591a6bc3ceb1ea33c2801b77fb9d93bb043e31de45fc4451068e177feefd2e9b11609973b29c486ec6e2c114915b39166fdcbc1
diff --git a/dev-python/pyicu/files/pyicu-2.15.2-gcc15.patch b/dev-python/pyicu/files/pyicu-2.15.2-gcc15.patch
deleted file mode 100644
index aa95cd0b5551..000000000000
--- a/dev-python/pyicu/files/pyicu-2.15.2-gcc15.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-https://bugs.gentoo.org/954147
-https://gitlab.pyicu.org/main/pyicu/-/commit/82fa082b149db81c894e0d887c0fff67c3d2826f
-
-From 82fa082b149db81c894e0d887c0fff67c3d2826f Mon Sep 17 00:00:00 2001
-From: Andi Vajda <vajda@pyicu.org>
-Date: Mon, 5 May 2025 18:55:09 -0700
-Subject: [PATCH] switch to is_trivially_copyable for sake of g++ 15+
-
---- a/arg.h
-+++ b/arg.h
-@@ -853,7 +853,7 @@ public:
- };
-
- #define _IS_POD(T) \
-- static_assert(std::is_trivial<T>::value); \
-+ static_assert(std::is_trivially_copyable<T>::value); \
- static_assert(std::is_standard_layout<T>::value)
-
- _IS_POD(AnyPythonObject);
---
-GitLab
diff --git a/dev-python/pyicu/pyicu-2.15.2.ebuild b/dev-python/pyicu/pyicu-2.16.ebuild
index f8960a8c5589..5e62930ecb08 100644
--- a/dev-python/pyicu/pyicu-2.15.2.ebuild
+++ b/dev-python/pyicu/pyicu-2.16.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
DEPEND="
dev-libs/icu:=
@@ -38,10 +38,7 @@ BDEPEND="
DOCS=( CHANGES CREDITS README.md )
-PATCHES=(
- "${FILESDIR}"/${P}-gcc15.patch
-)
-
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/pyopenssl/pyopenssl-25.3.0.ebuild b/dev-python/pyopenssl/pyopenssl-25.3.0.ebuild
index 5b9bb2f340c4..2ada08d1ce5a 100644
--- a/dev-python/pyopenssl/pyopenssl-25.3.0.ebuild
+++ b/dev-python/pyopenssl/pyopenssl-25.3.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
<dev-python/cryptography-47[${PYTHON_USEDEP}]
diff --git a/dev-python/pyperclip/Manifest b/dev-python/pyperclip/Manifest
index 2bf438cfc091..3fb9b23d5900 100644
--- a/dev-python/pyperclip/Manifest
+++ b/dev-python/pyperclip/Manifest
@@ -1,3 +1 @@
-DIST pyperclip-1.10.0.tar.gz 12193 BLAKE2B 0733fb724c32b927a29dcabec739454b2b2546cce1ac4235a1999b9c73c01272ffa9be6670780a7a3e8416d1de9a202364ce17c340bc116987dd3bc824de0a2d SHA512 eebb717e78817b34ef932fa916ae24f56ab2f064b2d20541dff06b192f69e3b33d007fe0a49b1b4ba5aeb9a633bab3139a215fce5016bf88013803713c7d402e
DIST pyperclip-1.11.0.tar.gz 12185 BLAKE2B 31ff9747fb084046a8afb62a8799dfccdad8372cb771109cbf6d075df63e23e0a26c48afe56f850b2bbf671336ee942c26dd3f8e661523533d4cef282ead2e15 SHA512 3756e75db1dc321dafe3677956d6d84b7c730bfd282f0293931e7dc5a468f3abaf8397a5f02bee4473953026d0ac373b835fe1972b7f5fe69e661195007901ab
-DIST pyperclip-1.9.0.tar.gz 20961 BLAKE2B a489268724b7beb82ec6b28c11cbb5fe04393a800297e4f71aace7232c13b68ce05092ca949f5cdc8257343b8e8f8b3cbd5227aa03a53e32eaeba8f3146108e2 SHA512 19865ebdcce99817f92994d14e26e1cd321d85da89f3177794a93981321ac3e39c937cccbcd00c866ccb30591d4720cd97a39fd266ef8378e3a21471ee69606f
diff --git a/dev-python/pyperclip/pyperclip-1.10.0.ebuild b/dev-python/pyperclip/pyperclip-1.10.0.ebuild
deleted file mode 100644
index ca0ed60cbca5..000000000000
--- a/dev-python/pyperclip/pyperclip-1.10.0.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 virtualx pypi
-
-DESCRIPTION="A cross-platform clipboard module for Python"
-HOMEPAGE="
- https://github.com/asweigart/pyperclip/
- https://pypi.org/project/pyperclip/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- || (
- x11-misc/xsel
- x11-misc/xclip
- kde-plasma/plasma-workspace
- dev-python/pyqt5[${PYTHON_USEDEP}]
- dev-python/qtpy[${PYTHON_USEDEP}]
- )
-"
-# test at least one backend
-BDEPEND="
- test? (
- ${RDEPEND}
- )
-"
-
-src_prepare() {
- local PATCHES=(
- "${FILESDIR}/${PN}-1.9.0-fix-test.patch"
- )
-
- # stupid windows
- find -type f -exec sed -i -e 's:\r$::' {} + || die
-
- distutils-r1_src_prepare
-
- # klipper is hard to get working, and once we make it work,
- # it breaks most of the other backends
- # wl-copy requires wayland, not Xvfb
- sed -e 's:_executable_exists("\(klipper\|wl-copy\)"):False:' \
- -i tests/test_pyperclip.py || die
-}
-
-python_test() {
- "${EPYTHON}" tests/test_pyperclip.py -vv ||
- die "Tests fail on ${EPYTHON}"
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
diff --git a/dev-python/pyperclip/pyperclip-1.9.0.ebuild b/dev-python/pyperclip/pyperclip-1.9.0.ebuild
deleted file mode 100644
index 21c8e42eb98d..000000000000
--- a/dev-python/pyperclip/pyperclip-1.9.0.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 virtualx pypi
-
-DESCRIPTION="A cross-platform clipboard module for Python"
-HOMEPAGE="
- https://github.com/asweigart/pyperclip/
- https://pypi.org/project/pyperclip/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- || (
- x11-misc/xsel
- x11-misc/xclip
- kde-plasma/plasma-workspace
- dev-python/pyqt5[${PYTHON_USEDEP}]
- dev-python/qtpy[${PYTHON_USEDEP}]
- )
-"
-# test at least one backend
-BDEPEND="
- test? (
- ${RDEPEND}
- )
-"
-
-src_prepare() {
- local PATCHES=(
- "${FILESDIR}/${P}-fix-test.patch"
- )
-
- # stupid windows
- find -type f -exec sed -i -e 's:\r$::' {} + || die
-
- distutils-r1_src_prepare
-
- # klipper is hard to get working, and once we make it work,
- # it breaks most of the other backends
- # wl-copy requires wayland, not Xvfb
- sed -e 's:_executable_exists("\(klipper\|wl-copy\)"):False:' \
- -i tests/test_pyperclip.py || die
-}
-
-python_test() {
- "${EPYTHON}" tests/test_pyperclip.py -vv ||
- die "Tests fail on ${EPYTHON}"
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.7.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.7.0.ebuild
index 9af79a880240..12e1767da976 100644
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.7.0.ebuild
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.7.0.ebuild
@@ -119,7 +119,7 @@ LICENSE+="
|| ( Apache-2.0 Boost-1.0 )
"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
~dev-python/toml-fmt-common-1.0.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.20.ebuild b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.20.ebuild
index eb6b61c182a7..1680171ec711 100644
--- a/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.20.ebuild
+++ b/dev-python/pypy-exe-bin/pypy-exe-bin-7.3.20.ebuild
@@ -61,7 +61,7 @@ RDEPEND="
dev-libs/expat:0/0
dev-libs/libffi:0/8
sys-libs/ncurses:0/6
- >=sys-libs/zlib-1.1.3:0/1
+ >=virtual/zlib-1.1.3:0/1
virtual/libintl:0/0
elibc_glibc? (
sys-devel/gcc
diff --git a/dev-python/pypy-exe/pypy-exe-7.3.20.ebuild b/dev-python/pypy-exe/pypy-exe-7.3.20.ebuild
index ecfd6467581d..a8ea58949f75 100644
--- a/dev-python/pypy-exe/pypy-exe-7.3.20.ebuild
+++ b/dev-python/pypy-exe/pypy-exe-7.3.20.ebuild
@@ -27,7 +27,7 @@ KEYWORDS="amd64 ~arm64 ~ppc64 x86 ~amd64-linux ~x86-linux"
IUSE="bzip2 +jit low-memory ncurses cpu_flags_x86_sse2"
DEPEND="
- >=sys-libs/zlib-1.1.3:0=
+ >=virtual/zlib-1.1.3:=
dev-libs/libffi:0=
virtual/libintl:0=
dev-libs/expat:0=
diff --git a/dev-python/pyroute2/Manifest b/dev-python/pyroute2/Manifest
index c976ebad5a42..a0dd912b0da4 100644
--- a/dev-python/pyroute2/Manifest
+++ b/dev-python/pyroute2/Manifest
@@ -1 +1,2 @@
DIST pyroute2-0.9.4.tar.gz 463980 BLAKE2B 6557bf74a20b56295868cc1a8c0e31c0e052665edf0adbf534b281c0ec958a0cfc101d3dfce4d29b1314499d71fd05901636e028d6f11413ba85cd609132cedc SHA512 77f1023622730ed45f1e1bda81f5e31c5de10afc0821856152564c1663bc60659411f6695c2826239cd8137edb5831578393a746a5a6dc1afe129bc1dc55eb02
+DIST pyroute2-0.9.5.tar.gz 969492 BLAKE2B 478cbb1a6795a817d9219cd39834b311c0afe05410858db26e8d4fdcc93ba388f648d217e48c5a38acfd65ddac07194bd9b2fe9d5378733dcc199119de33fa15 SHA512 affae114a5d9541bf4e746e233e1d11908ec0c2790eeb623dee225c65397ee4142a2f99537ec9c8bfa9ae723196c56dbc7cf8e80a574a242b7ab5b929fd1b2c6
diff --git a/dev-python/pyroute2/pyroute2-0.9.5.ebuild b/dev-python/pyroute2/pyroute2-0.9.5.ebuild
new file mode 100644
index 000000000000..750bbe3343b7
--- /dev/null
+++ b/dev-python/pyroute2/pyroute2-0.9.5.ebuild
@@ -0,0 +1,26 @@
+# 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} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A pure Python netlink and Linux network configuration library"
+HOMEPAGE="
+ https://github.com/svinota/pyroute2/
+ https://pypi.org/project/pyroute2/
+"
+
+LICENSE="|| ( GPL-2+ Apache-2.0 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+# tests need root access
+RESTRICT="test"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/pyxdameraulevenshtein/pyxdameraulevenshtein-1.9.0.ebuild b/dev-python/pyxdameraulevenshtein/pyxdameraulevenshtein-1.9.0.ebuild
index b6b2faa2c84e..ff2f02d5d20d 100644
--- a/dev-python/pyxdameraulevenshtein/pyxdameraulevenshtein-1.9.0.ebuild
+++ b/dev-python/pyxdameraulevenshtein/pyxdameraulevenshtein-1.9.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~ppc64 ~riscv x86"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index c9840d843c43..725c8e40d6c8 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,3 +1,3 @@
DIST regex-2025.10.23.tar.gz 401266 BLAKE2B 56441db882934d0472f8ccec3c4f50ce6b45db66ee49d5275f4b90ec2d4d4c552e68fb53b965b45bb37d4e4ce864f8cb4b0341228e92959b90a71adbf7a18ef1 SHA512 6ce878dc9950dff432d358e8a5955df8ba0ff3cada1a70c37812aa3f4f168d9ea8f4c05976b29c6bafbfdb45e2c0692a60613f5144c4d531b7dbd603a993320c
-DIST regex-2025.7.34.tar.gz 400714 BLAKE2B 4eb0c5600b9ef759f1e7511d01d533a3fda7b6010b6c974c0071e7cde2f5bbd9a8c62289b7abb4f2e0d9c251a9421876f6bf0a021892073babffb181d099ae55 SHA512 d30f69559804db12d85ee4c81d7055f3aab70f9a7c86b642932b7a12295ab2a4ca8e2a9bbf3a208b0546b7f7c76c64216cbd0b3ddfb7dfbd3fff7f9d4fa1d9ec
+DIST regex-2025.11.3.tar.gz 414669 BLAKE2B df6ddec6ab70f9119ecc780a5a69061cd19ed2067d8d5311712e2804b2d039988e243921366224c2e983cbbc4d4c38516839f7683b710e956a77e66d0ec1efc8 SHA512 929c4de507416c435343d7e27f2ce05520166c1b7499887747055c10dd05e7a424e009d3bf9661038707fbe99bd3cd0eda1eab2d5743d5bd8cae4bfd576390c4
DIST regex-2025.9.18.tar.gz 400917 BLAKE2B 0239c15afed04de12985576709abcdf294b248d084a9b9126fd3bc734ddb51df83a35578602675af04df82819b9dcf65228b918c4d39fc762106f62b470b96ad SHA512 15fa2b951045cc1fa1d11d95cf6223f33f2d0d5b51637a9e5e99966176aa973deb34cf9a8baf5c6ebe49b26e3edb64bda1432bbf4610aefa3981385a404d1f51
diff --git a/dev-python/regex/regex-2025.7.34.ebuild b/dev-python/regex/regex-2025.11.3.ebuild
index d846433accde..b0f7c524fb1f 100644
--- a/dev-python/regex/regex-2025.7.34.ebuild
+++ b/dev-python/regex/regex-2025.11.3.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
IUSE="doc"
distutils_enable_tests unittest
@@ -30,3 +30,8 @@ python_install_all() {
distutils-r1_python_install_all
}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
+ eunittest
+}
diff --git a/dev-python/sphinx-tabs/sphinx-tabs-3.4.7-r2.ebuild b/dev-python/sphinx-tabs/sphinx-tabs-3.4.7-r2.ebuild
index 85d7aeea8710..05df8b7a2a0e 100644
--- a/dev-python/sphinx-tabs/sphinx-tabs-3.4.7-r2.ebuild
+++ b/dev-python/sphinx-tabs/sphinx-tabs-3.4.7-r2.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/pygments[${PYTHON_USEDEP}]
diff --git a/dev-python/sshtunnel/files/sshtunnel-0.4.0-paramiko-4-compat.patch b/dev-python/sshtunnel/files/sshtunnel-0.4.0-paramiko-4-compat.patch
new file mode 100644
index 000000000000..d015fbb42832
--- /dev/null
+++ b/dev-python/sshtunnel/files/sshtunnel-0.4.0-paramiko-4-compat.patch
@@ -0,0 +1,27 @@
+https://github.com/pahaz/sshtunnel/issues/302
+https://github.com/pahaz/sshtunnel/pull/300
+
+From 7030d0c76c679c2934bdc27adc48ff5a84d1ae9a Mon Sep 17 00:00:00 2001
+From: lglines <lglines@fleetio.com>
+Date: Mon, 4 Aug 2025 08:58:11 -0600
+Subject: [PATCH] remove DSSKey, which is no longer supported by paramiko
+
+--- a/sshtunnel.py
++++ b/sshtunnel.py
+@@ -1090,7 +1090,6 @@ def get_keys(logger=None, host_pkey_directories=None, allow_agent=False):
+ host_pkey_directories = [DEFAULT_SSH_DIRECTORY]
+
+ paramiko_key_types = {'rsa': paramiko.RSAKey,
+- 'dsa': paramiko.DSSKey,
+ 'ecdsa': paramiko.ECDSAKey}
+ if hasattr(paramiko, 'Ed25519Key'):
+ # NOQA: new in paramiko>=2.2: http://docs.paramiko.org/en/stable/api/keys.html#module-paramiko.ed25519key
+@@ -1295,7 +1294,7 @@ def read_private_key_file(pkey_file,
+ paramiko.Pkey
+ """
+ ssh_pkey = None
+- key_types = (paramiko.RSAKey, paramiko.DSSKey, paramiko.ECDSAKey)
++ key_types = (paramiko.RSAKey, paramiko.ECDSAKey)
+ if hasattr(paramiko, 'Ed25519Key'):
+ # NOQA: new in paramiko>=2.2: http://docs.paramiko.org/en/stable/api/keys.html#module-paramiko.ed25519key
+ key_types += (paramiko.Ed25519Key, )
diff --git a/dev-python/sshtunnel/sshtunnel-0.4.0-r1.ebuild b/dev-python/sshtunnel/sshtunnel-0.4.0-r1.ebuild
new file mode 100644
index 000000000000..4d563aa45375
--- /dev/null
+++ b/dev-python/sshtunnel/sshtunnel-0.4.0-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+EPYTEST_XDIST=1
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure Python SSH tunnels"
+HOMEPAGE="https://pypi.org/project/sshtunnel/"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+
+# https://github.com/pahaz/sshtunnel/issues/302
+RDEPEND="<dev-python/paramiko-4[${PYTHON_USEDEP}]"
+BDEPEND="
+ test? (
+ dev-python/paramiko[server(+),${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/sshtunnel-0.4.0-dont-deadlock-tests.patch
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # network-sandbox
+ tests/test_forwarder.py::SSHClientTest::test_gateway_ip_unresolvable_raises_exception
+)
diff --git a/dev-python/sshtunnel/sshtunnel-0.4.0.ebuild b/dev-python/sshtunnel/sshtunnel-0.4.0-r2.ebuild
index cc47ec2fc00b..f6bd2eaa7d9a 100644
--- a/dev-python/sshtunnel/sshtunnel-0.4.0.ebuild
+++ b/dev-python/sshtunnel/sshtunnel-0.4.0-r2.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://pypi.org/project/sshtunnel/"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
RDEPEND="dev-python/paramiko[${PYTHON_USEDEP}]"
BDEPEND="
@@ -25,8 +25,10 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/sshtunnel-0.4.0-dont-deadlock-tests.patch
+ "${FILESDIR}"/sshtunnel-0.4.0-paramiko-4-compat.patch
)
+EPYTEST_PLUGINS=()
distutils_enable_tests pytest
EPYTEST_DESELECT=(
diff --git a/dev-python/stripe/Manifest b/dev-python/stripe/Manifest
index c37a738ee855..9c74006433d8 100644
--- a/dev-python/stripe/Manifest
+++ b/dev-python/stripe/Manifest
@@ -2,3 +2,4 @@ DIST stripe-12.5.1.tar.gz 1432826 BLAKE2B 84afb1f9dd9fa4b38d8781c7942d8ec2599c8f
DIST stripe-13.0.1.tar.gz 1263853 BLAKE2B f210b2c69afbf5d25b78857f125e5cf28ec6189fe446065e5d069448a808f5c8269d0461a09d37fa74ed15d8f112d00814a0735e2be524e4ae7c67b4f9b70f9f SHA512 ae747f381433cebe577a312be25aaf8cbf6b46a993fcae5ceaa372ccaa41ae77f80441c3036045db3d85d6d591af38d82c652f448d81cd630103e5e745d98f35
DIST stripe-13.1.0.tar.gz 1356892 BLAKE2B e1b5ea2ae680d2573debb589cb5e35b09f5b245bfd032991650f1a125ed889efd7565d4ffc2aaf59f2cbd95e7838ebee81f59faa6eb450c1f956cf2cb305e5c7 SHA512 26c97866b457ac24cc20559e4889d4893cefc64e3184ba72fd7f7a71265b9674400322441c5170220d1eb9aa6004d20b5e5280d04dc3c6056b6937be10a8271a
DIST stripe-13.1.1.tar.gz 1357445 BLAKE2B 4736de4d653d6c02bff9dab751bcf164f6fedcc397d95130910a82abad050e38bc2b548bbd8312c82999fd1530e8fa62a1421942b942536df2de0be17aeb4231 SHA512 3b6681b399a354f862a547c8aabe9f74c19f9941afba366a8c7d19b327d0299615a1db27ac58fbdaf019e8c043be1f94691e21ba5a76170f40f7d0bd213c1c96
+DIST stripe-13.1.2.tar.gz 1357500 BLAKE2B cc3b56b85f4852813e882e06b18cb0fe522ed252421c58bd2433661d58abb621b8b43ccdb441eac44587f67c5b5e18be773e42e503d58beae8d3a391e04e5b01 SHA512 57eadf645cdbddc91777fae1a97d0e6f612c3d8533201cb2c6110a549a672ac2f27c5346930e4f14345ab07644f6254c367192c1d3d933fe32fc6c8831a50c4a
diff --git a/dev-python/stripe/stripe-13.0.1.ebuild b/dev-python/stripe/stripe-13.0.1.ebuild
index 68032fa36998..a6d77730d5df 100644
--- a/dev-python/stripe/stripe-13.0.1.ebuild
+++ b/dev-python/stripe/stripe-13.0.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="telemetry"
RDEPEND="
diff --git a/dev-python/stripe/stripe-13.1.2.ebuild b/dev-python/stripe/stripe-13.1.2.ebuild
new file mode 100644
index 000000000000..5b0096f2ce7b
--- /dev/null
+++ b/dev-python/stripe/stripe-13.1.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=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/textual/Manifest b/dev-python/textual/Manifest
index 814dbcd558b0..e542b0985117 100644
--- a/dev-python/textual/Manifest
+++ b/dev-python/textual/Manifest
@@ -1,3 +1,4 @@
DIST textual-5.3.0.gh.tar.gz 30143229 BLAKE2B 4cdf7410efcbe4a87fd7346d3e083dfca03a3c546e598b21a3460270685b19ca7bc630c01acd8e1f132679199dab5cabdf525fb8e90fa7b6d6b4f1f5f43dba72 SHA512 df05703d7ef310a1f6e26b055550627ad6d981145d7ec215fb0abb01362c574b67701bf504ba088d4fe8c6f287942175f0e1d8a111c8424bf06acc6b65ead135
DIST textual-6.3.0.gh.tar.gz 30175259 BLAKE2B cce4544155208165b0553808cf83a7e48061748eb023f5233db37516d70b47b599beeb3119c7147737b51b5507496790b3f114d065c68e77e92ec7bf28fc0fce SHA512 5b76f76de987038644031a4517277b84c4118f231b0fb6ed3efccca87d1c9128da5552dbc422da2731624c664847ad9a0f313a4b51d1d03dcaaae06105af609c
DIST textual-6.4.0.gh.tar.gz 30177436 BLAKE2B b51842000329fa0da7b7111bac536d44d57a9c0d3df75f556efa812de4529e3b810d291966eb8999f9c0d4165544de92ebdd7a645565f843ac2c4b346be9203e SHA512 8fb14d399dc4e5350768bb38e2bcf76527c3cc9626fb8b03767892e96cce62ba8ad0ea2bc5899742e7db7b3002d06bb9e2e03d36327bbafde2067f8fb1dfc2be
+DIST textual-6.5.0.gh.tar.gz 30177857 BLAKE2B a5b3d1ec4d7a39cf5b77c68f2114a0c5339b1d4e8dd6f56b7f7fa63801707d44101d3e43bf19f299ec6a921f2316de5eecbdc8c9b254a6a6b5e6cc7c09f23b4d SHA512 5baf3ea4464de9906a3e2484a396e4e7c826f65794fceeb235cf9a96a629523b88f21bde4cd1db6cdcb48e9f38fd06855e6ddf33e4f22cb6b1c65faac92e363a
diff --git a/dev-python/textual/textual-6.3.0.ebuild b/dev-python/textual/textual-6.3.0.ebuild
index f09a0eb878f1..f2b4c9f96a3b 100644
--- a/dev-python/textual/textual-6.3.0.ebuild
+++ b/dev-python/textual/textual-6.3.0.ebuild
@@ -31,7 +31,9 @@ RDEPEND="
>=dev-python/markdown-it-py-2.1.0[${PYTHON_USEDEP}]
>=dev-python/platformdirs-3.6.0[${PYTHON_USEDEP}]
<dev-python/platformdirs-5[${PYTHON_USEDEP}]
- >=dev-python/rich-13.3.3[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.2.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.4.0[${PYTHON_USEDEP}]
+ <dev-python/typing-extensions-5[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
diff --git a/dev-python/textual/textual-6.4.0.ebuild b/dev-python/textual/textual-6.4.0.ebuild
index f09a0eb878f1..f2b4c9f96a3b 100644
--- a/dev-python/textual/textual-6.4.0.ebuild
+++ b/dev-python/textual/textual-6.4.0.ebuild
@@ -31,7 +31,9 @@ RDEPEND="
>=dev-python/markdown-it-py-2.1.0[${PYTHON_USEDEP}]
>=dev-python/platformdirs-3.6.0[${PYTHON_USEDEP}]
<dev-python/platformdirs-5[${PYTHON_USEDEP}]
- >=dev-python/rich-13.3.3[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.2.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.4.0[${PYTHON_USEDEP}]
+ <dev-python/typing-extensions-5[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
diff --git a/dev-python/textual/textual-6.5.0.ebuild b/dev-python/textual/textual-6.5.0.ebuild
new file mode 100644
index 000000000000..f2b4c9f96a3b
--- /dev/null
+++ b/dev-python/textual/textual-6.5.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..14} )
+
+DOCS_BUILDER="mkdocs"
+DOCS_DEPEND="
+ dev-python/mkdocstrings
+ dev-python/mkdocstrings-python
+ dev-python/mkdocs-exclude
+ dev-python/mkdocs-git-revision-date-localized-plugin
+ dev-python/mkdocs-material
+ dev-python/mkdocs-rss-plugin
+"
+DOCS_INITIALIZE_GIT=1
+
+inherit distutils-r1 optfeature docs
+
+DESCRIPTION="Modern Text User Interface framework"
+HOMEPAGE="https://github.com/Textualize/textual https://pypi.org/project/textual/"
+SRC_URI="https://github.com/Textualize/textual/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/markdown-it-py-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.6.0[${PYTHON_USEDEP}]
+ <dev-python/platformdirs-5[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.2.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.4.0[${PYTHON_USEDEP}]
+ <dev-python/typing-extensions-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/griffe[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ =dev-python/textual-dev-1.7*[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}"
+
+DOCS+=( CHANGELOG.md LICENSE README.md )
+
+EPYTEST_XDIST=1
+EPYTEST_DESELECT=(
+ # Those tests ask to press keys
+ tests/snapshot_tests/test_snapshots.py
+ tests/test_xterm_parser.py::test_escape_sequence_resulting_in_multiple_keypresses
+
+ # Need a package that should be optional
+ tests/text_area/test_languages.py
+
+ # Xdist fails thoses
+ tests/test_focus.py::test_focus_next_and_previous
+ tests/test_focus.py::test_focus_next_wrap_around
+ tests/test_focus.py::test_focus_previous_wrap_around
+ tests/test_focus.py::test_wrap_around_selector
+ tests/test_focus.py::test_no_focus_empty_selector
+ tests/test_focus.py::test_focus_next_and_previous_with_type_selector
+ tests/test_focus.py::test_focus_next_and_previous_with_str_selector
+ tests/test_focus.py::test_focus_next_and_previous_with_str_selector_without_self
+ tests/test_focus.py::test_focus_chain
+ tests/test_focus.py::test_allow_focus
+ tests/test_focus.py::test_focus_next_and_previous_with_type_selector_without_self
+
+ # Needs a fixture that does not exist
+ tests/test_progress_bar.py::test_progress_bar_width_1fr
+)
+distutils_enable_tests pytest
+# python_test() {
+# if [[ ${EPYTHON} == python3.13 ]]; then
+# EPYTEST_DESELECT+=(
+# # See https://github.com/Textualize/textual/issues/5327
+# "tests/text_area"
+# # Some tests just do not work under python3.13 (more than half of those in this file)
+# tests/test_focus.py
+# )
+# epytest -m 'not syntax' tests
+# else
+# epytest tests
+# fi
+# }
+
+python_compile_all() {
+ echo "INHERIT: mkdocs-offline.yml" > "${S}/mkdocs.yml"
+ grep -v "\- \"*[Bb]log" "${S}/mkdocs-nav.yml" >> "${S}/mkdocs.yml"
+ if use doc; then
+ DOCS+=( questions )
+ fi
+ docs_compile
+ rm "${S}/mkdocs.yml"
+}
+
+pkg_postinst() {
+ optfeature "bindings for python" dev-python/tree-sitter
+}
diff --git a/dev-python/tox/tox-4.30.3.ebuild b/dev-python/tox/tox-4.30.3.ebuild
index fcce8b282959..50a02dc7eb07 100644
--- a/dev-python/tox/tox-4.30.3.ebuild
+++ b/dev-python/tox/tox-4.30.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/cachetools[${PYTHON_USEDEP}]
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.16.2.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.16.2.ebuild
index 28c25a6bf7fe..728cbcf31b38 100644
--- a/dev-python/translate-toolkit/translate-toolkit-3.16.2.ebuild
+++ b/dev-python/translate-toolkit/translate-toolkit-3.16.2.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="+html +ical +ini +subtitles +yaml"
RDEPEND="
diff --git a/dev-python/types-psutil/types-psutil-7.0.0.20251001.ebuild b/dev-python/types-psutil/types-psutil-7.0.0.20251001.ebuild
index 486007de99f8..81cf9791a63a 100644
--- a/dev-python/types-psutil/types-psutil-7.0.0.20251001.ebuild
+++ b/dev-python/types-psutil/types-psutil-7.0.0.20251001.ebuild
@@ -13,4 +13,4 @@ HOMEPAGE="https://pypi.org/project/types-psutil/"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
diff --git a/dev-python/typing-inspection/typing-inspection-0.4.2.ebuild b/dev-python/typing-inspection/typing-inspection-0.4.2.ebuild
index 691cddfe9d25..eb6b8ed5349c 100644
--- a/dev-python/typing-inspection/typing-inspection-0.4.2.ebuild
+++ b/dev-python/typing-inspection/typing-inspection-0.4.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
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"
RDEPEND="
>=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}]
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index bdd2aabbd5e3..97080b5310de 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,6 +1,4 @@
DIST virtualenv-20.34.0.tar.gz 6003808 BLAKE2B ea13d8952b67c1b9fc1547d726b014d8d971fc83341fbd471c0697adf3d616e12b1d9f1eda9aee18b9abee15bedbfb1e6abddfb25c6bf0bb8ff8a036647b626b SHA512 0dbea6cc8ea4f2bd5fae5560e87d6fae1bc1230c4f04992749c6a274f1740b1bf262767329b667670d642501ef3c3ac1eecff5ce4c95a1d943db110bea0079b2
-DIST virtualenv-20.35.0.tar.gz 6005345 BLAKE2B 4bc6d0a7a05b60213f7cf934515ca7798398e5f09aebcd8093ac66ab600c82bb4ac7ab771146a0593c1c5b9eb83f1eeea1b299e13e96b63ecd1d6ca6ea8fdd00 SHA512 dc64f305a660f503d7e81195d0c6571a1e5f5fc586912d2c35a2d206859400bd763061f745851e753dfe905c60a1f6d5408f7c8ec0e9a3140554e941a7a0331a
-DIST virtualenv-20.35.1.tar.gz 6005687 BLAKE2B 48bf0a424729d370c2609a751520c37a0fcea8d053dff301d82c860198e0c8ceb22c0c9edb5500f4f772f0b9e701f254b50ae66c28c389202ce06ae4f637a5bf SHA512 28e1ee65df10569116509dddeeaf1be435547ac865ff2b29dccf681728a5cd758e27d09cc4cbcd41d646bc9185c2a7abef70e00deb3909af6dc28d91168c17f8
DIST virtualenv-20.35.3.tar.gz 6002907 BLAKE2B 8063752921737a6befbcfb94edaf82a45c726fd45cc5480825d891a9c259076f6bbdeb252d49999f2ad1f641a5e0714d2e9450fa5c59df04ad6f3805694744e2 SHA512 620061cfb7c291b76a7bee161664d935d602b0deb7768a94e341ae83d2b841f25bc658ed46e663bf7980142c9fe4f829ca47e3ee67c66f246f5d3fe243273b26
DIST virtualenv-20.35.4.tar.gz 6028799 BLAKE2B e4796544d04a5cf71b2f0c98c8b09e08db6b09613048a86948fe19d4359cf1c32a298e246c76b7342ea18c840b74c0fefe731ef84d6d43f4319075263518b293 SHA512 07027f64631416c535ca7c262dfcf753a961e2371c5b8562b0921ff9eb873b76e7380910f4080845ee329f59f295816376e8ff9d1f328a2efcc40e87157a1741
DIST virtualenv-20.35.4.tar.gz.provenance 9393 BLAKE2B 5e95b323b078ef6d520bd4463a272f9ae11ee5d182e44be80d95d67667375059504f882b85e329e42d42cb66b0cfc86a301ad60ec91885c88d69c9f0e115175b SHA512 f4b7cef5f95fdfeb7ea04ee5f90fe705079580ed4f4d519f4551d138c6a5fad73c862ee67681841ac1d2e258c8aac137ffdd468fd72b442d4c7a7713e7dc0192
diff --git a/dev-python/virtualenv/virtualenv-20.34.0.ebuild b/dev-python/virtualenv/virtualenv-20.34.0-r1.ebuild
index e4749863a2a0..21a30adbac32 100644
--- a/dev-python/virtualenv/virtualenv-20.34.0.ebuild
+++ b/dev-python/virtualenv/virtualenv-20.34.0-r1.ebuild
@@ -28,7 +28,7 @@ RDEPEND="
>=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
dev-python/ensurepip-pip
- dev-python/ensurepip-setuptools
+ >=dev-python/ensurepip-setuptools-70.1
dev-python/ensurepip-wheel
"
# coverage is used somehow magically in virtualenv, maybe it actually
diff --git a/dev-python/virtualenv/virtualenv-20.35.0.ebuild b/dev-python/virtualenv/virtualenv-20.35.0.ebuild
deleted file mode 100644
index b6d33bb388d0..000000000000
--- a/dev-python/virtualenv/virtualenv-20.35.0.ebuild
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_TESTED=( python3_{11..14} pypy3_11 )
-PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Virtual Python Environment builder"
-HOMEPAGE="
- https://virtualenv.pypa.io/en/stable/
- https://pypi.org/project/virtualenv/
- https://github.com/pypa/virtualenv/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
- >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
-
- dev-python/ensurepip-pip
- dev-python/ensurepip-setuptools
- dev-python/ensurepip-wheel
-"
-# coverage is used somehow magically in virtualenv, maybe it actually
-# tests something useful
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- dev-python/coverage[${PYTHON_USEDEP}]
- >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' python3_{11..14})
- $(python_gen_cond_dep '
- >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
- ' 'pypy3*')
- )
-"
-
-src_prepare() {
- local PATCHES=(
- # use wheels from ensurepip bundle
- "${FILESDIR}/${PN}-20.31.1-ensurepip.patch"
- )
-
- distutils-r1_src_prepare
-
- # workaround test failures due to warnings from setuptools-scm, sigh
- echo '[tool.setuptools_scm]' >> pyproject.toml || die
-
- # remove useless pins
- sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
-
- # remove bundled wheels
- rm src/virtualenv/seed/wheels/embed/*.whl || die
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping testing on ${EPYTHON}"
- return
- fi
-
- local EPYTEST_DESELECT=(
- tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
- # tests for old wheels with py3.7 support
- tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
- tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
- # broken by different wheel versions in ensurepip
- tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
- tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
- tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
- tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
- # hangs on a busy system, sigh
- tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
- # TODO
- tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
- # random resource leaks or xdist
- tests/unit/test_file_limit.py::test_too_many_open_files
- )
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # these don't like the executable called pypy3.11?
- tests/unit/activation/test_bash.py::test_bash
- tests/unit/activation/test_fish.py::test_fish
- tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
- )
- ;;
- esac
-
- local -x TZ=UTC
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- if [[ ${EPYTHON} == pypy3* ]]; then
- EPYTEST_PLUGINS+=( pytest-freezer )
- else
- EPYTEST_PLUGINS+=( time-machine )
- fi
- local EPYTEST_TIMEOUT=180
- local EPYTEST_XDIST=1
- epytest -o addopts=
-}
-
-src_install() {
- distutils-r1_src_install
-
- # remove bundled wheels, we're using ensurepip bundle instead
- find "${ED}" -name '*.whl' -delete || die
-}
diff --git a/dev-python/virtualenv/virtualenv-20.35.1.ebuild b/dev-python/virtualenv/virtualenv-20.35.1.ebuild
deleted file mode 100644
index 7d342ca9135a..000000000000
--- a/dev-python/virtualenv/virtualenv-20.35.1.ebuild
+++ /dev/null
@@ -1,130 +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_TESTED=( python3_{11..14} pypy3_11 )
-PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Virtual Python Environment builder"
-HOMEPAGE="
- https://virtualenv.pypa.io/en/stable/
- https://pypi.org/project/virtualenv/
- https://github.com/pypa/virtualenv/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
- >=dev-python/filelock-3.12.2[${PYTHON_USEDEP}]
- >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
-
- dev-python/ensurepip-pip
- dev-python/ensurepip-setuptools
- dev-python/ensurepip-wheel
-"
-# coverage is used somehow magically in virtualenv, maybe it actually
-# tests something useful
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- dev-python/coverage[${PYTHON_USEDEP}]
- >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
- >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- ' "${PYTHON_TESTED[@]}")
- $(python_gen_cond_dep '
- dev-python/time-machine[${PYTHON_USEDEP}]
- ' python3_{11..14})
- $(python_gen_cond_dep '
- >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
- ' 'pypy3*')
- )
-"
-
-src_prepare() {
- local PATCHES=(
- # use wheels from ensurepip bundle
- "${FILESDIR}/${PN}-20.31.1-ensurepip.patch"
- )
-
- distutils-r1_src_prepare
-
- # workaround test failures due to warnings from setuptools-scm, sigh
- echo '[tool.setuptools_scm]' >> pyproject.toml || die
-
- # remove useless pins
- sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
-
- # remove bundled wheels
- rm src/virtualenv/seed/wheels/embed/*.whl || die
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping testing on ${EPYTHON}"
- return
- fi
-
- local EPYTEST_DESELECT=(
- tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
- # tests for old wheels with py3.7 support
- tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
- tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
- # broken by different wheel versions in ensurepip
- tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
- tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
- tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
- tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
- # hangs on a busy system, sigh
- tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
- # TODO
- tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
- # random resource leaks or xdist
- tests/unit/test_file_limit.py::test_too_many_open_files
- )
- case ${EPYTHON} in
- pypy3.11)
- EPYTEST_DESELECT+=(
- # these don't like the executable called pypy3.11?
- tests/unit/activation/test_bash.py::test_bash
- tests/unit/activation/test_fish.py::test_fish
- tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
- )
- ;;
- esac
-
- local -x TZ=UTC
- local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
- if [[ ${EPYTHON} == pypy3* ]]; then
- EPYTEST_PLUGINS+=( pytest-freezer )
- else
- EPYTEST_PLUGINS+=( time-machine )
- fi
- local EPYTEST_RERUNS=5
- local EPYTEST_TIMEOUT=180
- local EPYTEST_XDIST=1
- epytest -o addopts=
-}
-
-src_install() {
- distutils-r1_src_install
-
- # remove bundled wheels, we're using ensurepip bundle instead
- find "${ED}" -name '*.whl' -delete || die
-}
diff --git a/dev-python/virtualenv/virtualenv-20.35.3.ebuild b/dev-python/virtualenv/virtualenv-20.35.3-r1.ebuild
index 7d342ca9135a..6614debaa658 100644
--- a/dev-python/virtualenv/virtualenv-20.35.3.ebuild
+++ b/dev-python/virtualenv/virtualenv-20.35.3-r1.ebuild
@@ -28,7 +28,7 @@ RDEPEND="
>=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
dev-python/ensurepip-pip
- dev-python/ensurepip-setuptools
+ >=dev-python/ensurepip-setuptools-70.1
dev-python/ensurepip-wheel
"
# coverage is used somehow magically in virtualenv, maybe it actually
diff --git a/dev-python/virtualenv/virtualenv-20.35.4.ebuild b/dev-python/virtualenv/virtualenv-20.35.4-r1.ebuild
index 7e7d135ba09d..c69dce7860f6 100644
--- a/dev-python/virtualenv/virtualenv-20.35.4.ebuild
+++ b/dev-python/virtualenv/virtualenv-20.35.4-r1.ebuild
@@ -29,7 +29,7 @@ RDEPEND="
>=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
dev-python/ensurepip-pip
- dev-python/ensurepip-setuptools
+ >=dev-python/ensurepip-setuptools-70.1
dev-python/ensurepip-wheel
"
# coverage is used somehow magically in virtualenv, maybe it actually
diff --git a/dev-python/xcffib/xcffib-1.11.2.ebuild b/dev-python/xcffib/xcffib-1.11.2.ebuild
index ba2c6fef3c32..a6407bd5f9f0 100644
--- a/dev-python/xcffib/xcffib-1.11.2.ebuild
+++ b/dev-python/xcffib/xcffib-1.11.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
x11-libs/libxcb
diff --git a/dev-python/xxhash/xxhash-3.6.0.ebuild b/dev-python/xxhash/xxhash-3.6.0.ebuild
index fa8e67b15e33..accc390f558f 100644
--- a/dev-python/xxhash/xxhash-3.6.0.ebuild
+++ b/dev-python/xxhash/xxhash-3.6.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
DEPEND="
>=dev-libs/xxhash-0.8.0
diff --git a/dev-python/zeroconf/zeroconf-0.148.0.ebuild b/dev-python/zeroconf/zeroconf-0.148.0.ebuild
index 613c30c341c1..59db8ec3e181 100644
--- a/dev-python/zeroconf/zeroconf-0.148.0.ebuild
+++ b/dev-python/zeroconf/zeroconf-0.148.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 x86 ~amd64-linux ~x86-linux"
IUSE="+native-extensions"
RDEPEND="