summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-08-17 03:04:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-08-17 03:04:37 -0500
commit5e23801c678ccd5c0e28d009b46d8860e38779ce (patch)
tree3f70315272c1bd4384b4c71e877a013973c1b86e /dev-python
parent419e92606fe27d657dbe239bd6f440ec8a36d51d (diff)
downloadbaldeagleos-repo-5e23801c678ccd5c0e28d009b46d8860e38779ce.tar.gz
baldeagleos-repo-5e23801c678ccd5c0e28d009b46d8860e38779ce.tar.xz
baldeagleos-repo-5e23801c678ccd5c0e28d009b46d8860e38779ce.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/charset-normalizer/charset-normalizer-3.4.9.ebuild2
-rw-r--r--dev-python/coverage/coverage-7.15.2.ebuild2
-rw-r--r--dev-python/dulwich/dulwich-1.2.11.ebuild2
-rw-r--r--dev-python/dunamai/dunamai-1.26.1.ebuild2
-rw-r--r--dev-python/fonttools/fonttools-4.63.0-r1.ebuild2
-rw-r--r--dev-python/httpx2/httpx2-2.7.0.ebuild2
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.165.10.ebuild143
-rw-r--r--dev-python/metakernel/Manifest1
-rw-r--r--dev-python/metakernel/metakernel-1.0.6.ebuild50
-rw-r--r--dev-python/nanobind/nanobind-2.13.0.ebuild2
-rw-r--r--dev-python/narwhals/narwhals-2.24.0.ebuild2
-rw-r--r--dev-python/pikepdf/pikepdf-10.10.0.ebuild2
-rw-r--r--dev-python/pyproject-fmt/Manifest7
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.27.0.ebuild115
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild116
-rw-r--r--dev-python/pysubs2/Manifest2
-rw-r--r--dev-python/pysubs2/pysubs2-1.9.0.ebuild23
-rw-r--r--dev-python/pytest-timeout/Manifest1
-rw-r--r--dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild47
-rw-r--r--dev-python/python-dotenv/Manifest2
-rw-r--r--dev-python/python-dotenv/python-dotenv-1.2.3.ebuild47
-rw-r--r--dev-python/rpds-py/rpds-py-2026.6.3.ebuild2
-rw-r--r--dev-python/rq/Manifest1
-rw-r--r--dev-python/rq/rq-2.11.0.ebuild78
-rw-r--r--dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild2
-rw-r--r--dev-python/sip/Manifest1
-rw-r--r--dev-python/sip/sip-6.16.1.ebuild44
-rw-r--r--dev-python/tibs/Manifest1
-rw-r--r--dev-python/tibs/tibs-1.0.0.ebuild2
-rw-r--r--dev-python/tibs/tibs-2.0.1.ebuild132
-rw-r--r--dev-python/tpm2-pytss/Manifest1
-rw-r--r--dev-python/tpm2-pytss/tpm2-pytss-3.0.0.ebuild49
-rw-r--r--dev-python/ujson/ujson-5.13.0.ebuild2
-rw-r--r--dev-python/uv-build/uv-build-0.11.29.ebuild2
-rw-r--r--dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.0.ebuild2
-rw-r--r--dev-python/uv/uv-0.11.29.ebuild2
-rw-r--r--dev-python/xxhash/xxhash-3.8.1.ebuild2
-rw-r--r--dev-python/zlib-ng/zlib-ng-1.0.0-r1.ebuild2
39 files changed, 762 insertions, 136 deletions
diff --git a/dev-python/charset-normalizer/charset-normalizer-3.4.9.ebuild b/dev-python/charset-normalizer/charset-normalizer-3.4.9.ebuild
index 52cf97acbded..cb44732ea838 100644
--- a/dev-python/charset-normalizer/charset-normalizer-3.4.9.ebuild
+++ b/dev-python/charset-normalizer/charset-normalizer-3.4.9.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="native-extensions"
BDEPEND="
diff --git a/dev-python/coverage/coverage-7.15.2.ebuild b/dev-python/coverage/coverage-7.15.2.ebuild
index cdf423343b78..7c0113de2c2e 100644
--- a/dev-python/coverage/coverage-7.15.2.ebuild
+++ b/dev-python/coverage/coverage-7.15.2.ebuild
@@ -20,7 +20,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/dulwich/dulwich-1.2.11.ebuild b/dev-python/dulwich/dulwich-1.2.11.ebuild
index 50bfa4a10cf8..61dbfd259adb 100644
--- a/dev-python/dulwich/dulwich-1.2.11.ebuild
+++ b/dev-python/dulwich/dulwich-1.2.11.ebuild
@@ -55,7 +55,7 @@ LICENSE+="
LICENSE+=" )"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="doc examples +native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/dunamai/dunamai-1.26.1.ebuild b/dev-python/dunamai/dunamai-1.26.1.ebuild
index 19a4062dbc3c..0ab15d518ce5 100644
--- a/dev-python/dunamai/dunamai-1.26.1.ebuild
+++ b/dev-python/dunamai/dunamai-1.26.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/packaging-20.9[${PYTHON_USEDEP}]
diff --git a/dev-python/fonttools/fonttools-4.63.0-r1.ebuild b/dev-python/fonttools/fonttools-4.63.0-r1.ebuild
index 759093fc1990..091fbebb659e 100644
--- a/dev-python/fonttools/fonttools-4.63.0-r1.ebuild
+++ b/dev-python/fonttools/fonttools-4.63.0-r1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
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="+native-extensions"
BDEPEND="
diff --git a/dev-python/httpx2/httpx2-2.7.0.ebuild b/dev-python/httpx2/httpx2-2.7.0.ebuild
index 8fef59d861b8..94f06356db37 100644
--- a/dev-python/httpx2/httpx2-2.7.0.ebuild
+++ b/dev-python/httpx2/httpx2-2.7.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cli"
RDEPEND="
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 69b8e2d59f04..7160d727b6e6 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -10,6 +10,7 @@ DIST hypothesis-6.161.8.gh.tar.gz 9649785 BLAKE2B 7058bec35557b223b4539401c830a8
DIST hypothesis-6.164.0.gh.tar.gz 9665401 BLAKE2B 9d5c5fc98191166cb0da35ac03ae5a377dd5c6d77144974d1b76e8e83368bbf0ad24d3c9ab6cf9758b77db59a5c5863b6ede859f91749ca5ded863fef554d9c8 SHA512 081e8643a6046eebfa4eec792ec001420e07be1acccbe6fc738a7baf476fa705991b34072d5b04dcf1a88ab77b90d6c26f99ee9edb2c1439cef54f16120e0def
DIST hypothesis-6.165.0.gh.tar.gz 9669080 BLAKE2B fae1270a51d0dada2554b9446f9a97d6de05ac4d1f1d7e463ec63ca0bece1a90afed8b799fa53da5ba6bd14c10ed69d18bede30b1eef3af5b5bce65c8b362aec SHA512 997fbe2c06e3a855cf450d71b69c1d483175c58428683534978eb839f5e466635355eb69c43acf2c450b678ddf97e450307ab96799468b65b90f4475c178a141
DIST hypothesis-6.165.1.gh.tar.gz 9677686 BLAKE2B 89efd4cceac0e13f20651d1624fd7b3d5683a24453c61b95146a9ed84c950a37ebb908aec9334d0a338dc28b50910ccdd03c2c345fd39ee88b08d4411ec6aac6 SHA512 0b77b83adfa06664a10befb6ae90bb03b4ae8ac50227c3e568020f00767f4d899ec108cb4342259db2961cde612b2eecdfe5347629e45d4f55034bbaeb987063
+DIST hypothesis-6.165.10.gh.tar.gz 9696772 BLAKE2B 12d76870dcd6f5a4e8d4495137cd3c4a7a6a35b79a36a4de9a3069dd4c0f485720b45ee0488491f8c6d0091af4c4cda3160197eb05e16834f7615be1ea0a9716 SHA512 1c41ab3816d8943b6addfcf21980521b2c2c35c5a744a265410d012350227dee72b782b1bfc39f3f5c76da4c1e4dc2b114ef2704218ae9f7dea16684f81ffc28
DIST hypothesis-6.165.2.gh.tar.gz 9690432 BLAKE2B 3060e1bdf0e9d6a4d6cca9a505a3964a15ac2c87aece049f92107cf03c7b19fbc26a96d1cf97517fcbe682577c49296598b8e3e53566ea911bc82f8bc56497ef SHA512 0fc89a80f23a05184443f16050fc81c7a39a33e9787add96b9d56ffca43c9b6e51db1aaaa8a26d89e2d6de21c770b7b787e1580f1863a24b6ac3b2c2f29f9703
DIST hypothesis-6.165.3.gh.tar.gz 9690125 BLAKE2B 2e7e38489dd1cf0986cefb06fc825f22be31fdc2f388c9f76d379290b7a020a61aab864cbf6e6ee78ed81dae6d024e6d400b607f37e8cf79eeb610d28cec0c05 SHA512 50690692c3e230edee1c5d7c65fca50ffb359eba5ba9ed8d048997db8b61164c978e7978b91ffd93da0d786f5d49813ac34a308e225de906e5efa9b791b9db63
DIST hypothesis-6.165.4.gh.tar.gz 9693372 BLAKE2B 6f3786d9f4eca7086dcc305935d80a9f9fefe1703ac7c9299170eb3a8699f8d009744fcd8dbec0dcae2ded6343c91b8515d6b2492d81e8623d7d5deec6d2a70f SHA512 c5051671fa665d7ad7c3871e4d5ee154493c1338bd831a2260102d93fc16b52425d6778db1d6d884a43340015a8b36b9b51e5bd92f3f7b238695ee6cc0a640e1
diff --git a/dev-python/hypothesis/hypothesis-6.165.10.ebuild b/dev-python/hypothesis/hypothesis-6.165.10.ebuild
new file mode 100644
index 000000000000..bf665e6799ed
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.165.10.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+CLI_COMPAT=( python3_{12..15} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+RUST_MIN_VER="1.91.0"
+CRATES="
+ cfg-if@1.0.4
+ crunchy@0.2.4
+ getrandom@0.3.4
+ half@2.7.1
+ heck@0.5.0
+ libc@0.2.186
+ once_cell@1.21.4
+ portable-atomic@1.13.1
+ ppv-lite86@0.2.21
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.2
+ pyo3-ffi@0.29.2
+ pyo3-macros-backend@0.29.2
+ pyo3-macros@0.29.2
+ pyo3@0.29.2
+ quote@1.0.46
+ r-efi@5.3.0
+ rand@0.9.4
+ rand_chacha@0.9.0
+ rand_core@0.9.5
+ syn@2.0.118
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+ wasip2@1.0.4+wasi-0.2.12
+ wit-bindgen@0.57.1
+ zerocopy-derive@0.8.53
+ zerocopy@0.8.53
+"
+
+inherit cargo distutils-r1 optfeature
+
+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/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${P}/hypothesis"
+
+LICENSE="MPL-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.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
+
+QA_PREBUILT="usr/lib/python.*/site-packages/hypothesis/_native.*"
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/
+ local EPYTEST_DESELECT=(
+ # broken somehow (xdist?)
+ 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
+ )
+ local EPYTEST_IGNORE=(
+ # require syrupy
+ tests/cover/test_custom_reprs.py
+ )
+
+ case ${EPYTHON} in
+ python3.15*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest 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/metakernel/Manifest b/dev-python/metakernel/Manifest
index 496f0c414c3a..58bec8f4aef3 100644
--- a/dev-python/metakernel/Manifest
+++ b/dev-python/metakernel/Manifest
@@ -1 +1,2 @@
DIST metakernel-1.0.0.tar.gz 229742 BLAKE2B 4508337e3679e9b502402569472187d23c61e3622dc79748b13e32d865af28efde2e219264646150eb404fd093a659a656cdb76e4b0881ee0b81574d7fc81513 SHA512 d76b25c1842958503156aee83ae01c15de7dc80acc7ed6fce616bfb93143275ad90284c43b9fb521c4a1a61cef7b8ec69a990ccbbd241cdfd0d4d3c479da8a4b
+DIST metakernel-1.0.6.tar.gz 238526 BLAKE2B 73eecb66f9f91b10b20da6d8f06610d4851feb28a2f00ef56aa0c693bcdadfed6c20e966d978bb13840443a9675818f860b8aefa1327609c3fcd69cb5d5defdc SHA512 69a0b3cabad602339f1558f0c135fccbe4d2bcda28ef9c9971cbc425c3ef675001d626c1c33505e61ef8d8daf97c0c45ccd9ac6611a7714aeba3a38334b70a11
diff --git a/dev-python/metakernel/metakernel-1.0.6.ebuild b/dev-python/metakernel/metakernel-1.0.6.ebuild
new file mode 100644
index 000000000000..1f458f53c490
--- /dev/null
+++ b/dev-python/metakernel/metakernel-1.0.6.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry-core
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Metakernel for Jupyter"
+HOMEPAGE="
+ https://github.com/Calysto/metakernel/
+ https://pypi.org/project/metakernel/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/comm-0.1.3[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.22.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.3.1[${PYTHON_USEDEP}]
+ >=dev-python/jedi-0.19.0[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.9.0[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/ipython-9.16[${PYTHON_USEDEP}]
+ >=dev-python/ipywidgets-8.0.5[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-kernel-test-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.29.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # fragile
+ tests/test_parser.py::test_path_completions
+ # requires starting ipycluster
+ tests/magics/test_parallel_magic.py::test_parallel_magic
+ )
+
+ epytest
+}
diff --git a/dev-python/nanobind/nanobind-2.13.0.ebuild b/dev-python/nanobind/nanobind-2.13.0.ebuild
index 8939d2fe8976..e3ae0cc5c0d5 100644
--- a/dev-python/nanobind/nanobind-2.13.0.ebuild
+++ b/dev-python/nanobind/nanobind-2.13.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~ppc ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ppc ppc64 ~riscv ~s390 ~x86"
DEPEND="
>=dev-cpp/robin-map-1.3.0
diff --git a/dev-python/narwhals/narwhals-2.24.0.ebuild b/dev-python/narwhals/narwhals-2.24.0.ebuild
index 359955646416..659973ad0528 100644
--- a/dev-python/narwhals/narwhals-2.24.0.ebuild
+++ b/dev-python/narwhals/narwhals-2.24.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 ~arm64"
BDEPEND="
test? (
diff --git a/dev-python/pikepdf/pikepdf-10.10.0.ebuild b/dev-python/pikepdf/pikepdf-10.10.0.ebuild
index 634c4f07cb5a..163495821621 100644
--- a/dev-python/pikepdf/pikepdf-10.10.0.ebuild
+++ b/dev-python/pikepdf/pikepdf-10.10.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
IUSE="big-endian"
# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
diff --git a/dev-python/pyproject-fmt/Manifest b/dev-python/pyproject-fmt/Manifest
index 13f8f41bcf93..6ef447b9a06e 100644
--- a/dev-python/pyproject-fmt/Manifest
+++ b/dev-python/pyproject-fmt/Manifest
@@ -6,11 +6,12 @@ DIST pyproject_fmt-2.25.4.tar.gz 294939 BLAKE2B 49ff266da59749eacad648592675f468
DIST pyproject_fmt-2.25.4.tar.gz.provenance 10162 BLAKE2B 8b53e7f0e243e39222b5f78e6ff17f43f2d567771aeb42c2d2ba39a314816519c67bfd4785837cfb6936d31580477e88b22dfa2c83c134e3e239f163e8b3abc2 SHA512 3950ea8cec325f06225157f3da31616a1345e0a66b7a00446f958293fe80bb72f9bc40d65895be517e70a1ca3c9921a7a20dee2b1876db2a029f94c18d216b1f
DIST pyproject_fmt-2.26.0.tar.gz 296642 BLAKE2B 210375e5c5caaa7b6c43ede00a627f25e1cf81aef7c62200ce9be0c041b37cee3f1247077699361e64556d26436774f6b2ebcf4093b1a8db2ae72fcf2cb9b310 SHA512 18ed375973adddcfd36882f0e69cb13bb7c12d3e06a91dd4249de86959aaf320d0e6de364b8d9dd396e24e82aec3364c138ae2031777bed9ee05de0bd2440d7a
DIST pyproject_fmt-2.26.0.tar.gz.provenance 10017 BLAKE2B 032a743e5ba685bfb34bcf6d509162d0afd38b280a3d92b38ed4c630625bd8f287d0dd2fdf9f90782b31ad5040ccd3eded9375f57ba55f3c57632d196eaf3abb SHA512 aec802a25f29ca55593f5bf343c310d1b5ec7890be620e98efa4438fb2d11493158455d67a4f73daed363e1388bc299deeb590310e77ea810126dd0ff5ce852b
-DIST pyproject_fmt-2.27.0.tar.gz 300145 BLAKE2B 2b2270350f61025311674405260e4987f8087b24928193ff459e77122a5b724b48a6d8f72ecad530ed14d86e31de9b8cbf9bb3429748156d31d5fa34a8c1a963 SHA512 12705f54be43042918f7c8777a0e95bcdbdb7b02ebabdc98292dd4c7cfa00e1fe398414ef8dbc35f7a07e79926cda352cdbdc843428f7a289990effda6ab1173
-DIST pyproject_fmt-2.27.0.tar.gz.provenance 9692 BLAKE2B 25d88f84cdccfe5b365531785876b035b8b1d477baeaa006dd4e4d85f1b26d3bd7b31e13f3426323c878c8056b3cd052b2bad8dbb764d781f56320296e90233c SHA512 c7dc9fcaa52be8e1464900575aed30765516eac8b4ff5448527f60ea42097e28c8925d1a51fd6a0ff2dfe0ebab4e9ce50b93142228369fa24ef49028f2dbfb57
DIST pyproject_fmt-2.27.1.tar.gz 299527 BLAKE2B 2aab29267a4163c6250e3d86bc750b25ae7844fbef67b6812e71240757945d2f8bed5f01e41027703562b9b2c2b7dd13f054ca0f2a40d73725572ca93d6e4439 SHA512 18a4f7509936ed401aa492cc6aeaf59ab05feddd8d44606610b4fb98972ff4face8a9c93dd2546ca1dc82c616e000ec8d6916dce668e503a9c8572ba354f6974
DIST pyproject_fmt-2.27.1.tar.gz.provenance 9925 BLAKE2B 0612e6088bb5374a7bb823de6ad12d5c470125f65f8fd04b2b2b402f138a14ccdb8bb612a0479491f9ea80702dcc66ff6aa79feec3a1fa4bf87b675cc99c0b12 SHA512 2742ebcab02153802afa3e45411a1982baf3fb63d29463fc114cf592e471f222a878793791bfe9d506dd35034993ff9fb3a2065ef8d86706cb6a1cab2c40c37f
+DIST pyproject_fmt-2.28.0.tar.gz 301864 BLAKE2B c51300782c35ce76e522ebef1de1f3444c4c4dea5e47c2839892a5bee8da0eb2146cb8cf2eea6b427460e4e236e8deb333a146b4cf7f86637dc1b849007253ec SHA512 345d6958128fd1b0ebb516a2c2bf14eee64e171d26987e9453be0e282a1b993ef369443aac521937ca91ab5e2b42b4df04768a7121bf58705c7b5fb359bbee62
+DIST pyproject_fmt-2.28.0.tar.gz.provenance 9882 BLAKE2B 3096bd0bd1924dc31e0877fcec83ae15af5fdc492e8370b2a17fb3f47e8588c4834df7099b85d14210e217065203559e4018fe6d2e1b6537401a3deaf7928753 SHA512 46ca391db06c455808c9534b0f66d7ac4a62a8f34ada35a0d471321be5a27334a6e47d74983de040f127d33a869c2e5fe60d0d5017d2a63ed8a39afdb32d1287
DIST tombi-0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b.gh.tar.gz 10564681 BLAKE2B 1cc4e307d89ae978c8022aed63ad7a7c08e71f810e42743589a6bf44499051250102ca3a60aa2cea65292dfd187240da96f6fb963511b6d4c06559c20bbc67a3 SHA512 e398e14c9b092f2378dfa848c697ea5cb0af705bcb801f288d2ca98b8c0d4aa3abf7a71f2f5a10a4a6a77e1e8d1f7089a0359b2a3ec9b226a19bbb40f0aa0a14
+DIST tombi-2c1f7bfc0b36f106eb50821fe41f25cc90e75427.gh.tar.gz 10689465 BLAKE2B 074bb5b9d631056fe7ee3e3b605eba2f2a8065eaa4f06f950df84b6045db8f157d9575044a5fb061ebfe41b7fbb5ff837f790b04f21341f2a0c99b119ff9ac78 SHA512 0daad5c26c8ba44d7dd98c0620dfeb6c821149fce7efb5b0fbfb30ffb543b7af06ba30d5b2c3a40df5e2e289ec5ee7eabf39d3fbbd4d965a13aa84be7874c573
DIST tombi-447bbe853ac15d1149976e9bbf85dd11fb55359e.gh.tar.gz 10635118 BLAKE2B 76bdc1d7e4704af8891309afbd5ceaba8e4d04ccc6bf4fcb4b021949e8774a613fd3530824407968066b046b455cb63ee754b1a5948a090a5e52b1f83c3d06e1 SHA512 d0aac41e3a7265d2eba5b64cc5815d2cbcc0ade1e055d57821afe4f399079f677c7b7964ffedfbffd8be8429a9ed01987c1446f7eabcedd6ba273fe7ae7d774c
DIST tombi-b46e34c8555e1b98d695ceec30cfa9c0227878ed.gh.tar.gz 10619752 BLAKE2B aef751b54ff252c35c216980d55561d409e76e71379a5d537835db1475bdaa277fd95b233f22af43644fb5a23a2621859706981a78ff7c79e768735f4b071ab4 SHA512 a4b7f71b5ca6f8bc9b64eda3f0048fb372ec44b8b4ab77e3d50bd4ef938de632e3a3837891baa98b4f44a311a743373e5ac92a0c7167ac32cdcbf1e180c7315c
DIST tombi-e9213370947e9d7ab6dd98c1cf17533bbbcc797f.gh.tar.gz 10608653 BLAKE2B 7fd8a27bec2e0c5ab357f2c56ca50c848d71e02da3faca9b0650541b35b177ce7b669d294c20add3dac2ba70e5ced46046d5c2de14df81fcee418fccaaa47344 SHA512 a84ca3f676b95d11c121df08382e3bc6ca2e31c0c867ff3027c5564219f637abda34bcc00d563d777280e1b4522354e83b6bb4b0412b067e9ce57272a4e34d15
@@ -18,5 +19,5 @@ DIST toml-fmt-pyproject-fmt-2.21.2-crates.tar.xz 18776904 BLAKE2B ae748ae98a2769
DIST toml-fmt-pyproject-fmt-2.24.1-crates.tar.xz 18725980 BLAKE2B 75f6c4a07b14fc60cd3b7a00e902c2b37fe79ea3d03172e7271300d5ea5bd0bf9b7727c4af7e47e82d28424f677235a6e9c1d22ad3314210be93170d9f36ff76 SHA512 88da1827c097f712489276c48fbf10e4c61ef92b877cd8eb7f34eeb1e289ce0362661d3b01bf34c23c1f4cc67e23b05462773407eba7d17814c96d7885f23bd9
DIST toml-fmt-pyproject-fmt-2.25.4-crates.tar.xz 16547296 BLAKE2B 90d85bfcb1652e61911bed8b89b787569fb45b00b6202335e6106ea427ecca78e24c508f030259b67388a4ea149cbc1bcdc87ad2083eb9c63613dfd0d684bb1a SHA512 e89213e82e7cfef3a61e38f027c85571044c6c7f3acc218722d056756b09221b0425d021ae6ae9392c123768dcd0e05fa5eff1b281f0f15fed15e69416b23d00
DIST toml-fmt-pyproject-fmt-2.26.0-crates.tar.xz 16547296 BLAKE2B 90d85bfcb1652e61911bed8b89b787569fb45b00b6202335e6106ea427ecca78e24c508f030259b67388a4ea149cbc1bcdc87ad2083eb9c63613dfd0d684bb1a SHA512 e89213e82e7cfef3a61e38f027c85571044c6c7f3acc218722d056756b09221b0425d021ae6ae9392c123768dcd0e05fa5eff1b281f0f15fed15e69416b23d00
-DIST toml-fmt-pyproject-fmt-2.27.0-crates.tar.xz 16632708 BLAKE2B 510359aae2b351b8a1e5a73e77bb39b68732453ff4624a9424721f3c1de5aa00ef1e8c06a1858f38ee5ee9ae07fe76304dbe14722611b3b564b51d1b26038c55 SHA512 b41bd7a614426126d6b82b72af12d3b1750ad037145430d0f5f1be5bf097101470f9757ba448ea539b14f155bd31f4800a95172db8616d3214df28f6115d0e9d
DIST toml-fmt-pyproject-fmt-2.27.1-crates.tar.xz 16632708 BLAKE2B 510359aae2b351b8a1e5a73e77bb39b68732453ff4624a9424721f3c1de5aa00ef1e8c06a1858f38ee5ee9ae07fe76304dbe14722611b3b564b51d1b26038c55 SHA512 b41bd7a614426126d6b82b72af12d3b1750ad037145430d0f5f1be5bf097101470f9757ba448ea539b14f155bd31f4800a95172db8616d3214df28f6115d0e9d
+DIST toml-fmt-pyproject-fmt-2.28.0-crates.tar.xz 16369840 BLAKE2B d47722d8d60399653d5ade9b4af37f5b932c41aee14b587201e0c2f17e12cf9e7285dbf395c577fa503508840c2f79add423494cb3363b5eedbb7b06395ef905 SHA512 e7a0a67adc943462f3299b8d459231642905a86ad70b8fadc4e37c01d2a569948f2546f0dc481136ff3a9750c5a128a4189e24707e0cc43a70cc25352b41967a
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.27.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.27.0.ebuild
deleted file mode 100644
index aa7739a58f5f..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.27.0.ebuild
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-schema-store'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;447bbe853ac15d1149976e9bbf85dd11fb55359e;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- 'pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]'
- 'pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]'
- # broken CLI test, expects exit status, gets an exception directly
- pyproject-fmt/tests/test_main.py::test_invalid_project_version
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild
new file mode 100644
index 000000000000..df0cc494ccf3
--- /dev/null
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.28.0.ebuild
@@ -0,0 +1,116 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+DISTUTILS_UPSTREAM_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.88.0"
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [tombi-accessor]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-accessor'
+ [tombi-ast-editor]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-ast-editor'
+ [tombi-ast]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-ast'
+ [tombi-cache]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-cache'
+ [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive-serde'
+ [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive-store'
+ [tombi-comment-directive]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-comment-directive'
+ [tombi-config]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-config'
+ [tombi-date-time]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-date-time'
+ [tombi-diagnostic]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-diagnostic'
+ [tombi-document-tree]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-document-tree'
+ [tombi-document]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-document'
+ [tombi-formatter]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-formatter'
+ [tombi-future]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-future'
+ [tombi-hashmap]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-hashmap'
+ [tombi-json-lexer]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-lexer'
+ [tombi-json-syntax]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-syntax'
+ [tombi-json-value]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json-value'
+ [tombi-json]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-json'
+ [tombi-lexer]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-lexer'
+ [tombi-parser]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-parser'
+ [tombi-regex]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-regex'
+ [tombi-rg-tree]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-rg-tree'
+ [tombi-schema-store]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-schema-store'
+ [tombi-schema-type]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-schema-type'
+ [tombi-severity-level]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-severity-level'
+ [tombi-syntax]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-syntax'
+ [tombi-text]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-text'
+ [tombi-toml-text]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-toml-text'
+ [tombi-toml-version]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-toml-version'
+ [tombi-uri]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-uri'
+ [tombi-validator]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-validator'
+ [tombi-version-sort]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-version-sort'
+ [tombi-x-keyword]='https://github.com/tombi-toml/tombi;2c1f7bfc0b36f106eb50821fe41f25cc90e75427;tombi-%commit%/crates/tombi-x-keyword'
+)
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Format your pyproject.toml file"
+HOMEPAGE="
+ https://github.com/tox-dev/toml-fmt/
+ https://pypi.org/project/pyproject-fmt/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+ https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
+ Unicode-3.0 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ dev-python/toml-fmt-common[${PYTHON_USEDEP}]
+"
+# tox is called as a subprocess, to get targets from tox.ini
+BDEPEND="
+ test? (
+ dev-python/tox
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i -e '/strip/d' pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # something about ANSI codes, no clue
+ 'pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]'
+ 'pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]'
+ # broken CLI test, expects exit status, gets an exception directly
+ pyproject-fmt/tests/test_main.py::test_invalid_project_version
+ )
+
+ epytest pyproject-fmt
+}
+
+python_test_all() {
+ # default features cause linking errors because they make pyo3
+ # wrongly assume it's compiling a Python extension
+ # https://github.com/tox-dev/toml-fmt/issues/23
+ cargo_src_test --no-default-features
+}
diff --git a/dev-python/pysubs2/Manifest b/dev-python/pysubs2/Manifest
index 46b1dbd38ccb..2c1627b8b139 100644
--- a/dev-python/pysubs2/Manifest
+++ b/dev-python/pysubs2/Manifest
@@ -1 +1,3 @@
DIST pysubs2-1.8.1.tar.gz 1153150 BLAKE2B 33a8921f2dbfcdc26c2b96b2525189193c7d34d094943d348880a3cd0694bb310c82dbd5230e736218db9fe6bd704671770866dcfa13844ecb0d766d378ddebc SHA512 45dacf1f28d358465e434457a59a725d9440c9ffa6f36cdf5a3c7dc43eefe00107b875d0fcb3fc13238616d0689e9ca5191ad6c96ee803676c39cd71c05acaa6
+DIST pysubs2-1.9.0.tar.gz 1147418 BLAKE2B 7626098051e833ce270a793f35a739df078ff7ad241a37258e023ece2c7339c89b9bd44386f2ce580d42acaddf503e655299653fc83464644065bf40ac9eabf6 SHA512 f460dbf1185c6509781dad1c374ef98616dd8f8c204f2274751ddc07d2ffdcc2b4cba8aad7915121a7e3830c94e0916613cf3e81e7e29d37fd6e28c5c32675d2
+DIST pysubs2-1.9.0.tar.gz.provenance 9710 BLAKE2B f79af31edf2a5be673948efce5bd2dbe9b0e06298e798de4df1b757c706d642eee63835861fa55dbe71563e1908b75cd680a58127e234af117f874769c9fcb27 SHA512 fcfb4aea2653e36048ed0d898ea3462c9682ffce406a6e2f69d2ca36c08c349c109233140b514a47a33aadfb48136fd54c80f888b597c680f46e0de5674ae099
diff --git a/dev-python/pysubs2/pysubs2-1.9.0.ebuild b/dev-python/pysubs2/pysubs2-1.9.0.ebuild
new file mode 100644
index 000000000000..2cc9559d1e13
--- /dev/null
+++ b/dev-python/pysubs2/pysubs2-1.9.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2026 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/tkarabela/pysubs2
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python library for editing subtitle files"
+HOMEPAGE="
+ https://github.com/tkarabela/pysubs2/
+ https://pypi.org/project/pysubs2/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pytest-timeout/Manifest b/dev-python/pytest-timeout/Manifest
index 495b55566e5b..f3b1a69179b5 100644
--- a/dev-python/pytest-timeout/Manifest
+++ b/dev-python/pytest-timeout/Manifest
@@ -1 +1,2 @@
DIST pytest_timeout-2.4.0.tar.gz 17973 BLAKE2B 97408cf5c9b49d809ef7a5d057afd22dfd856b64043879fa8e7d9f3996f76f5554bfed62bc8f40f4e5f28f058067b29b582953bf977fd1f6de95dfc7184ce41c SHA512 ca37754c20517024cb88e88e9c4d8497ff5c235d1bae4bc082d21b5807b43aac8294757900f9bc29e3e34a4b8c671136468793f47baadebf086f924b59b0bd0c
+DIST pytest_timeout-2.5.0.tar.gz 18248 BLAKE2B 240fe2f0c0786bd2469ef21d69583f4b3d7f939f1cbf8e51f98bdb96b11bc502bb51917a868ac1de069bb1ccc333e68cf205b6e3e7735e8c6c07ecabbe8001df SHA512 a0ad31bf1bac853c523ffbfed206814a839fbf71658db2cfcdba8b0a50821c7aa3176eab1afc2f91bfb4d644a16b79d97f107136cfb634d0cd31a8c0d8ec2759
diff --git a/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild b/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild
new file mode 100644
index 000000000000..6603931e2be2
--- /dev/null
+++ b/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin to abort hanging tests"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-timeout/
+ https://pypi.org/project/pytest-timeout/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# do not rdepend on pytest, it won't be used without it anyway
+# pytest-cov used to test compatibility
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ !hppa? (
+ dev-python/pytest-cov[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ if has_version "dev-python/pytest-cov[${PYTHON_USEDEP}]"; then
+ local EPYTEST_PLUGINS=( "${EPYTEST_PLUGINS[@]}" pytest-cov )
+ else
+ EPYTEST_DESELECT+=(
+ test_pytest_timeout.py::test_cov
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/python-dotenv/Manifest b/dev-python/python-dotenv/Manifest
index 24cbe2160bf5..7e332a9a28e9 100644
--- a/dev-python/python-dotenv/Manifest
+++ b/dev-python/python-dotenv/Manifest
@@ -1,2 +1,4 @@
DIST python_dotenv-1.2.2.tar.gz 50135 BLAKE2B 3d920de9a24370b988ccff6538dd8fb751db953b627e43fc9c8226eeab412edeb5e836d2634e411413f397736f42cdea8d7effbc3d96006548eceb4815d2166f SHA512 2bd70a739dd76d95c30d8272e80e2e168cd41ed1f367da73e044bbe40bd93f5ee3569ece3d050c130c06dfcc9865d7acdb24ca83243868b551e03289821cb2a1
DIST python_dotenv-1.2.2.tar.gz.provenance 9568 BLAKE2B 4b5a52cb1b096f8344efbbb897286855f546ae88668f28cfe3959847a2d2fcffc3bfd8cf404bd339deb4d67f64b495c341e629d0c9d23ac1f2af0b8af8537745 SHA512 462ad4c29bda0396d2d2ee2da39badedcb89603d2d1efb0fb518ba47810aa8804d64389f21da299413405e159dd736459a817043fb927ff6bac048220d9394cc
+DIST python_dotenv-1.2.3.tar.gz 58945 BLAKE2B 8cfbc7fe1893168cf0f720c8228eb6e7f39f2ec5be7c64a2ebd25e121335e3aaa83842851011bba3fe14f1a8a3222b8c2ae78432540420d80e36785a95566c9d SHA512 a90a9471f3a1e28300ee86ca29f8e94dbb881144353cbe5a97a8378bf73fd86f26ecf472a1052a94b503af5d7ebaf70c159063a75ea19510d32c6c2861e62ec4
+DIST python_dotenv-1.2.3.tar.gz.provenance 9950 BLAKE2B 70ce4054a14a1e2179551e6ae4ce96d70b5cb3cdbdeca190695a960216d58fdcc7938bff74ae13fc2020d4e759f6e4c7723c66d051eb074470bafebe4404d003 SHA512 23bb92bba9a56f8e0951d0df121d13cbc0ee9cc1921338eff6255da3c9cb6054813d54c6310c129636bc12b1a351ab58f462159ce84e72865c63188079cc8aa6
diff --git a/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild b/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild
new file mode 100644
index 000000000000..bc110a6e2b6a
--- /dev/null
+++ b/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 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/theskumar/python-dotenv
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Manage .env files"
+HOMEPAGE="
+ https://github.com/theskumar/python-dotenv/
+ https://pypi.org/project/python-dotenv/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ >=dev-python/click-5[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( CHANGELOG.md README.md )
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o tmp_path_retention_policy=all
+}
+
+python_install() {
+ distutils-r1_python_install
+ ln -s dotenv "${D}$(python_get_scriptdir)"/python-dotenv || die
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # Avoid collision with dev-ruby/dotenv (bug #798648)
+ mv "${ED}"/usr/bin/{,python-}dotenv || die
+}
diff --git a/dev-python/rpds-py/rpds-py-2026.6.3.ebuild b/dev-python/rpds-py/rpds-py-2026.6.3.ebuild
index dc55e22bdf58..254c56c55d81 100644
--- a/dev-python/rpds-py/rpds-py-2026.6.3.ebuild
+++ b/dev-python/rpds-py/rpds-py-2026.6.3.ebuild
@@ -46,7 +46,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rpds/rpds.*.so"
diff --git a/dev-python/rq/Manifest b/dev-python/rq/Manifest
index 61ae070b9811..9ca2a461628f 100644
--- a/dev-python/rq/Manifest
+++ b/dev-python/rq/Manifest
@@ -1,2 +1,3 @@
DIST rq-2.10.0.tar.gz 754610 BLAKE2B bffba43928470371b05b511216b60bdb089d11b6772910c6b31678422c5b47a6e873432609ee5653de85d6b561dd4917266fa27d6957ddcc8158bfcc1b7e2322 SHA512 f6c578e19f3f7dd85b4210c46486b915a45bd694b51d1da43e50fd7216ce64597dd0d610e98702c5c749aee552dafb2e8776c5367692793e1eb16077f5f8b765
+DIST rq-2.11.0.tar.gz 759304 BLAKE2B 604ff9b8fc25d1b96392ccc6261304efb81063dffa7e7aadbe26710063810bd7a2f53462c6dd8ccb4cc6563127a3c5a2b54215854dd968e070ba4ace5c1d6c1f SHA512 3c53e0667362c08a9971d3303d152f997afe5b5490d2962bea2d1333e400caa5082bdb025c1b8bc2a5888f08a1c48ee90bfe6a08383db017a211ed38d161d44c
DIST rq-2.9.1.tar.gz 745898 BLAKE2B d510294b139eed76aeefbe6c23c70f9099e280ddd139137c83c4132b536b9ae3eb1da6aa66f30c4e4c856c2d887e6247047bcb3d4f7ca65ad87ce7d38c05a7e1 SHA512 4e8decc89d93c715cd33eec464d1df1370ecc0d366b9e0de950500701ddcffcd26476965d7de68396a09ec7a18fbeefd1f4cb94f281a6b25b48ebe046d087c85
diff --git a/dev-python/rq/rq-2.11.0.ebuild b/dev-python/rq/rq-2.11.0.ebuild
new file mode 100644
index 000000000000..e6f07c3fff3f
--- /dev/null
+++ b/dev-python/rq/rq-2.11.0.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simple, lightweight library for creating and processing background jobs"
+HOMEPAGE="
+ https://python-rq.org/
+ https://github.com/rq/rq/
+ https://pypi.org/project/rq/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/click-5.0[${PYTHON_USEDEP}]
+ dev-python/croniter[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.5.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # requires <sentry-sdk-2
+ tests/test_sentry.py::TestSentry::test_failure_capture
+ # hang
+ tests/test_commands.py::TestCommands::test_shutdown_command
+ tests/test_worker_pool.py::TestWorkerPool::test_check_workers
+ tests/test_worker_pool.py::TestWorkerPool::test_reap_workers
+ tests/test_dependencies.py::TestDependencies
+ # already present in older versions
+ tests/test_spawn_worker.py::TestWorker::test_work_and_quit
+)
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip pin
+ sed -i -e '/dependencies/s:,!=[0-9.]*::' pyproject.toml || die
+}
+
+src_test() {
+ local -x TZ=UTC
+
+ local redis_pid="${T}"/redis.pid
+ local redis_port=6379
+ local redis_test_config="daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ bind 127.0.0.1
+ "
+
+ # Spawn Redis itself for testing purposes
+ # NOTE: On sam@'s machine, spawning Redis can hang in the sandbox.
+ # I'm not restricting tests yet because this doesn't happen for anyone else AFAICT.
+ einfo "Spawning Redis"
+ einfo "NOTE: Port ${redis_port} must be free"
+ /usr/sbin/redis-server - <<< "${redis_test_config}" || die
+
+ # Run the actual tests
+ distutils-r1_src_test
+
+ # Clean up afterwards
+ kill "$(<"${redis_pid}")" || die
+}
diff --git a/dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild b/dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild
index a400b85ad3b9..86077edc4058 100644
--- a/dev-python/scikit-build-core/scikit-build-core-1.0.3.ebuild
+++ b/dev-python/scikit-build-core/scikit-build-core-1.0.3.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 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
# we always want [pyproject] extra
RDEPEND="
diff --git a/dev-python/sip/Manifest b/dev-python/sip/Manifest
index df3adba8a0cd..1ad96b7c85bf 100644
--- a/dev-python/sip/Manifest
+++ b/dev-python/sip/Manifest
@@ -1,2 +1,3 @@
DIST sip-6.15.3.gh.tar.gz 2690715 BLAKE2B fb2729a3c80e21c340e7374703b11ad5d90c35eb73fd1d9b873064d19f1c26cb88b60abad2a03dd2dbe8783a8d151d61b09718bc71f9c16142997abc047fab69 SHA512 6a496248d11f991692f2b0676081c3c846de4f9aa3c2fca071aed350f3f84916298e997d72e22b43829566042578ebc24df9c2788d8f4a46a07d3f485cc1adb0
DIST sip-6.16.0.gh.tar.gz 3049251 BLAKE2B 01bec3098002e8651047d0efa52803044740c8013d2675713acb07e5115adde138b1ed537b6c2bcf0f1f04f85bab561715137a15605d3aebbffb28f4d11c0ed9 SHA512 6208fad41b6d1aadc13903b781e92bcd7d6c4c11f1028fe17f18953f837e2d300c9975b9c2b1ebb7092c00e9fa9dc6527fe809b1cf9b9951bf26ef6d028313db
+DIST sip-6.16.1.gh.tar.gz 3050004 BLAKE2B eaa4adf14c427f3cb6de02b61a8dcaa8a817112c3dd9962c94619c55bbd269f22011ab0337a33565210c368b9ccf9e1b913fe5d69da74a7435d9eccac22d3a3b SHA512 3488979bb5f3e61a502107488ad4a4eafa3b8f70774be0f3b428e57c8bdd031fa464c9e594d630d1e147f252c7c03773e8f57ea31212f2b157954cce189f01ea
diff --git a/dev-python/sip/sip-6.16.1.ebuild b/dev-python/sip/sip-6.16.1.ebuild
new file mode 100644
index 000000000000..6d5b58e93a85
--- /dev/null
+++ b/dev-python/sip/sip-6.16.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings generator for C/C++ libraries"
+HOMEPAGE="https://github.com/Python-SIP/sip/"
+SRC_URI="
+ https://github.com/Python-SIP/sip/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD-2 BSD"
+SLOT="5"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-8[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs \
+ dev-python/myst-parser \
+ dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ # the latest ABI version gets tested by default, but ABI 14
+ # requires python3.15 or higher
+ local epytestargs=()
+ [[ ${EPYTHON} =~ python3.1[2-4]t? ]] &&
+ epytestargs=( --sip-abi-version=13 )
+
+ epytest "${epytestargs[@]}"
+}
diff --git a/dev-python/tibs/Manifest b/dev-python/tibs/Manifest
index 20981d69e279..aee9ea636176 100644
--- a/dev-python/tibs/Manifest
+++ b/dev-python/tibs/Manifest
@@ -63,6 +63,7 @@ DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce37
DIST tibs-0.12.0.tar.gz 2164862 BLAKE2B 0ab165a01180d709e67142bf34bb48b7b3ec9d8b7d1f9de42be05bdd756e6572c6d528615352c940765cc88d06b364ea87e74371dd04ef20cd65da27230930f5 SHA512 58d8161c5eb553b3e211777da67fdb0fd6dac326b9ccb4dccf917fd0ec24b79f395a214f53829e129267b6830a4d557d4b4bac85a2edbaefaef5eb25ae4667fa
DIST tibs-1.0.0.tar.gz 2166659 BLAKE2B 5dc454458f3926b9db5a187c640d7929ea9b0975ce140580a84388c1465151c0d37f9b3985777ef06f1d2f4bfe26712b53034767af94130bcd8e09db95c746f4 SHA512 64fce5f0dfa8ce4d5e6c3f2b9ee7a610c22b5651ca17e8e23b8d5182ec7f44438a614d64eec7ccb324d6d2fdf0f1f5e3b094bb92620367a53119904d3c0fc859
DIST tibs-1.1.0.tar.gz 2184321 BLAKE2B a96af6e399af3d9938b2faabd9c9bb25a2621097def36ee98c6130c7ded60925ce0dc3d3181eab57c101f099b22d7fdfe72c21b0997e05cff9fd5bd44734d7c6 SHA512 fd21f1485a1582b4a9325c587db796fd601088aa2288040bc135cf8c60f9484c565f01e88d11dd978386ad65284233c96151019a9e7196bd60925d61162ef24e
+DIST tibs-2.0.1.tar.gz 2439366 BLAKE2B 1ed2cc50ab53095c4d80aa7e8ac5f5807bb45eed220a34d0067b0f20bf8ed81d442deb2eda8e5b6247e948f28c7563127e88faf53a08af3c6f87b3beb322c5c3 SHA512 9f8b37253a51036e99adaa6f92aa1eace4f46bf129a284c687307ffd90b86d7a348cc36326590289526d173e599b15b2823ae3d86f945abe3aa6ad027b2c7b27
DIST typenum-1.20.1.crate 105479 BLAKE2B aa3ff221502fb140dd500c302b09279f5d161123093d0f97d7b1a8761ae465ec71f7035109651e483b735121f8267ca2ff21a64825e9a91f83fcce4e7e1192d6 SHA512 ad4768b49dc06808e3135411ffaf21453572d152f71d73c34b7fe5d00e276d3e121dc78ebed57d620cf46b5ab24b5b5e0787f38ad9ce8bd12330b499cbbde5e1
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
diff --git a/dev-python/tibs/tibs-1.0.0.ebuild b/dev-python/tibs/tibs-1.0.0.ebuild
index 54ba1c1bccc2..ba7b4283c47d 100644
--- a/dev-python/tibs/tibs-1.0.0.ebuild
+++ b/dev-python/tibs/tibs-1.0.0.ebuild
@@ -109,7 +109,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 x86"
DEPEND="
app-arch/zstd:=
diff --git a/dev-python/tibs/tibs-2.0.1.ebuild b/dev-python/tibs/tibs-2.0.1.ebuild
new file mode 100644
index 000000000000..b9c5ba013a4e
--- /dev/null
+++ b/dev-python/tibs/tibs-2.0.1.ebuild
@@ -0,0 +1,132 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+ anyhow@1.0.102
+ bitflags@2.11.0
+ bitvec@1.1.1
+ block-buffer@0.12.0
+ cc@1.2.60
+ cfg-if@1.0.4
+ chacha20@0.10.0
+ const-oid@0.10.2
+ cpufeatures@0.3.0
+ crunchy@0.2.4
+ crypto-common@0.2.2
+ digest@0.11.3
+ equivalent@1.0.2
+ find-msvc-tools@0.1.9
+ foldhash@0.1.5
+ funty@2.0.0
+ getrandom@0.3.4
+ getrandom@0.4.1
+ half@2.7.1
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ heck@0.5.0
+ hybrid-array@0.4.12
+ id-arena@2.3.0
+ indexmap@2.13.0
+ itoa@1.0.17
+ jobserver@0.1.34
+ leb128fmt@0.1.0
+ libc@0.2.182
+ log@0.4.29
+ memchr@2.8.1
+ once_cell@1.21.3
+ pkg-config@0.3.33
+ portable-atomic@1.13.1
+ prettyplease@0.2.37
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
+ quote@1.0.44
+ r-efi@5.3.0
+ radium@0.7.0
+ rand@0.10.0
+ rand_core@0.10.0
+ semver@1.0.27
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ sha2@0.11.0
+ shlex@1.3.0
+ syn@2.0.117
+ tap@1.0.1
+ target-lexicon@0.13.5
+ typenum@1.20.1
+ unicode-ident@1.0.24
+ unicode-xid@0.2.6
+ wasip2@1.0.2+wasi-0.2.9
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ wyz@0.5.1
+ zerocopy-derive@0.8.40
+ zerocopy@0.8.40
+ zmij@1.0.21
+ zstd-safe@7.2.4
+ zstd-sys@2.0.16+zstd.1.5.7
+ zstd@0.13.3
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="A sleek Python library for your binary data"
+HOMEPAGE="
+ https://github.com/scott-griffiths/tibs/
+ https://pypi.org/project/tibs/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+DEPEND="
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # hangs or very slow
+ 'tests/test_docs.py::test_doc_examples[serialization.rst]'
+)
+EPYTEST_IGNORE=(
+ tests/test_benchmarks.py
+ # exact dependency pins
+ tests/conformance
+)
+
+QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/tibs/tibs.abi3.*"
+
+# enable system libraries where supported
+export ZSTD_SYS_USE_PKG_CONFIG=1
diff --git a/dev-python/tpm2-pytss/Manifest b/dev-python/tpm2-pytss/Manifest
index 36ebe54c2e95..a4d04ee7a3ce 100644
--- a/dev-python/tpm2-pytss/Manifest
+++ b/dev-python/tpm2-pytss/Manifest
@@ -1 +1,2 @@
DIST tpm2-pytss-2.3.0.tar.gz 213848 BLAKE2B 7e9264ab53cfe666991150fe2c0efdd973f7b58b4968b557d6494156ba4d362bd147f580f2ef50b85ac1b43cd9fc4921d71eea42d5a14b9379f82d45b6a6b536 SHA512 d0f76aec77afa773ec0ed7878a0ca4ef3b3475aa64f219d7a5afd89cbca795457536b0a9b5ffa14704200dcb35a89df36f9fc799694f7cc3cfbf98ea551628b1
+DIST tpm2_pytss-3.0.0.tar.gz 215519 BLAKE2B 3c6cb3bdb43bb4b7264569c7474f999163d79e0de9207d4146f2f087f77e731113260d265cf4ef8ef3e15e09ef45c9e4ce5f391df339e0636e2f8390954c15d3 SHA512 c69245c6bdc5a92884c8267c3de79570880bfc2498f31bddfdb03ad21aac7932327d4d28d93bc5de6d47c99397d411a8b4c11566311a166fe4648d47cab5bad4
diff --git a/dev-python/tpm2-pytss/tpm2-pytss-3.0.0.ebuild b/dev-python/tpm2-pytss/tpm2-pytss-3.0.0.ebuild
new file mode 100644
index 000000000000..dcf8ae8093ca
--- /dev/null
+++ b/dev-python/tpm2-pytss/tpm2-pytss-3.0.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for TSS"
+HOMEPAGE="
+ https://pypi.org/project/tpm2-pytss/
+ https://github.com/tpm2-software/tpm2-pytss/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+fapi test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ app-crypt/tpm2-tss:=[fapi=]
+ fapi? ( >=app-crypt/tpm2-tss-3.0.3:= )
+ test? ( app-crypt/swtpm )
+"
+RDEPEND="${DEPEND}
+ dev-python/cffi[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-47[${PYTHON_USEDEP}]
+ dev-python/pycparser[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/pkgconfig[${PYTHON_USEDEP}]
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Current tpm2-tss specified a newer revision that the one tested for
+ test/test_encoding.py::ToolsTest::test_tools_decode_tpml_tagged_tpm_property
+ )
+ epytest
+}
diff --git a/dev-python/ujson/ujson-5.13.0.ebuild b/dev-python/ujson/ujson-5.13.0.ebuild
index 96d7cce05d1a..df4d9632755d 100644
--- a/dev-python/ujson/ujson-5.13.0.ebuild
+++ b/dev-python/ujson/ujson-5.13.0.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"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
dev-libs/double-conversion:=
diff --git a/dev-python/uv-build/uv-build-0.11.29.ebuild b/dev-python/uv-build/uv-build-0.11.29.ebuild
index 2aeffd7fcf2f..14a005943d84 100644
--- a/dev-python/uv-build/uv-build-0.11.29.ebuild
+++ b/dev-python/uv-build/uv-build-0.11.29.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm ~arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.0.ebuild b/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.0.ebuild
index 09738aa5433d..108aeff4067b 100644
--- a/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.0.ebuild
+++ b/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/dunamai-1.26[${PYTHON_USEDEP}]
diff --git a/dev-python/uv/uv-0.11.29.ebuild b/dev-python/uv/uv-0.11.29.ebuild
index e5ceb1ae3881..2c72484f59f1 100644
--- a/dev-python/uv/uv-0.11.29.ebuild
+++ b/dev-python/uv/uv-0.11.29.ebuild
@@ -39,7 +39,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm ~arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
diff --git a/dev-python/xxhash/xxhash-3.8.1.ebuild b/dev-python/xxhash/xxhash-3.8.1.ebuild
index f2c2ad5d2e54..c08db4dd9787 100644
--- a/dev-python/xxhash/xxhash-3.8.1.ebuild
+++ b/dev-python/xxhash/xxhash-3.8.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~sparc x86"
+KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv ~sparc x86"
DEPEND="
>=dev-libs/xxhash-0.8.0
diff --git a/dev-python/zlib-ng/zlib-ng-1.0.0-r1.ebuild b/dev-python/zlib-ng/zlib-ng-1.0.0-r1.ebuild
index 7a8fdf7d8b00..8d55818d95df 100644
--- a/dev-python/zlib-ng/zlib-ng-1.0.0-r1.ebuild
+++ b/dev-python/zlib-ng/zlib-ng-1.0.0-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
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"
DEPEND="
sys-libs/zlib-ng:=