summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/blurb/Manifest1
-rw-r--r--dev-python/blurb/blurb-1.2.0.ebuild27
-rw-r--r--dev-python/django-timezone-field/Manifest1
-rw-r--r--dev-python/django-timezone-field/django-timezone-field-7.0.ebuild51
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.105.1.ebuild103
-rw-r--r--dev-python/identify/Manifest1
-rw-r--r--dev-python/identify/identify-2.6.0.ebuild29
-rw-r--r--dev-python/jsonpickle/jsonpickle-3.2.2.ebuild4
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/littleutils/Manifest1
-rw-r--r--dev-python/littleutils/littleutils-0.2.4.ebuild24
-rw-r--r--dev-python/mcbootflash/Manifest1
-rw-r--r--dev-python/mcbootflash/mcbootflash-9.0.1.ebuild10
-rw-r--r--dev-python/moto/Manifest1
-rw-r--r--dev-python/moto/moto-5.0.11.ebuild184
-rw-r--r--dev-python/nh3/Manifest34
-rw-r--r--dev-python/nh3/nh3-0.2.17-r1.ebuild112
-rw-r--r--dev-python/nh3/nh3-0.2.18.ebuild113
-rw-r--r--dev-python/pdm/Manifest2
-rw-r--r--dev-python/pdm/pdm-2.15.4.ebuild117
-rw-r--r--dev-python/pdm/pdm-2.16.0.ebuild117
-rw-r--r--dev-python/pygit2/Manifest1
-rw-r--r--dev-python/pygit2/pygit2-1.15.1.ebuild46
-rw-r--r--dev-python/pytest-subtests/Manifest1
-rw-r--r--dev-python/pytest-subtests/pytest-subtests-0.13.0.ebuild39
-rw-r--r--dev-python/readme-renderer/files/readme-renderer-43.0-docutils-0.21.patch70
-rw-r--r--dev-python/readme-renderer/readme-renderer-43.0-r1.ebuild39
-rw-r--r--dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild164
-rw-r--r--dev-python/types-docutils/Manifest2
-rw-r--r--dev-python/types-docutils/types-docutils-0.21.0.20240708.ebuild (renamed from dev-python/types-docutils/types-docutils-0.21.0.20240423.ebuild)0
-rw-r--r--dev-python/uncertainties/Manifest2
-rw-r--r--dev-python/uncertainties/uncertainties-3.2.2.ebuild (renamed from dev-python/uncertainties/uncertainties-3.1.7-r1.ebuild)11
-rw-r--r--dev-python/uv/Manifest1
-rw-r--r--dev-python/uv/uv-0.2.22.ebuild108
-rw-r--r--dev-python/xkbcommon/Manifest1
-rw-r--r--dev-python/xkbcommon/xkbcommon-1.5.1.ebuild38
40 files changed, 1225 insertions, 261 deletions
diff --git a/dev-python/blurb/Manifest b/dev-python/blurb/Manifest
index cebdcf47b64e..67974539aeb3 100644
--- a/dev-python/blurb/Manifest
+++ b/dev-python/blurb/Manifest
@@ -1 +1,2 @@
DIST blurb-1.1.0.tar.gz 25064 BLAKE2B 4fbdd0d068cc7abb1ffa78dff70bd83feccc1bcfbf8ebb085c9f7e77e0f330d3759f10a94a5ca024b465c01f9d659496ae55162a52b7158a06caf2d114d36806 SHA512 9397173e7bf5babf02c96df27983462e7dd2a729e9eb0cacdf23ca3778336902d5c611ab5e2432bbc877344426d7c62ea8ae77719aa08da98f9b44365583b7ee
+DIST blurb-1.2.0.tar.gz 23573 BLAKE2B a7a15fed82fca3f13eb840379b186210d6b8a039f61d48c65dce33ab80e970791add63efe9986adb54e7bedd452a3a867791237e250c1949b5b90f06bfac28ae SHA512 ebfe4c84d1f813822d7a583b337460a840235b61257428a47b7b61eb43b4b38fffc84f0fe758c6f61e9ae4b8c9c1affd9038077ddf846f17032e4497f87b78ad
diff --git a/dev-python/blurb/blurb-1.2.0.ebuild b/dev-python/blurb/blurb-1.2.0.ebuild
new file mode 100644
index 000000000000..ee7f810e5967
--- /dev/null
+++ b/dev-python/blurb/blurb-1.2.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2018-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Tool to create and manage NEWS blurbs for CPython"
+HOMEPAGE="
+ https://github.com/python/core-workflow/tree/master/blurb
+ https://pypi.org/project/blurb/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/pyfakefs[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/django-timezone-field/Manifest b/dev-python/django-timezone-field/Manifest
index fafea89dcfd6..d840caeb0eb2 100644
--- a/dev-python/django-timezone-field/Manifest
+++ b/dev-python/django-timezone-field/Manifest
@@ -1 +1,2 @@
DIST django-timezone-field-6.1.0.gh.tar.gz 36029 BLAKE2B 5177b440e0537fbde12e0dd4bf92e65c983996f7ef1393212b0f4c24efecfc0d4d24e1bbc8447295b565d8b9921c0c05f6cc4baa11db3ccc9b60c33c48e76fb2 SHA512 b070e55a2a5196de1fcae4bd19979caf9d84c234a4e379d82dab843541cf99a0acced9a6996e35afe6b40d1bf737d522d34b91df10596e7365f85cfbe0597015
+DIST django-timezone-field-7.0.gh.tar.gz 37416 BLAKE2B a0420ccbcb9d7d834e65d0cc89fd83662bd4b3773f1443f05866381d6bbeacba86bdd2e6078a3819bdbf6c174e3ede08e4b9d307838d5082e7bef037ff751681 SHA512 9a96b65a7dce48f58c3915e835e92b8d884f6b15f8314f5d6f1a34bc75ad4bc8f0c33035a4844b5906b7d6bc468cf364be8c82843f3af714a59dc9a40e71f9af
diff --git a/dev-python/django-timezone-field/django-timezone-field-7.0.ebuild b/dev-python/django-timezone-field/django-timezone-field-7.0.ebuild
new file mode 100644
index 000000000000..7b3a9f93bbc5
--- /dev/null
+++ b/dev-python/django-timezone-field/django-timezone-field-7.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django app providing database and form fields for timezone objects"
+HOMEPAGE="
+ https://github.com/mfogel/django-timezone-field/
+ https://pypi.org/project/django-timezone-field/
+"
+SRC_URI="
+ https://github.com/mfogel/django-timezone-field/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ <dev-python/django-6[${PYTHON_USEDEP}]
+ >=dev-python/django-2.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/djangorestframework[${PYTHON_USEDEP}]
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+ dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # https://github.com/mfogel/django-timezone-field/pull/138
+ sed -e 's:from pytest_lazyfixture import lazy_fixture:from pytest_lazy_fixtures import lf as lazy_fixture:' \
+ -i tests/*.py || die
+}
+
+python_test() {
+ local -x DB_ENGINE=sqlite
+ epytest
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 2b72e98e5f25..a089ad67ca9b 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -6,3 +6,4 @@ DIST hypothesis-6.104.0.gh.tar.gz 9466479 BLAKE2B 9cf9f28d3ad739a40062369a37ea42
DIST hypothesis-6.104.1.gh.tar.gz 9466716 BLAKE2B 5ddefd5199bfb22ef8c2c2ae995de5353e7d067f044788f4cd9423cfa4674ff1c5a05760d686f4b4dd5fe9afb2b4ba1cdb38aa7d590575f79d75c460adde63ab SHA512 a9eef39e3cc8fde806cb860f47190239a680c3203ca0228450a7c999ee9618964e201c05a994835e5513f7945b3a5f830fd9fa941d4cfdf4793e5e2fb266df47
DIST hypothesis-6.104.2.gh.tar.gz 9467131 BLAKE2B 22be74426808bef091351cfb688bdb1fa8ce84f011d3303e7455526f38732bba44c9d82a8162d12e395a192a644f188e7991f7311bebb676c28197131b272a19 SHA512 18b11669bc1d2ba6e7ef0854823c22798fa86e988d951a223235160460fb79b5a5d10caf8fc7aa06ba5996c75ff7e8146725bf1ed3b9b4e169f93cbfa0bf2776
DIST hypothesis-6.105.0.gh.tar.gz 9467572 BLAKE2B be878220e5908ca8b20c6b6ed8ab61638e2a5605118b61ecb715b94353751d014644995e8ab6056e2e5b4cab94e533117de199997bd3492b78465694321e4afa SHA512 dd6284ed12b68b9ff7fcb3026f08de240959f116b7444384c1737ef632483796ef3f1687796fa744d8cd7855811916a070ff48d66dc8ace869ee24d9ee9d8ca3
+DIST hypothesis-6.105.1.gh.tar.gz 9468095 BLAKE2B 285a6291ad1386384afa08634a2d7b4802060514e22a7f78d42a1cf97e548a4da6abffd24c98a931a07db9779ed5c54514e5460393ab12a904c5054db2bbb038 SHA512 f3a900d566a00ec178de3550108b752c70819b1081c0b3dcbe05aaee43cafb62f11d90efb6718d19039c2cb87ac55255dff09a71dafb7d6203f76408788e5cdf
diff --git a/dev-python/hypothesis/hypothesis-6.105.1.ebuild b/dev-python/hypothesis/hypothesis-6.105.1.ebuild
new file mode 100644
index 000000000000..6ba8058fdf38
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.105.1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( pypy3 python3_{10..13} )
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+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 ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ !!<dev-python/requests-toolbelt-0.10.1
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/identify/Manifest b/dev-python/identify/Manifest
index 85b4b7bbe787..00725cece12e 100644
--- a/dev-python/identify/Manifest
+++ b/dev-python/identify/Manifest
@@ -1 +1,2 @@
DIST identify-2.5.36.gh.tar.gz 101732 BLAKE2B c0f7d7f57a757ec828b7def3a0e7e544855bf4eed8f3b612cc35acda34f05379c5267eb33a0110080708c50a838983a6d662130e297f2e0a00382025c58ccf61 SHA512 713ce08bafc076d2724f847c0b051036072d6b8d53c77a0ca011b7ec3af4ec27381de3ef4622235db0791ef4fc449514f78c2ad250d77c055e9fec9dc6f14a57
+DIST identify-2.6.0.gh.tar.gz 101732 BLAKE2B 0c6cdd8801861ac2b33c812766008d3e1a689ea09ee698441439aa2c02207f9f05983f7cbbdf1e999cdf4b34a6994a60c12249cf6722b690ae05126bc3178273 SHA512 0e7b27783fc9133d76247811e1bbd92b1c2f54c2feef6a603e725f92af44b8f595a5b39162db3b9f4cebdf2fe58587bb10f9d93a745d5cb6b507892d67c32899
diff --git a/dev-python/identify/identify-2.6.0.ebuild b/dev-python/identify/identify-2.6.0.ebuild
new file mode 100644
index 000000000000..043fcd3b8487
--- /dev/null
+++ b/dev-python/identify/identify-2.6.0.ebuild
@@ -0,0 +1,29 @@
+# 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_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+DESCRIPTION="File identification library for Python"
+HOMEPAGE="
+ https://github.com/pre-commit/identify/
+ https://pypi.org/project/identify/
+"
+SRC_URI="
+ https://github.com/pre-commit/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/ukkonen[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/jsonpickle/jsonpickle-3.2.2.ebuild b/dev-python/jsonpickle/jsonpickle-3.2.2.ebuild
index b6dc4e7bb9d6..5e128e1433d2 100644
--- a/dev-python/jsonpickle/jsonpickle-3.2.2.ebuild
+++ b/dev-python/jsonpickle/jsonpickle-3.2.2.ebuild
@@ -28,7 +28,9 @@ BDEPEND="
dev-python/feedparser[${PYTHON_USEDEP}]
dev-python/gmpy[${PYTHON_USEDEP}]
dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/pandas[${PYTHON_USEDEP}]
+ ' 3.{10..12})
dev-python/simplejson[${PYTHON_USEDEP}]
dev-python/sqlalchemy[${PYTHON_USEDEP}]
dev-python/ujson[${PYTHON_USEDEP}]
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index 37a64204a00a..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index c09b7356f549..630fe63c6f53 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..736a1167c898 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,12 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/littleutils/Manifest b/dev-python/littleutils/Manifest
index 575ccdc8356b..e10f67079bb8 100644
--- a/dev-python/littleutils/Manifest
+++ b/dev-python/littleutils/Manifest
@@ -1 +1,2 @@
DIST littleutils-0.2.2.tar.gz 6579 BLAKE2B 80aec2c133e39eb0e18c948b15d475e60842689fd0e758c43511a8b014648d7c9e843182e2a87c0b3f9933f748340f2059653f0885cf416edbc5a60457c70629 SHA512 ce0b3af4ef5db634ce0dbb916deb767260f66418abbdca2b289386ecd4c2e44602cb95d568c70588ef9a40e3d700f33cbc5bcdbf859f5030795f79f11871a6ff
+DIST littleutils-0.2.4.tar.gz 9526 BLAKE2B e9db85044f137aa794c5fe4bee7f456d6437313f856a810f6a28f58a3d516a35288079fb08ab0ba2604dd2bb10b4a43790584a607a727497133d0bab66a00589 SHA512 818eb4a1264188cf2edd392602cb4235590fed6a7542870748a3a5a52b6ee303436e2462991a437d19916a39303694e49c7f10282524a569346541bc4eebf515
diff --git a/dev-python/littleutils/littleutils-0.2.4.ebuild b/dev-python/littleutils/littleutils-0.2.4.ebuild
new file mode 100644
index 000000000000..54bf1317826b
--- /dev/null
+++ b/dev-python/littleutils/littleutils-0.2.4.ebuild
@@ -0,0 +1,24 @@
+# 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_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Small personal collection of Python utility functions"
+HOMEPAGE="
+ https://pypi.org/project/littleutils/
+ https://github.com/alexmojaki/littleutils/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+python_test() {
+ "${EPYTHON}" -m doctest -v littleutils/__init__.py ||
+ die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/mcbootflash/Manifest b/dev-python/mcbootflash/Manifest
index a1dfa4eb1455..e5f404ed8d5e 100644
--- a/dev-python/mcbootflash/Manifest
+++ b/dev-python/mcbootflash/Manifest
@@ -1 +1,2 @@
DIST mcbootflash-9.0.1.tar.gz 26858 BLAKE2B d8d8486a8713d46f7b93443dcfd9cbd9a93452fa7c8e76aeba1f4bfbf52765fbe3807fe8206b994015c094f9fba1626d5a3bb2fa93bd6b6400a9cbaaee7c19a9 SHA512 0c001a0a2c10e9d4bf111136d08ec89c4bc62568934ef9d8b75d7c58d59f451f5459ccc387c72424e8d16c5e49e7bba903efce403f41923ca33d87c2290a84e9
+DIST test_mcbootflash.jsonl 9259 BLAKE2B d05287760b3dc82ccf720a140390e027758a4e1e79d72364aed741937298d872127f11db8d5a4c07a93cb72f091ab89bd606062446f9108359205ec75c92321f SHA512 b9f5ea649a8cff9ea576b96e22bb352c61f8cd1f3e7ca0a7a0ae84a2c03fa07b1ecc7a3d8a83de868e4f946ef9fb22a5fc757038be4c5ba2398c483c67bbd9ca
diff --git a/dev-python/mcbootflash/mcbootflash-9.0.1.ebuild b/dev-python/mcbootflash/mcbootflash-9.0.1.ebuild
index 376639b33cb0..6504618e9cbc 100644
--- a/dev-python/mcbootflash/mcbootflash-9.0.1.ebuild
+++ b/dev-python/mcbootflash/mcbootflash-9.0.1.ebuild
@@ -13,6 +13,9 @@ HOMEPAGE="
https://pypi.org/project/mcbootflash/
https://github.com/bessman/mcbootflash/
"
+SRC_URI+="
+ https://github.com/bessman/mcbootflash/raw/eb940f0324eb0c6822a0feca48449f5191cf5a00/tests/test_mcbootflash.jsonl
+"
LICENSE="MIT"
SLOT="0"
@@ -30,6 +33,13 @@ BDEPEND="
distutils_enable_tests pytest
+src_unpack() {
+ default
+ # sigh, pytest-reserial arbitrarily changed output format
+ # without caring for backwards compatibility
+ cp "${DISTDIR}"/test_mcbootflash.jsonl "${S}"/tests/ || die
+}
+
python_test() {
epytest --replay
}
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index a84d23f6994b..ceac05a9b849 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -1,3 +1,4 @@
DIST moto-4.2.14.tar.gz 4933741 BLAKE2B 4c50a808dc8f27cfbcd0ba234d268084ee9a32f36cb5d6af61aacc4ee79f7bf5cf1045147c4642472129eee37bef8bc2c1953d140260d39d7f333ae0f5e5cf95 SHA512 d4079118ed1d2eef9134575e33dc0ed749bff0293d753baa63a630dbb987914b9933445027abdc344bb93fa1d6e483baf8a337a444c9dd055dda50b095ff9937
DIST moto-5.0.10.tar.gz 5284881 BLAKE2B aba9845e0ffc3e4148f3c3950a4c590d86784c8634e4d7f93eb0a0cc9b725dcaa088a717ce493792c9962a0b9fddf582fe92edd8d0cdbb7e7ec7c4fae05722d1 SHA512 cb805a497bca4b315b6e9d92b9825ad1d4112366fdc4710fa5aa13fcefe4a7bf7c677dea413c9126c900e85acaa00d954b5d55f98493f646981d07fdd13d7108
+DIST moto-5.0.11.tar.gz 5295376 BLAKE2B c2077e020918940ee3642b7b0a8c467df48122e3ef8317a9c13b038fa01fe724efb0ebb44c8bb095fa9071dfb0dde85d8be6fef99929add2ae532615c22803cf SHA512 6d4515918d9192b7f308f18a975e435712912a5d1a856b314d538cb4b7f4c3127407ddff2130ea28488a30d35f25ab0341d4c7d752fef22692de302b5dda71cd
DIST moto-5.0.9.tar.gz 5256902 BLAKE2B a817d42f05d8b2fa65585ac5f0404f995bb4b6ca7d70305db0d12cc526745c4af1c36ac2067af33d2b688a7076dff7eb6bdad117c38ac54c873e7149a3e8a1bf SHA512 44ac3a91a759105db5bd48950a7b19d3df9612b41b4062eb7df08bb864e99f982731ae973b24a7c5547c0fd47e07a703c21be7260730983abad46d154c9f7742
diff --git a/dev-python/moto/moto-5.0.11.ebuild b/dev-python/moto/moto-5.0.11.ebuild
new file mode 100644
index 000000000000..fa160b6144bb
--- /dev/null
+++ b/dev-python/moto/moto-5.0.11.ebuild
@@ -0,0 +1,184 @@
+# 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_{8,9,10,11,12} )
+
+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.14.0[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-3.3.1[${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/jinja-2.10.1[${PYTHON_USEDEP}]
+ >=dev-python/jsondiff-1.1.2[${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.15.0[${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/freezegun[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ 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
+ # broken code (local variable used referenced before definition)
+ tests/test_appsync/test_appsync_schema.py
+ # Needs network (or docker?) but not marked as such, bug #807031
+ # TODO: report upstream
+ tests/test_awslambda/test_lambda_layers_invoked.py::test_invoke_local_lambda_layers
+ tests/test_batch/test_batch_jobs.py::test_cancel_pending_job
+ tests/test_batch/test_batch_jobs.py::test_cancel_running_job
+ tests/test_batch/test_batch_jobs.py::test_container_overrides
+ tests/test_batch/test_batch_jobs.py::test_dependencies
+ tests/test_batch/test_batch_jobs.py::test_failed_dependencies
+ tests/test_batch/test_batch_jobs.py::test_failed_job
+ tests/test_batch/test_batch_jobs.py::test_submit_job_array_size
+ tests/test_batch/test_batch_jobs.py::test_terminate_job
+ tests/test_batch/test_batch_jobs.py::test_terminate_nonexisting_job
+ tests/test_cloudformation/test_cloudformation_custom_resources.py::test_create_custom_lambda_resource__verify_cfnresponse_failed
+
+ tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function
+ tests/test_core/test_docker.py::test_docker_is_running_and_available
+ tests/test_core/test_request_passthrough.py
+ tests/test_core/test_responses_module.py::TestResponsesMockWithPassThru::test_aws_and_http_requests
+ tests/test_core/test_responses_module.py::TestResponsesMockWithPassThru::test_http_requests
+ tests/test_events/test_events_lambdatriggers_integration.py::test_creating_bucket__invokes_lambda
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events0-ObjectCreated:Put]"
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events1-ObjectCreated:Put]"
+ "tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda[match_events3-ObjectCreated:Put]"
+ # TODO
+ tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_queue
+ tests/test_sqs/test_sqs_integration.py::test_invoke_function_from_sqs_fifo_queue
+ # require py_partiql_parser
+ tests/test_s3/test_s3_select.py
+ tests/test_dynamodb/test_dynamodb_statements.py
+ # require joserfc
+ tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
+ tests/test_apigateway/test_apigateway.py::test_create_authorizer
+ tests/test_apigateway/test_apigateway.py::test_delete_authorizer
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
+ No
+ 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
+ No
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
+ tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
+ tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
+ # TODO
+ tests/test_dynamodb/test_dynamodb_import_table.py
+ # hangs
+ tests/test_core/test_account_id_resolution.py::TestAccountIdResolution::test_environment_variable_takes_precedence
+ )
+ local EPYTEST_IGNORE=(
+ # require joserfc
+ tests/test_cognitoidp/test_cognitoidp.py
+ # require antlr4 (which doesn't support py3.12)
+ tests/test_stepfunctions/parser
+ )
+
+ # test for 32-bit time_t
+ "$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} -c -x c - -o /dev/null <<-EOF &>/dev/null
+ #include <sys/types.h>
+ int test[sizeof(time_t) >= 8 ? 1 : -1];
+ EOF
+
+ if [[ ${?} -eq 0 ]]; then
+ einfo "time_t is at least 64-bit long"
+ else
+ 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 PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x TZ=UTC
+
+ local serial_tests=(
+ # these tests set up credentials that are needed by the tests below
+ tests/test_core/test_importorder.py
+ # these tests apparently rely on some other test setting credentials
+ # up for them, so they need to be run separately, after the above
+ tests/test_awslambda_simple/test_lambda_simple.py::test_run_function{,_no_log}
+ tests/test_dynamodb/exceptions/test_dynamodb_exceptions.py
+ tests/test_dynamodb/exceptions/test_dynamodb_transactions.py::test_transaction_with_empty_key
+ tests/test_dynamodb/test_dynamodb.py::test_transact_write_items_failure__return_item
+ tests/test_dynamodb/test_dynamodb.py::test_transact_write_items_put_conditional_expressions
+ tests/test_dynamodb/test_dynamodb_update_expressions.py::test_update_different_map_elements_in_single_request
+ tests/test_events/test_events.py::test_start_replay_send_to_log_group
+ tests/test_lakeformation/test_resource_tags_integration.py
+ tests/test_redshiftdata
+ tests/test_resourcegroupstaggingapi/test_server.py::test_resourcegroupstaggingapi_list
+ tests/test_s3/test_s3.py::test_delete_bucket_cors
+ tests/test_s3/test_s3.py::test_delete_objects_percent_encoded
+ tests/test_s3/test_s3.py::test_delete_versioned_bucket_returns_metadata
+ tests/test_s3/test_s3_copyobject.py::test_copy_key_boto3_with_args
+ tests/test_s3/test_s3_copyobject.py::test_copy_key_boto3_with_args__using_multipart
+ tests/test_s3/test_s3_file_handles.py::TestS3FileHandleClosuresUsingMocks
+ tests/test_s3/test_s3_list_object_versions.py
+ tests/test_s3/test_s3_tagging.py
+ tests/test_s3control/test_s3control_access_points.py::test_delete_access_point
+ tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_can_handle_multiple_services
+ tests/test_utilities/test_threaded_server.py::TestThreadedMotoServer::test_server_is_reachable
+ )
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ EPYTEST_XDIST= epytest "${serial_tests[@]}"
+
+ local EPYTEST_DESELECT+=(
+ "${EPYTEST_DESELECT[@]}"
+ "${serial_tests[@]}"
+ )
+ epytest -m 'not network'
+}
diff --git a/dev-python/nh3/Manifest b/dev-python/nh3/Manifest
index 6e04f4e9d0b1..dba67eafa823 100644
--- a/dev-python/nh3/Manifest
+++ b/dev-python/nh3/Manifest
@@ -1,25 +1,37 @@
DIST ammonia-4.0.0.crate 47763 BLAKE2B 6f952a8030ce2cfb9bcaf01c36d795c470f47bd7fa8e3935e058016876de04c6c43db3d56776c9ec5bb2acd83f315fd5dbd7c60373b397d70336d6926340c816 SHA512 84f523eaf7db9d98e44c7d1198fae40e59e838dcc9fc256ca7ef3f3d243a767755f318e516411b4feba4ecb26e30e77d501e9163f996b4d113804e5f2c41a65e
DIST autocfg-1.2.0.crate 14808 BLAKE2B 122327d6ffd32e08dc9fbdb4dcf69128b19d56280f9d934311b946741003b40571cdd1f3ef54b2be02c8dc505aea11c962b244d33a92206bf4ee8f6b2b9da432 SHA512 66cbfd13e33b36284cf4c74c8d654f93adcc45893d127d9aaa4c1d183e47336096e72d74e7c17dd481fb7a98931ab6cfec7e4d4165cfb491861d4e3ffe2416fc
+DIST autocfg-1.3.0.crate 16524 BLAKE2B 7d5a03853d6b4f0da08d8e139fb200da21e47fa7e50d1956270d0ff0cc496f660f8f800122c95eee9ba98d9210ab200c3010b782097483d12d6be4ac0df0e7c9 SHA512 a5570b955d57a7183ba148b335837dc5af24b202e80681027536d33fe2822509ba644fc70c29f018c893285ced2bf6774f44ca6c59f7c7e2226d5349cf7c3635
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
DIST futf-0.1.5.crate 11344 BLAKE2B 2cc5e5f5d4ace47e9273546e46c500432da47f246cee18f24607432305dec9481ec3d02b8a9bff4724efe05ea1d235294c52ee4eeb2f5f285ce56c2987b62d24 SHA512 4cee071c067c879742839d3d32192ca94ee2f9241468656357c3aed116cb7c656bf81722f32b67d60214b7db66858dca6443f0d52f0ff2114fc70971bdddd2d3
DIST getrandom-0.2.12.crate 36163 BLAKE2B 0afef8504932ea0ea051cde1d14bd5b79edde68d6ebae6fe88fa4aaa532605a16f466d0d9c0d0aa619eaa105600b6d5ee4e191865a3fa041549a78f78ca82396 SHA512 dd97d7dae1a7ba653abdaf2db719e1a9c8eb721b08b4af0f1c45b1ed5079069d1b57e4f6d9d879e7fae3a890763f4b6aea9bc2d945392b98e811e7b348589bee
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST html5ever-0.27.0.crate 72913 BLAKE2B 0a3dc8b19ec74ac5b5c1728f9112ed7513285ec47f4e3a3623b995eb9ed0aaf2c83899126268cd2b3e7388a3209952213d4fe0ea0d297e3c0f7b16aa1b5b9d4f SHA512 8d736fc122da78e9ba8b546868d0770837ea0b4951ff027f1b5593dedeb9831c082dad1868659422fab5527711ffed18d4428d519a830a3434d4594a1af6c868
DIST idna-0.5.0.crate 271940 BLAKE2B 0b781c2e9bf717af429efb53bdfd18244f2b8c58e5111c3bd3bee50c8a01cc747513fe20db75c38b6b771d5845647bf6c1849ae6667766c9623e018c1f399a9b SHA512 bee6cfbfc99859b113aa8c7b487429a836dabc4e317980f132d28ff8333336f33480bf9f8b186a07115eff33024cd855bc85d346fce85e17c4132e886769c54c
DIST indoc-2.0.5.crate 14396 BLAKE2B fe838c6a855d6ff7396675a3fe9b2e0b06a93cfd4013b0b843d24d2fb81f6566528bfd1753c649646f06cb7e59262bd6ec3ed79d4e6f01d740cf0682355f2e5a SHA512 095fb56a3d87946c42a63065a8b276c2d4b9b835800014b400bb987593bf56701bad9f55d947f090740fdb7641a4f3c87fe8bfa5724709e95254d1e8e2e3616f
DIST libc-0.2.153.crate 740614 BLAKE2B 523a41bc8cff4ebcba0edbbe9e6a2286ec7cb3ba5e90ca5926c972b68e4b34188bc077d20c22376238c3cd91b7455898a95c505ace4ededea88cc496edb4c5a7 SHA512 3f99e3a192974fffdc053ef21e9ad5fb54b7cdbd4755df176704a95dba38047138ccab76763e89c6b565f37f98fd549fe368749f84f6d1638b3209cb07eae9b4
+DIST libc-0.2.155.crate 743539 BLAKE2B 42cdcf8d4a187383548b1f09d404474f168916d626d614463fe10a1fd886e972e1caf6297e75445214af3f31fe631d0927e54ec1cdc63e20082b3587e38dce16 SHA512 05354bba532b8338bda1f88f12c7f3893429734a06e33925fca2b99d49548ae5216e2cd84e782d2368a2dfef20b0e035e2dcad8dd13ede7119462a8c639b2807
DIST lock_api-0.4.11.crate 27487 BLAKE2B 87116cf908f7f1f9c300cedded989df305f855883e3df5a482de2c76814c48739582d3079d76a2bdd14a6999204b7fd31dcd8fd06d1dc7f9418f0e2f70a1450e SHA512 9946adf313a5c67a0dd87a1b679b7d9d16a86149fb95974d3f28aa57a9a1a3932e4a5ee1d332097559329c5e3b2295be2e4b655b115d9f75269f33a758b17fb3
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
DIST log-0.4.21.crate 43442 BLAKE2B 8429b3270794d3e2c7f7d5b58bd4fa1abb9d4807ab3a1ac980ac81c11d9544635003d8cf2e608c2c0094865459108a2879f280278e121df68d09bc1561d604ba SHA512 0becc1a06b6e7048cff6c0bb8df49a16ac4772133c00239e9e9459c0811e7715c500f440cf1a9aef8d7ad74f57434559ca9b55917f588b8e476cf36eb6d4e10b
+DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71
DIST mac-0.1.1.crate 4838 BLAKE2B c87e9f9283f179acd28c189d02d9d3de0ec99f9cfbefa590daa2880c275894951c5b0b935b652ab6c8c0172ac59e87f52fd49b787b230e6730365dc076d17578 SHA512 dbc6def04c482911ace311f34be79992fa04042c7ce36b71459b5af5c1c43e9fa66b6b40f63f8c3647daba287bf1c1be9b1a8031ead1d855f99a988898c96f1a
DIST maplit-1.0.2.crate 8871 BLAKE2B 3cf975d35de2d2fbd50227a6d2c5e72227e99197b620c8f29be97bd3666ec162deeef0d9e6bd327a063f175201beeb73c4ed27272449b1df0b78238b2d36ca22 SHA512 917b5cf665e12b687035c895b60b2ae05622963f495f5693515fd24d56f49e95a06ffced68606d061bd20822c655100035930673fd4b0d4790168763b6961a9f
DIST markup5ever-0.12.0.crate 34639 BLAKE2B 730bf33cbd7def1cac6480514a9efa254a71ebe538f6fb6c36a3be5abf11b920f5161c695345843225fe4ef32ab67fe5880fbdb3c28870c14a8ccfa3276ece06 SHA512 d53b6743330d7f629d53419e54e77602b03bc01a5023b2431b14b8be47de23d2fc052a94c24885dabee041fc6f472a1103e66e69b5c2b8a9f36152b7df0749ef
+DIST markup5ever-0.12.1.crate 34763 BLAKE2B 8057bde6b03d3e80c920b9007462b134937c80393f7422b4182823676069c4934d0c2806007e0c42b958b2c9f1b73679f62ed1e38b5c872b917937562b9ec7bc SHA512 5063b6591c63897017d79f64d11cc13edce2e8e21462df8a00166d582e83af3132ea7f4e50af4f248b56b75cbd12c6f89b7433da14147c76004fb2ffeda02b92
DIST memoffset-0.9.0.crate 9033 BLAKE2B 19090c1af8b8cf54a2cf7593748aff4d3dc685ec7080aa476139c1721ef71555495e1bc513b1efaddc7e7702f83e0e1c2a8f71ff40009d266539484c9297e0ed SHA512 2f04f9b6fed31e94388c18162ad275897a835df7b9ac827f4df0f4b0ecf71064ef247f7ad11dbc27d7a6d448984a0f29d1c000e3c8d5fa6e121fa9571770ec55
+DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST new_debug_unreachable-1.0.6.crate 2582 BLAKE2B 2ac3dd86f1a532832a40ccfda95654e43709a62faebb8182c87309827afdd23e6d3f250f2345f044cb789015c30b7907be63253b487d368e68c4fdbc7de20492 SHA512 73a61acbc9b20b3595925360827ba8798f3338471b291fa37c72a1c9505b3ec9f688808fcaac9a2eb494e5f3ea5331d30545d5f21f89559111bec6126ac90b48
DIST nh3-0.2.17.tar.gz 14981 BLAKE2B 2e007552bac2528c4ab915c41d1535c5e07520643f636af7333e69611d14cf550a90a8fb1cbdc323215240ba3b58e62a5c934ea6bb704db28450ea3e0df41d99 SHA512 a50e4f463a01cab30b1da5533b726797567fb62d22593c4ff5a62465b9d1375b063dc16e9430e630f92bcc2d62f0030a2be80820cf574049a1315e74a9486859
+DIST nh3-0.2.18.tar.gz 15028 BLAKE2B a2eb2640ef41bbabc394b9d6ce84f8f25e0fd706553b8659e14056df270c093ff59a66afd00550e1d479418c6ae8cc0d324c8a608fff825bac940d4c3827261b SHA512 1579ece4642911bf760ee3747ea44b7001ee7f70da65940b548fc2b30a20fee5d5c924d7d44ee73fcf4b3642591cb7085b3da0088b91a6752abfde53c798c275
DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
DIST parking_lot-0.12.1.crate 40967 BLAKE2B 940a112a066e3cbd15e2f6df89bfff37e4ece2194118618a96fa14871813c91798f93181ab0f768d3e1f3d60805508f216724013afb7e3da95678d0d951a42d4 SHA512 07327d3b737a913508dffb66023766348ce7f9d555c224a099cabb05baefd16a28e15fec638e3a148a5169dbd980c4541b0f8820ae9d06dfe0704482838fbd5c
+DIST parking_lot-0.12.3.crate 41860 BLAKE2B d1899a1132035aaea3a784290cf4951ea3b36b2018d407e27d333b2a2ce3820e040d635009c44cb6e58ad07cec6565c0347af6f6fb02954eac2d4c348bb036f0 SHA512 368c17203fb5b9e4ecfd4857e3b1ab96b86da3770b8f21be392818c845952f72dde1072a10265760a62aa8a1dd65332bfd585667444e5fbb9dbe3280b5862703
+DIST parking_lot_core-0.9.10.crate 32406 BLAKE2B 25339d028579eb45a957ae5fdbac00288b1472d784c0aa7fa2953fcf9279c750d243ce69744993ee8cbe6899633e71e0a54ffc11e39247755685107f2f8dea54 SHA512 4f30fb60ded274d3154ffb00f6f50ac284b6fb97daebc1a2ac897ce97fa8e2ec6ff30cbdadf3b7419617a410fa7525f30ef5e580334e07d4420f4c0200a57389
DIST parking_lot_core-0.9.9.crate 32445 BLAKE2B 811d8de671bf6e0911cf0df7dcaee4fb03a3b223173a3bb8cee65a28724eeb7bac87f62aa7b1df5ea3fc93af3cee3ef30b83d06c6773d6b856a7e6fa5fa197ea SHA512 7f0df70f9f1ca8d3da0b9dcc96e49daf05d95c3a995289266b5333f68818d686d32b0c733dfe3a0f62da78fa45caa843a963923b2d0c80899c33413dc749c032
DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
DIST phf-0.11.2.crate 21569 BLAKE2B c809201298f1c5046874b3bbdd30e33f2bee2e4b977152a2c5faa91019ee5a1c8fe1d42cf91f6d0b0dd52015fc66f0a84c1b3ae014291ad7d5ba647a78debded SHA512 97752bfb44f3d1f9347b4ccfb6fa2fb80b3263d6f67aa703c52ae90d693c537a0db878acef828c79bd4c41e8f7ca0ea45588dee073d12c9bb0f2980c511b65b4
@@ -32,40 +44,62 @@ DIST portable-atomic-1.6.0.crate 140689 BLAKE2B c91d06e04a87c9a207233d8a850859aa
DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19bc9b8c844156c831d2b550692c7e2e36bce44ecf18dd9f2d0f0511346eaf0d2a0ebe792fc288ca0e94a93933f2051846 SHA512 a118a98286a47e2f0cf35d2678d0325c18b9b7d5bdf40ceadc16483b282307fd1498434d5bdfa25477a4f420d97c34d786e42e9fa70431b788b4b8fde9718e05
DIST proc-macro2-1.0.79.crate 47200 BLAKE2B fff8e514d618b8ef60d6a4ca7610607641cb25701fc5e8452e0db5f942a3c38c724acbbfb0474823fe0f4864df07958c1524383e7640105266608f1d5a741368 SHA512 8bfa6fc1022556cbabe0050a37b93c5ef1056ebda9d3dd368e705a7c695df9dfb5cd5adc18ad1eadf7338631ad1d5ed6f63f0adff3616429ef8c50a930b1838f
+DIST proc-macro2-1.0.86.crate 48958 BLAKE2B 4b89e07f23af8328dbb34fe2b3f1b202f1e6a3885a6269740a23359b41bb4099ac2484565d3b2b0936261689ca525785ac620c766997234fd8d0f409e80e5ea3 SHA512 1cdb7e22a35ae231d880c9420784c9acf97bda2db258b3d34aae5061dc1858449defe19a49e12c6a4173906aa72a4115059ac2db0fc760205fd2ab8b5b414434
DIST pyo3-0.21.0.crate 500599 BLAKE2B 8e56a264f6cb8b8e5cfcc1854e3732edecaefe874cbda4db10742c4865a876625b723010ec6d2539ccbb58643b26c5d03522a0f3d03121af09632f3adb1186de SHA512 90b551c6ac4867245b2667fc4a9b74875351aa0417cae6c24ecb4cce1b2d4ecdaa7e23a07bf188490a25b6033985f8598b3ae202917e9bed6f4d72168a5383c2
+DIST pyo3-0.22.0.crate 535742 BLAKE2B 772a4f8b718bbec32faa3dac4cad07a5b452fb366280753c3316d932663bf367192483fb5cd0bd405321128e67157b982eaa89264685739a141e021f0f7e2b72 SHA512 44e0237fd3a8d4c7b082c48a5c8a52d8f4cc4673d134f680e29504bb46d870015fa210da34de4c1998defbcd4afdf2aaea4e148fbe093e4b2c8b0d064cd48da4
DIST pyo3-build-config-0.21.0.crate 30535 BLAKE2B 71bc1756e1640456cce58190d90f7c1059b9748d9d72a122dd4e28c74ba96cb9fd2bbd80791d3edf313349cc0fbaa669c8e9cecfc925c9828ac794fda17a6ed4 SHA512 ac1ee7389fe267c28ff67f5d6a23bdba57ad2e0dff16e7ef38bc2bc95d0a2a4aca0b1fe4cac8510163c6c5a44bdac128f36d7b34655dff5f8e690db38e5edc6a
+DIST pyo3-build-config-0.22.0.crate 31205 BLAKE2B 6b9a0de5f431bfc123628c67da040e146e39353d7b42d8d083e1911929dc420622f8a1276229d89b7780bccd02a8e653bcb85bfa51281e72ddfacebadef5277a SHA512 50341f4e5134a275610a5b86e833d1963a0726c2ddc14f4742053c60ad336ee209e73441aca46c8670920ee47a81c76bbd3f9e6412d253a5b389692ff8f3c1f3
DIST pyo3-ffi-0.21.0.crate 66158 BLAKE2B 40809352e9df9ed13f833a73c9d50f71e63591a5b4680fbc85b2c10fa5d0ca65b793d6f467723bdc47887a38536fba4c2b2d9ba52f5ee9b2005a23d98778c407 SHA512 4405a6dbb06e739a54056a70b072b94b1181aa5ec06515c32ba76962fe4bce6b2b63cc179b77d3656123eff5f60e650bd6efe026794ad38d37e307f3653a3f96
+DIST pyo3-ffi-0.22.0.crate 67420 BLAKE2B 65e4ed1a1ce854f37380aa23637a494226b98941b9e3f13eae8f627db0fea248c3cc93c7e594090407ab169cfdb27ab20c47f7004f2b4646103ee34da9a55f31 SHA512 cede32dc8025badcdd6d00b4a1204c6ceb5ad30fa0b637deecca669f2ee2b8961f88d9d867caa8cae59f498dc4e1c15f3b4049c5f47615e215b0f289fc560bce
DIST pyo3-macros-0.21.0.crate 7917 BLAKE2B 3b7471486cbdfb8a9970f3aba9ad88dae9a2c620993f7a9cb6a3549e170fe9412318020e6c905eb35678d52d65a733e4858c30d33b6928dd1cb1f4f6a037c2c6 SHA512 b842f58813a152055f987ac065d3f38229a209c381b384160a1be49c271792347ffe97fbc6c898b120553e0f6f57743f9488cdc342a5a844fdd89bdd637515f7
+DIST pyo3-macros-0.22.0.crate 7889 BLAKE2B 0b61caaed415023341dfd675c578e39cc3e5b2a08eb8c439857c81cf6cb895837f5df28decd7c08a3aa365411ff33a97eb5fe2f20e18427bda133f7df53349ba SHA512 ed9e9d6322fb8d3fd11114899c3ad84ebbc5b5eba58e5aabfc7f9691f02ec053f1c2804cea93d21f2ac9332f5b719b7fee9878faa95f21eb2a2d86f9050c7339
DIST pyo3-macros-backend-0.21.0.crate 57562 BLAKE2B 12a25a2103d1c4c2e8da291ea64f202d3237eadbf55d7ce2bfaa8b6846df098ae5d0456cc9cf409c16fce323de127d60e0f5a458cb387198f604e6eb8e2a9dbe SHA512 e65b2816464ac189616f44065fbe45156f2aa560e880f0c8b49a7d097ac1dd278a9cf0c504b14de3ee550f0604da5ec991be6ee6fabdc53cef54f0a2f0a8d849
+DIST pyo3-macros-backend-0.22.0.crate 64837 BLAKE2B 4961b8c8720bfc2bbd11089a658d64cb2b1e43e150e622d53490faec3b905344d256b2092238ebb1dd92290583ee7d04a12eb5759bd55276e7042e1c948c71bd SHA512 09496c7285b9faaad820cfea237ef602569de3adeaa3362727182b0cd1c8377ef55c0c28f14eb703ea73a86c94acbdfb1384b44ef32b318a76c730a0430ca233
DIST quote-1.0.35.crate 28136 BLAKE2B 81424245e1e2b94459df68bb3a9a866c6a364102b5e1d010ede9c5f8278f8406d7b651957d091c5914e936b494b0f6e9a6a1dd8b7d35cd7d7100f86dee4ec12e SHA512 f5314fb6af17cf36c228e1970c569c29ec248954a450a5f90ba9e2896d04f74904c9cec5a1f74325f2489295a94491eee4ce8fb461e22cd4b34e53f1f881efd2
+DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
DIST redox_syscall-0.4.1.crate 24858 BLAKE2B c3301137a0b84e03b09d28dfa377ab3bea74d574a08cee21d35713b278d8b5b30ca2a1d73a0981baeb4644cbb88c86c8eb15ab3bb2692e38b93e6b35fab4e0da SHA512 073ed9d96090cf46eab9877742277a013c62d8da86d9caf2310b4fa868af306511936553579e01309f27067d344226cc8dc5e3aef01d9b900da2febd33848f8d
+DIST redox_syscall-0.5.2.crate 23957 BLAKE2B 6261df25a59af5119a21d31fc3b6a8800bb1783cf2fd63a5524d48d0b187f5f2e65ebbdec00d9282adf110ba8f307d4ceb154bf029a0c6a26e8a887fc722b2d7 SHA512 b7e39a08e220153370449cec7b058c2dbc4916ff7be01b34658e1793035323ecc28f40712194cb9bfc9b863e4bb316e58662721eb0e54f68f09438bd880ea032
DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
DIST serde-1.0.197.crate 77087 BLAKE2B 4a4e04ededf5fefaabfcc4e17457db823239e8eeee7631a905ed47800ca10d26a93632e3a9d1b784b83f84168d0d649cfa2e6f5f1e68ab15a68e837cd5b6c699 SHA512 69e42825fce6a0a5d109979785daceacfd6afc5641e202fe83da32e2b1f968416557cce97fa014839e873e65f85c27494c8f8e20e6e9e4fbedf20d0291880410
+DIST serde-1.0.204.crate 78253 BLAKE2B 6fdebf3cbcc0327b404caaae43c87ba2b6105374a5ee3eaa34d44866e782132cff535da4c069c007783b7b6468d55cb1ceb6a41da74b9eab03ace7cf4811e09e SHA512 2fefbeed0117bd791fd25dd5ad0c99ed4f60aac5919605b6f642050f748dd472bf9d4d121b78b0cfe8719db30a675559d097bcc7542cb57451d1779dfd8d294f
DIST serde_derive-1.0.197.crate 55771 BLAKE2B 73708908b6d1e104af4c63b498bd25c5a728e07e22afdf92f15754c0f17636efe44c0560c1f0df1b9a30708e8e8894a62f1ea57c234b6dd861cb9c8dc044eb4b SHA512 669376e248b76a5ee8b9c93fd9fe6d35372e7267fbabc14730539ef28a94e405ee5e9c2cc2846897d59d6153742cdc6799f9e2c87f20b9dad119bd3a86c28994
+DIST serde_derive-1.0.204.crate 55871 BLAKE2B 8f0cdb244a820712d557a3273e505c4461f4d7db89e8394040b4c66ede787b6b38b4c9923b38959ab4042c9076b8af72008c0dd15ac93a0ecdeb99da8fb526ae SHA512 bbb2b5e60e2af5bc7528b937ffaf0d3ffd433dbd9cb2592c1e07090620309057e4f11cbd6112fc1d2c5557e1bb3c0f4d59eb06ff06fa021ec683ab880997140e
DIST siphasher-0.3.11.crate 10442 BLAKE2B 771221614bbd56f609b9743da4352dc7a2cbd0f6257952fab0cd052e5e5b258a4c95a0461d6d1b579dec90b72d66a0e58e036899b3db8341ae753a421a4cd4d5 SHA512 601121bd41da896142dc6ccc74a6eec3ebee3e976857ab8b5d21e915fdc8bc6e979af66a489c406371fbbbfc7a13338cc4b3744aa981206e43c53998f3e1699b
DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
DIST string_cache-0.8.7.crate 16655 BLAKE2B 9a017f3248a3d5e7b8c1a05462a882862b20174c7ce5dda1568c3d3f61c422e84ba2ccd5d6dbd726d1c752f1eaa8062a179470927a80d5bdda0ce530d1ae2c17 SHA512 03f9cdd2c01c0f233284851f17eaefebd68a91ae2ed2b231fab2d6d6476bd19e0696d7d3a74fb6ecb2ec36b89e79ad966ab73051255c9e194bcf9c5029fb8479
DIST string_cache_codegen-0.5.2.crate 8156 BLAKE2B b1cd91e22937622ce51152957ed45ee88dba9756449f3ef4c4884e491b7810e1c9f10b58012244dafa4422d5589502876f30a43940ee9754ef7b9952ebe4bb41 SHA512 01b9b1a865878537f657adf908159fd04f3f2ba4e70f8c632b73d0ed5a8a09fe2bb9ac8ac4397dec1f50d771dec33fc5d3f9e68dbf80cc177118665b2c67e864
DIST syn-2.0.55.crate 254901 BLAKE2B f48da9df7d80bc35ec7f88d2b73a29fc1f2daaf2b1e2120c8a145c730e99148ef7a41fde7466f3b12ce8f017b505341cf5109353a9aa2164827a724b775167bb SHA512 093414e1db32cf723161fdf213c6bc59aeda00c6867ca8cc28997822375bca07ec709e47324bdb936df87298e84da296fe15968811a0d74c978a1a90b89dbd3a
+DIST syn-2.0.69.crate 265441 BLAKE2B b01576c2c86426d2bbb2c9553dc1dce6a309d9922c35167ee6a718ad08cf3d0a22f0aed4d4c547cdbed85b47283e5b60a128fd1bbb230a6687f0c28af3a9c228 SHA512 fddc0f1ffa3e68ce57833c6ff18382296838287dd98f9f77f679ced471c3f801af30376363a870232f337bda27b3ba6ea93074f8e3c05ee390bcc024e3690bea
DIST target-lexicon-0.12.14.crate 25508 BLAKE2B 5ebb6b49e5c3b0057959557651287d4bf5ffe5b499340019ff64d5fc3b64e780e344982e358c94b1b25a20bf0f526a584aeecc704695b50a55cc268dd65edb97 SHA512 3410ecc0faf854f49c41c99f83972960e67065b1e0e78557a7c4996d996109bfd167d2121a019f5256f996c896cd45af032038ab7918fdcc6ee6311693ce951a
DIST tendril-0.4.3.crate 37210 BLAKE2B 0a70926644e8dc492247d49b8939169702903c2458d7b2c0fea2e6ed54166909f484e8e876eddc8ff7491642ec24a200c5d1e51412c6a7c26ee60f1f4164e98c SHA512 53f074aec6e59717fca280b1764f6c2e0a1c073336f48d012ff268a7189697d42d24a91a6a549c7d9e1fe8b0006e34c219f4dba3cc95247d3905c6f8a6a8186f
DIST tinyvec-1.6.0.crate 45991 BLAKE2B e9699d4d80a78978f0ebfd049f5b33d7f23d401cf4f4439ccb168e8c0e322473ad0ea7e2ff0ff69e9aac3e5c4c9ae5a7102185533bfbf96dbe77b3526e700bc9 SHA512 e5acaf353c58c60ae5556130a934f1048abb79cf6668ae467d308bac44b689d8a9997227ea879f4b5fe50f29cde8761801b088d7149bcd063b973056c381921c
+DIST tinyvec-1.7.0.crate 46743 BLAKE2B ec9741aaf6900ed2651c222d80688176353fd2ba99ef54db18059bc527b638fea1e9d0ed03b18a8c2f3a4732f94dcfbdf1411050f1d744da5d88cbab569b88de SHA512 9628e5a8861d01e22f00161b3cee58861a2801cd0c64016872bc0c6fb49899a553abd0bbed61064ed91e3a8fbd93e311b2a622fd21d74345e80ec27c1e2f36db
DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
DIST unicode-bidi-0.3.15.crate 56811 BLAKE2B 1f1d372c86ec7444f13eb32baf13dfc8699b52156b265a2b53f40c0d771064876405451120fe54739a2679e6991caaf4f63e0644f03729cab814079fef4868c8 SHA512 7a21d5eb05ea8d691dfd54ce4cf7d3693d08067f7a88ef17b8c3044634f46411176b1bde1516c442577910b254007b247f5e40f9932eb601cd96cd574f9d9db8
DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
DIST unicode-normalization-0.1.23.crate 122649 BLAKE2B 22ea5ce3f5a2b371c3c8782321b1bbbee724db1e4d8c1d43af4e6bd8044b99307c227d93631d178d10fda445a941a485882ae0015a6e3d3c347e4bd465bbe1d9 SHA512 539f04010810d73fde7b0ab314faf813f3e7ecd2e51d7975281554b7cba4a8706e2b5523c4b7840568593652360ca59e9db0e1ce342e71c28db635ff55ffb0f5
DIST unindent-0.2.3.crate 7306 BLAKE2B a57407b117e99c230750c7d4a2a0899586c8271e4ba88ecb409c976905c014f42885372c234a75fbfbedf71dbed779f95f735975d150adacdcb61152a49db4c2 SHA512 2f1eb420ea3653b00d3e5fa0c2c105da8fd8a37cb3e699373c168604b799fccd5f0faf0cddce4212d119c2afb0c86b41efc3a50752b83ff7beda2bd84d360505
DIST url-2.5.0.crate 78605 BLAKE2B f3fec3477248cbbe67866577eebb03f517c284a5e5cb783132b11ef3ad156a03524f4730f188d822dec85169d7474e265099296d6bdd4adf5ffaa0a118821617 SHA512 4aedbc48b85bcc2853189f5fe8265a01c76516b5507f4e958d8d0b860fe2590c69c95f0f4b9fd6fac9b8d5911bcb0a5e9ab7f8e8b600f37a12db1438976ee5c3
+DIST url-2.5.2.crate 79704 BLAKE2B be3526298a8816fbd88385caf49c2d58aacc7dcbe2d9183478cf501c26fb5f22d7704ef1313ba6d355e849cbf8ab7980310c1aae85e253a2b28d59099e23af29 SHA512 2515903e41c0659cb226f9bb049ef80f2a49d1b609b6ac480e570a84e899088ffe3be4fb58f41a1fa7f5288eb5f97ab513f331aeb6d56979df783d48e2ace28a
DIST utf-8-0.7.6.crate 10422 BLAKE2B 296690040895ba9da9e69d527aea415f4bd6bd3c010e67a08f9cffd2f4cd92a99f9ddde77512f9ef5a0db069ac9ac3cd6fd91aa18f0bcadf870ed212fdd76f2b SHA512 6bf0787cc297a1ac4e47389464d05ef6850602f549621687e776618bec96c1f7bacbb1ac8faaa63e5d28d975b850db8d6c784eb66e2466128f0521b91c14015b
DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
diff --git a/dev-python/nh3/nh3-0.2.17-r1.ebuild b/dev-python/nh3/nh3-0.2.17-r1.ebuild
new file mode 100644
index 000000000000..3567256516b7
--- /dev/null
+++ b/dev-python/nh3/nh3-0.2.17-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ammonia@4.0.0
+ autocfg@1.2.0
+ bitflags@1.3.2
+ cfg-if@1.0.0
+ form_urlencoded@1.2.1
+ futf@0.1.5
+ getrandom@0.2.12
+ heck@0.4.1
+ html5ever@0.27.0
+ idna@0.5.0
+ indoc@2.0.5
+ libc@0.2.153
+ lock_api@0.4.11
+ log@0.4.21
+ mac@0.1.1
+ maplit@1.0.2
+ markup5ever@0.12.0
+ memoffset@0.9.0
+ new_debug_unreachable@1.0.6
+ once_cell@1.19.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ percent-encoding@2.3.1
+ phf@0.11.2
+ phf_codegen@0.11.2
+ phf_generator@0.10.0
+ phf_generator@0.11.2
+ phf_shared@0.10.0
+ phf_shared@0.11.2
+ portable-atomic@1.6.0
+ ppv-lite86@0.2.17
+ precomputed-hash@0.1.1
+ proc-macro2@1.0.79
+ pyo3-build-config@0.21.0
+ pyo3-ffi@0.21.0
+ pyo3-macros-backend@0.21.0
+ pyo3-macros@0.21.0
+ pyo3@0.21.0
+ quote@1.0.35
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.4.1
+ scopeguard@1.2.0
+ serde@1.0.197
+ serde_derive@1.0.197
+ siphasher@0.3.11
+ smallvec@1.13.2
+ string_cache@0.8.7
+ string_cache_codegen@0.5.2
+ syn@2.0.55
+ target-lexicon@0.12.14
+ tendril@0.4.3
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ unindent@0.2.3
+ url@2.5.0
+ utf-8@0.7.6
+ wasi@0.11.0+wasi-snapshot-preview1
+ windows-targets@0.48.5
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_msvc@0.48.5
+ windows_i686_gnu@0.48.5
+ windows_i686_msvc@0.48.5
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_msvc@0.48.5
+"
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Ammonia HTML sanitizer Python binding"
+HOMEPAGE="
+ https://github.com/messense/nh3/
+ https://pypi.org/project/nh3/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+distutils_enable_tests pytest
+
+# Rust
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/nh3/nh3.*.so"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # force unstable ABI to workaround stable ABI crash in py3.13
+ # https://github.com/PyO3/pyo3/issues/4311
+ sed -i -e 's:"abi3-py37",::' Cargo.toml || die
+ export UNSAFE_PYO3_SKIP_VERSION_CHECK=1
+}
diff --git a/dev-python/nh3/nh3-0.2.18.ebuild b/dev-python/nh3/nh3-0.2.18.ebuild
new file mode 100644
index 000000000000..6b514c6fe951
--- /dev/null
+++ b/dev-python/nh3/nh3-0.2.18.ebuild
@@ -0,0 +1,113 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ammonia@4.0.0
+ autocfg@1.3.0
+ bitflags@2.6.0
+ cfg-if@1.0.0
+ form_urlencoded@1.2.1
+ futf@0.1.5
+ getrandom@0.2.15
+ heck@0.5.0
+ html5ever@0.27.0
+ idna@0.5.0
+ indoc@2.0.5
+ libc@0.2.155
+ lock_api@0.4.12
+ log@0.4.22
+ mac@0.1.1
+ maplit@1.0.2
+ markup5ever@0.12.1
+ memoffset@0.9.1
+ new_debug_unreachable@1.0.6
+ once_cell@1.19.0
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ percent-encoding@2.3.1
+ phf@0.11.2
+ phf_codegen@0.11.2
+ phf_generator@0.10.0
+ phf_generator@0.11.2
+ phf_shared@0.10.0
+ phf_shared@0.11.2
+ portable-atomic@1.6.0
+ ppv-lite86@0.2.17
+ precomputed-hash@0.1.1
+ proc-macro2@1.0.86
+ pyo3-build-config@0.22.0
+ pyo3-ffi@0.22.0
+ pyo3-macros-backend@0.22.0
+ pyo3-macros@0.22.0
+ pyo3@0.22.0
+ quote@1.0.36
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.5.2
+ scopeguard@1.2.0
+ serde@1.0.204
+ serde_derive@1.0.204
+ siphasher@0.3.11
+ smallvec@1.13.2
+ string_cache@0.8.7
+ string_cache_codegen@0.5.2
+ syn@2.0.69
+ target-lexicon@0.12.14
+ tendril@0.4.3
+ tinyvec@1.7.0
+ tinyvec_macros@0.1.1
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ unindent@0.2.3
+ url@2.5.2
+ utf-8@0.7.6
+ wasi@0.11.0+wasi-snapshot-preview1
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+"
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Ammonia HTML sanitizer Python binding"
+HOMEPAGE="
+ https://github.com/messense/nh3/
+ https://pypi.org/project/nh3/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+distutils_enable_tests pytest
+
+# Rust
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/nh3/nh3.*.so"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # force unstable ABI to workaround stable ABI crash in py3.13
+ # https://github.com/PyO3/pyo3/issues/4311
+ sed -i -e 's:"abi3-py37",::' Cargo.toml || die
+ export UNSAFE_PYO3_SKIP_VERSION_CHECK=1
+}
diff --git a/dev-python/pdm/Manifest b/dev-python/pdm/Manifest
index 58dd409a96e2..8c7499f37e57 100644
--- a/dev-python/pdm/Manifest
+++ b/dev-python/pdm/Manifest
@@ -1,3 +1 @@
-DIST pdm-2.15.4.tar.gz 2614984 BLAKE2B d405db3a1e3e678bf27b0edc91434c7c78da902f2b7615dd8debd47db020817fe80a16562efca875e8ec3b2a39355c9bf5362f48c40a032c41607222951e9a01 SHA512 b15490723f3052b3cd8ed2d000c3b1a3c7fbd77c5f0bbcbb1dee8c74d5266f6835e395878eb7eaf8dff28c11daeb15ce60db9fe49c847ccb5bee2a7f211021df
-DIST pdm-2.16.0.tar.gz 2618359 BLAKE2B 224f6cb0f2bbcd7cd236e062e51e461c0bbe26333df5e01da8a9b326c6382b48fb8f32aa761040be873e5af0e3dcc8d87ea2a7ad9123ea730dc19fce3952b915 SHA512 6ee787dfd309e9cd8ca125e2d7bb6c7cb1055aec8e7f4ad7dbeeec0b1330105d3632c0e5c66071473d66e4b5bd1e80209654b44dc849a5309fa228ab07ea8a89
DIST pdm-2.16.1.tar.gz 2618476 BLAKE2B f32de9aafbaa1050e9373921bc50643c21b43775e7737f5717914f8bc65de7ad126d7dadf94ae55e7848596db1b6b0c1ffa9cb1d9ada914dc2be85cc71ac404f SHA512 8b244c67421ed5b3eb3b6958da38abf776cb8fe7eb5b9de646027fc14d15ecf74f90a128d4a4405cedd775294df3b13f76d606c2cfc86b222ede1c2134f63f84
diff --git a/dev-python/pdm/pdm-2.15.4.ebuild b/dev-python/pdm/pdm-2.15.4.ebuild
deleted file mode 100644
index 48afdaf05b85..000000000000
--- a/dev-python/pdm/pdm-2.15.4.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 2023-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python package and dependency manager supporting the latest PEP standards"
-HOMEPAGE="
- https://pdm-project.org/
- https://github.com/pdm-project/pdm/
- https://pypi.org/project/pdm/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- dev-python/blinker[${PYTHON_USEDEP}]
- >=dev-python/dep-logic-0.2.0[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/platformdirs[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- dev-python/truststore[${PYTHON_USEDEP}]
- dev-python/virtualenv[${PYTHON_USEDEP}]
- dev-python/msgpack[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/filelock[${PYTHON_USEDEP}]
- dev-python/hishel[${PYTHON_USEDEP}]
- dev-python/pbs-installer[${PYTHON_USEDEP}]
- dev-python/pyproject-hooks[${PYTHON_USEDEP}]
- >=dev-python/unearth-0.15.0[${PYTHON_USEDEP}]
- <dev-python/findpython-1[${PYTHON_USEDEP}]
- >=dev-python/findpython-0.6.0[${PYTHON_USEDEP}]
- dev-python/tomlkit[${PYTHON_USEDEP}]
- dev-python/shellingham[${PYTHON_USEDEP}]
- dev-python/python-dotenv[${PYTHON_USEDEP}]
- >=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
- dev-python/installer[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/tomli[${PYTHON_USEDEP}]
- ' 3.10)
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/pytest-httpserver[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- 'tests/cli/test_build.py::test_build_with_no_isolation[False]'
- tests/test_project.py::test_access_index_with_auth
- "tests/test_project.py::test_find_interpreters_with_PDM_IGNORE_ACTIVE_VENV[True]"
- tests/cli/test_others.py::test_build_distributions
- 'tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/artifacts/demo-0.0.1.tar.gz]'
- 'tests/models/test_candidates.py::test_expand_project_root_in_url[-e file:///${PROJECT_ROOT}/tests/fixtures/projects/demo-#-with-hash#egg=demo]'
- tests/models/test_candidates.py::test_find_candidates_from_find_links
- tests/cli/test_build.py::test_build_single_module
- tests/cli/test_build.py::test_build_single_module_with_readme
- tests/cli/test_build.py::test_build_package
- tests/cli/test_build.py::test_build_src_package
- tests/cli/test_build.py::test_build_package_include
- tests/cli/test_build.py::test_build_src_package_by_include
- tests/cli/test_build.py::test_build_with_config_settings
- tests/cli/test_build.py::test_cli_build_with_config_settings
- tests/cli/test_build.py::test_build_ignoring_pip_environment
- tests/cli/test_others.py::test_show_self_package
- tests/cli/test_publish.py::test_publish_and_build_in_one_run
- "tests/cli/test_hooks.py::test_hooks[build]"
- "tests/cli/test_hooks.py::test_hooks[publish]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[build-pre_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[build-post_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_publish]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_publish]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-build]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-publish]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-build]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-publish]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-build]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-publish]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-build]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-publish]"
- "tests/cli/test_venv.py::test_conda_backend_create[True]"
- "tests/cli/test_venv.py::test_conda_backend_create[False]"
- tests/cli/test_lock.py::test_lock_all_with_excluded_groups
- # hangs on interactive keyring prompts
- tests/cli/test_config.py::test_repository_overwrite_default
- tests/cli/test_config.py::test_hide_password_in_output_repository
- tests/cli/test_config.py::test_hide_password_in_output_pypi
- # junk output, sigh
- tests/cli/test_others.py::test_info_command_json
- # why does it try to use python 2.7?!
- tests/cli/test_run.py::test_import_another_sitecustomize
- # fails in tinderbox (bug #928964)
- tests/test_project.py::test_project_packages_path
- )
- [[ ${EPYTHON} != python3.10 ]] && EPYTEST_DESELECT+=(
- # test seems hardcoded to 3.10
- tests/test_project.py::test_project_packages_path
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -m "not network and not integration and not path" \
- -p pytest_mock
-}
diff --git a/dev-python/pdm/pdm-2.16.0.ebuild b/dev-python/pdm/pdm-2.16.0.ebuild
deleted file mode 100644
index 48afdaf05b85..000000000000
--- a/dev-python/pdm/pdm-2.16.0.ebuild
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 2023-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python package and dependency manager supporting the latest PEP standards"
-HOMEPAGE="
- https://pdm-project.org/
- https://github.com/pdm-project/pdm/
- https://pypi.org/project/pdm/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- dev-python/blinker[${PYTHON_USEDEP}]
- >=dev-python/dep-logic-0.2.0[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/platformdirs[${PYTHON_USEDEP}]
- dev-python/rich[${PYTHON_USEDEP}]
- dev-python/truststore[${PYTHON_USEDEP}]
- dev-python/virtualenv[${PYTHON_USEDEP}]
- dev-python/msgpack[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- dev-python/filelock[${PYTHON_USEDEP}]
- dev-python/hishel[${PYTHON_USEDEP}]
- dev-python/pbs-installer[${PYTHON_USEDEP}]
- dev-python/pyproject-hooks[${PYTHON_USEDEP}]
- >=dev-python/unearth-0.15.0[${PYTHON_USEDEP}]
- <dev-python/findpython-1[${PYTHON_USEDEP}]
- >=dev-python/findpython-0.6.0[${PYTHON_USEDEP}]
- dev-python/tomlkit[${PYTHON_USEDEP}]
- dev-python/shellingham[${PYTHON_USEDEP}]
- dev-python/python-dotenv[${PYTHON_USEDEP}]
- >=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
- dev-python/installer[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/tomli[${PYTHON_USEDEP}]
- ' 3.10)
-"
-BDEPEND="
- ${RDEPEND}
- test? (
- dev-python/pytest-mock[${PYTHON_USEDEP}]
- dev-python/pytest-httpserver[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # Internet
- 'tests/cli/test_build.py::test_build_with_no_isolation[False]'
- tests/test_project.py::test_access_index_with_auth
- "tests/test_project.py::test_find_interpreters_with_PDM_IGNORE_ACTIVE_VENV[True]"
- tests/cli/test_others.py::test_build_distributions
- 'tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/artifacts/demo-0.0.1.tar.gz]'
- 'tests/models/test_candidates.py::test_expand_project_root_in_url[-e file:///${PROJECT_ROOT}/tests/fixtures/projects/demo-#-with-hash#egg=demo]'
- tests/models/test_candidates.py::test_find_candidates_from_find_links
- tests/cli/test_build.py::test_build_single_module
- tests/cli/test_build.py::test_build_single_module_with_readme
- tests/cli/test_build.py::test_build_package
- tests/cli/test_build.py::test_build_src_package
- tests/cli/test_build.py::test_build_package_include
- tests/cli/test_build.py::test_build_src_package_by_include
- tests/cli/test_build.py::test_build_with_config_settings
- tests/cli/test_build.py::test_cli_build_with_config_settings
- tests/cli/test_build.py::test_build_ignoring_pip_environment
- tests/cli/test_others.py::test_show_self_package
- tests/cli/test_publish.py::test_publish_and_build_in_one_run
- "tests/cli/test_hooks.py::test_hooks[build]"
- "tests/cli/test_hooks.py::test_hooks[publish]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[build-pre_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[build-post_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_publish]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-pre_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_build]"
- "tests/cli/test_hooks.py::test_skip_option_from_signal[publish-post_publish]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-build]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:all-publish]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-build]"
- "tests/cli/test_hooks.py::test_skip_all_option_from_signal[:pre,:post-publish]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-build]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[pre-publish]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-build]"
- "tests/cli/test_hooks.py::test_skip_pre_post_option_from_signal[post-publish]"
- "tests/cli/test_venv.py::test_conda_backend_create[True]"
- "tests/cli/test_venv.py::test_conda_backend_create[False]"
- tests/cli/test_lock.py::test_lock_all_with_excluded_groups
- # hangs on interactive keyring prompts
- tests/cli/test_config.py::test_repository_overwrite_default
- tests/cli/test_config.py::test_hide_password_in_output_repository
- tests/cli/test_config.py::test_hide_password_in_output_pypi
- # junk output, sigh
- tests/cli/test_others.py::test_info_command_json
- # why does it try to use python 2.7?!
- tests/cli/test_run.py::test_import_another_sitecustomize
- # fails in tinderbox (bug #928964)
- tests/test_project.py::test_project_packages_path
- )
- [[ ${EPYTHON} != python3.10 ]] && EPYTEST_DESELECT+=(
- # test seems hardcoded to 3.10
- tests/test_project.py::test_project_packages_path
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -m "not network and not integration and not path" \
- -p pytest_mock
-}
diff --git a/dev-python/pygit2/Manifest b/dev-python/pygit2/Manifest
index 16eb0caf46fa..59478253e7a7 100644
--- a/dev-python/pygit2/Manifest
+++ b/dev-python/pygit2/Manifest
@@ -1,2 +1,3 @@
DIST pygit2-1.14.1.tar.gz 765621 BLAKE2B 7761851052c5dc03f82db987166012eb2a3445d62b209bc1734e240a619d7c5e4449c1772b250dd3ba8e1605b7c94edb4d8b7ad50c92bd85833e4688ed1e92ef SHA512 0718d7f480d40a5c435c725fbfec728ebdbb70d700607662308458dd125796fce9ddcf40afa6841ddc9cb7b19a5966fb3b5c8e4a52281a7eb354381ce62b5534
DIST pygit2-1.15.0.tar.gz 766816 BLAKE2B bc0f97cbcdb1c445bb00706ade517f4c36cf9d869f87ca919df8116fb3a4e9f29a1c43a637ae53b7e6ccfad028e0df48fad85ee1a0f334438c3fa2916247fbda SHA512 33a5805046f5f18de2ec212145f4adf26b28afb11b669e3cb4d1dc29362ea6627fde605b654d11a80d91589e3000784dfe1c79522bd8c6f1b27974b13a15ef07
+DIST pygit2-1.15.1.tar.gz 768818 BLAKE2B ca418afc24a680cbfddee00ec9b6c8f4987ad65abd3d61b56cfc1682ce97a3685654f7663857a2a996c2c4f393ef2addfd336c5f5f548f3a1860056ba998bb40 SHA512 4795dbc7b05000955fea86e1b51209a77dfaf99ea806aa8a2be538aed8094638def3e15b0507c61ab57cad2b8e5faee7f1c90ce5c2b20094f972638e7c9bd20f
diff --git a/dev-python/pygit2/pygit2-1.15.1.ebuild b/dev-python/pygit2/pygit2-1.15.1.ebuild
new file mode 100644
index 000000000000..d4bc10707e75
--- /dev/null
+++ b/dev-python/pygit2/pygit2-1.15.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2024 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_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for libgit2"
+HOMEPAGE="
+ https://github.com/libgit2/pygit2/
+ https://pypi.org/project/pygit2/
+"
+
+LICENSE="GPL-2-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+DEPEND="
+ <dev-libs/libgit2-1.9:=
+ >=dev-libs/libgit2-1.8.1:=
+"
+BDEPEND="
+ >=dev-python/cffi-1.16.0:=[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unconditionally prevent it from using network
+ sed -i -e '/has_network/s:True:False:' test/utils.py || die
+}
+
+src_test() {
+ rm -r pygit2 || die
+ distutils-r1_src_test
+}
diff --git a/dev-python/pytest-subtests/Manifest b/dev-python/pytest-subtests/Manifest
index b3602b7b1d53..e66bdfa70dd7 100644
--- a/dev-python/pytest-subtests/Manifest
+++ b/dev-python/pytest-subtests/Manifest
@@ -1 +1,2 @@
DIST pytest-subtests-0.12.1.tar.gz 15303 BLAKE2B 68ce29fd067836cb32b43f260c98b0a8d1827a1bf6f3f61bc98eb69a5259dad725379bece5fe745e86561cab7e58042aff7da51d39e99fd09bbf0127d04d8cca SHA512 5eb4ff950171f8e008b3879453b55bab1ebc82ec60ca4da839158ad6e195c03f1a5d6b6ce2ac263a3ecaa2f684955e4fcc7abf5e429de9ffd898586b758e6cd4
+DIST pytest_subtests-0.13.0.tar.gz 15842 BLAKE2B 8ca2b7eb9983bc8d07d2e1eff281b0047b8a8002eff7aa916e58927522eb390c2e6fd8f788738d5a5ae725bb93cd7f8f4e99eca0270d76b64a2d55f2f3c37d8f SHA512 0cff25633782e898594fab2de7078ef0d3983d5fd5ec35179e8016905f2d795024fd7c430aad42c3889f4c3f28947a4bdb93de7fad2dd9fec2d721c0fd51d323
diff --git a/dev-python/pytest-subtests/pytest-subtests-0.13.0.ebuild b/dev-python/pytest-subtests/pytest-subtests-0.13.0.ebuild
new file mode 100644
index 000000000000..8709850cc893
--- /dev/null
+++ b/dev-python/pytest-subtests/pytest-subtests-0.13.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Unittest subTest() support and subtests fixture"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-subtests/
+ https://pypi.org/project/pytest-subtests/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7[${PYTHON_USEDEP}]
+"
+# pytest-xdist is used to test compatibility
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,pytest_subtests.plugin
+ epytest
+}
diff --git a/dev-python/readme-renderer/files/readme-renderer-43.0-docutils-0.21.patch b/dev-python/readme-renderer/files/readme-renderer-43.0-docutils-0.21.patch
new file mode 100644
index 000000000000..f216b775263a
--- /dev/null
+++ b/dev-python/readme-renderer/files/readme-renderer-43.0-docutils-0.21.patch
@@ -0,0 +1,70 @@
+From fedd830cdd2fdc7311b6b69b307412ba3d3f011c Mon Sep 17 00:00:00 2001
+From: Kurt McKee <contactme@kurtmckee.org>
+Date: Sat, 29 Jun 2024 17:56:36 -0500
+Subject: [PATCH 4/5] Update HTML test files that render differently in newer
+ docutils
+
+---
+ tests/fixtures/test_rst_bibtex.html | 2 +-
+ tests/fixtures/test_rst_contents.html | 2 +-
+ tests/fixtures/test_rst_linkify.html | 8 ++++++--
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/tests/fixtures/test_rst_bibtex.html b/tests/fixtures/test_rst_bibtex.html
+index d9048e7..0f312a7 100644
+--- a/tests/fixtures/test_rst_bibtex.html
++++ b/tests/fixtures/test_rst_bibtex.html
+@@ -1,2 +1,2 @@
+ <pre><code><span class="nc">@article</span><span class="p">{</span><span class="nl">the_impact_of_pygments_docutils_config_and_html5</span><span class="p">,</span><span class="w">
+- </span><span class="na">year</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><s>{2022}</s><span class="p">,</span></code></pre>
++ </span><span class="na">year</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">{2022}</span><span class="p">,</span></code></pre>
+diff --git a/tests/fixtures/test_rst_contents.html b/tests/fixtures/test_rst_contents.html
+index 48a5556..445f610 100644
+--- a/tests/fixtures/test_rst_contents.html
++++ b/tests/fixtures/test_rst_contents.html
+@@ -1,5 +1,5 @@
+ <nav class="contents" id="contents">
+-<p class="topic-title">Contents</p>
++<p class="topic-title"><a href="#top" rel="nofollow">Contents</a></p>
+ <ul class="simple">
+ <li><p><a href="#features" id="toc-entry-1" rel="nofollow">Features</a></p></li>
+ <li><p><a href="#installation" id="toc-entry-2" rel="nofollow">Installation</a></p></li>
+diff --git a/tests/fixtures/test_rst_linkify.html b/tests/fixtures/test_rst_linkify.html
+index 5956925..f796a70 100644
+--- a/tests/fixtures/test_rst_linkify.html
++++ b/tests/fixtures/test_rst_linkify.html
+@@ -1,5 +1,9 @@
+-<a href="https://travis-ci.org/tulsawebdevs/django-multi-gtfs" rel="nofollow"><img alt="https://travis-ci.org/tulsawebdevs/django-multi-gtfs.svg?branch=master" src="https://travis-ci.org/tulsawebdevs/django-multi-gtfs.svg?branch=master"></a>
+-<a href="https://coveralls.io/github/tulsawebdevs/django-multi-gtfs" rel="nofollow"><img alt="https://coveralls.io/repos/github/tulsawebdevs/django-multi-gtfs/badge.svg?branch=django19" src="https://coveralls.io/repos/github/tulsawebdevs/django-multi-gtfs/badge.svg?branch=django19"></a>
++<a href="https://travis-ci.org/tulsawebdevs/django-multi-gtfs" rel="nofollow">
++<img alt="https://travis-ci.org/tulsawebdevs/django-multi-gtfs.svg?branch=master" src="https://travis-ci.org/tulsawebdevs/django-multi-gtfs.svg?branch=master">
++</a>
++<a href="https://coveralls.io/github/tulsawebdevs/django-multi-gtfs" rel="nofollow">
++<img alt="https://coveralls.io/repos/github/tulsawebdevs/django-multi-gtfs/badge.svg?branch=django19" src="https://coveralls.io/repos/github/tulsawebdevs/django-multi-gtfs/badge.svg?branch=django19">
++</a>
+ <p><strong>multigtfs</strong> is an <a href="http://choosealicense.com/licenses/apache/" rel="nofollow">Apache 2.0</a>-licensed Django app that supports importing
+ and exporting of GTFS feeds. All features of the <a href="https://developers.google.com/transit/gtfs/reference" rel="nofollow">June 20, 2012 reference</a>
+ are supported, including <a href="https://developers.google.com/transit/gtfs/changes#RevisionHistory" rel="nofollow">all changes</a> up to February 17, 2014.
+
+From 406d81e84f84393be35c35289ebab64a179f4532 Mon Sep 17 00:00:00 2001
+From: Kurt McKee <contactme@kurtmckee.org>
+Date: Mon, 1 Jul 2024 08:42:52 -0500
+Subject: [PATCH 5/5] Feedback: Remove `<s>` from the list of allowed HTML tags
+
+---
+ readme_renderer/clean.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/readme_renderer/clean.py b/readme_renderer/clean.py
+index 6cd5972..a123044 100644
+--- a/readme_renderer/clean.py
++++ b/readme_renderer/clean.py
+@@ -26,7 +26,7 @@
+ "br", "caption", "cite", "col", "colgroup", "dd", "del", "details", "div",
+ "dl", "dt", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "img", "p", "pre",
+ "span", "sub", "summary", "sup", "table", "tbody", "td", "th", "thead",
+- "tr", "tt", "kbd", "var", "input", "section", "aside", "nav", "s", "figure",
++ "tr", "tt", "kbd", "var", "input", "section", "aside", "nav", "figure",
+ "figcaption", "picture",
+ }
+
diff --git a/dev-python/readme-renderer/readme-renderer-43.0-r1.ebuild b/dev-python/readme-renderer/readme-renderer-43.0-r1.ebuild
new file mode 100644
index 000000000000..1632cf6d6c35
--- /dev/null
+++ b/dev-python/readme-renderer/readme-renderer-43.0-r1.ebuild
@@ -0,0 +1,39 @@
+# 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_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A library for rendering 'readme' descriptions for Warehouse"
+HOMEPAGE="
+ https://github.com/pypa/readme_renderer/
+ https://pypi.org/project/readme-renderer/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/docutils-0.13.1[${PYTHON_USEDEP}]
+ >=dev-python/nh3-0.2.14[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.5.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/docutils-0.21.2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+DOCS=( README.rst )
+
+PATCHES=(
+ # https://github.com/pypa/readme_renderer/pull/315
+ "${FILESDIR}/${P}-docutils-0.21.patch"
+)
diff --git a/dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild b/dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild
new file mode 100644
index 000000000000..f36a70cb100f
--- /dev/null
+++ b/dev-python/rustworkx/rustworkx-0.15.1-r1.ebuild
@@ -0,0 +1,164 @@
+# Copyright 2022-2024 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_{8,9,10,11,12} )
+
+CRATES="
+ ahash@0.8.11
+ alga@0.9.3
+ allocator-api2@0.2.18
+ approx@0.3.2
+ autocfg@1.3.0
+ bitflags@2.6.0
+ cfg-if@1.0.0
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.20
+ either@1.13.0
+ equivalent@1.0.1
+ fixedbitset@0.4.2
+ getrandom@0.2.15
+ hashbrown@0.12.3
+ hashbrown@0.14.5
+ heck@0.4.1
+ hermit-abi@0.3.9
+ indexmap@1.9.3
+ indexmap@2.2.6
+ indoc@2.0.5
+ itertools@0.10.5
+ itertools@0.11.0
+ itoa@1.0.11
+ libc@0.2.155
+ libm@0.2.8
+ lock_api@0.4.12
+ matrixmultiply@0.3.8
+ memchr@2.7.4
+ memoffset@0.9.1
+ ndarray-stats@0.5.1
+ ndarray@0.15.6
+ noisy_float@0.2.0
+ num-bigint@0.4.6
+ num-complex@0.2.4
+ num-complex@0.4.6
+ num-integer@0.1.46
+ num-traits@0.2.19
+ num_cpus@1.16.0
+ numpy@0.21.0
+ once_cell@1.19.0
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ petgraph@0.6.5
+ portable-atomic@1.6.0
+ ppv-lite86@0.2.17
+ priority-queue@2.0.3
+ proc-macro2@1.0.86
+ pyo3-build-config@0.21.2
+ pyo3-ffi@0.21.2
+ pyo3-macros-backend@0.21.2
+ pyo3-macros@0.21.2
+ pyo3@0.21.2
+ quick-xml@0.34.0
+ quote@1.0.36
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rand_pcg@0.3.1
+ rawpointer@0.2.1
+ rayon-cond@0.3.0
+ rayon-core@1.12.1
+ rayon@1.10.0
+ redox_syscall@0.5.2
+ rustc-hash@1.1.0
+ ryu@1.0.18
+ scopeguard@1.2.0
+ serde@1.0.203
+ serde_derive@1.0.203
+ serde_json@1.0.118
+ smallvec@1.13.2
+ sprs@0.11.1
+ syn@2.0.68
+ target-lexicon@0.12.14
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ version_check@0.9.4
+ wasi@0.11.0+wasi-snapshot-preview1
+ windows-targets@0.52.5
+ windows_aarch64_gnullvm@0.52.5
+ windows_aarch64_msvc@0.52.5
+ windows_i686_gnu@0.52.5
+ windows_i686_gnullvm@0.52.5
+ windows_i686_msvc@0.52.5
+ windows_x86_64_gnu@0.52.5
+ windows_x86_64_gnullvm@0.52.5
+ windows_x86_64_msvc@0.52.5
+ zerocopy-derive@0.7.34
+ zerocopy@0.7.34
+"
+
+inherit cargo distutils-r1
+
+DESCRIPTION="A high performance Python graph library implemented in Rust"
+HOMEPAGE="
+ https://github.com/Qiskit/rustworkx/
+ https://pypi.org/project/rustworkx/
+"
+SRC_URI="
+ https://github.com/Qiskit/rustworkx/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 MIT
+ Unicode-DFS-2016
+ || ( LGPL-3+ MPL-2.0 )
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/numpy-1.16.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/graphviz[${PYTHON_USEDEP}]
+ >=dev-python/networkx-2.5[${PYTHON_USEDEP}]
+ dev-python/stestr[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.5.0[${PYTHON_USEDEP}]
+ media-gfx/graphviz[gts]
+ )
+"
+
+# Libraries built with rust do not use CFLAGS and LDFLAGS.
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/rustworkx/rustworkx.*\\.so"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # force unstable ABI to workaround stable ABI crash in py3.13
+ # https://github.com/PyO3/pyo3/issues/4311
+ sed -i -e 's:"abi3-py38",::' Cargo.toml || die
+ export UNSAFE_PYO3_SKIP_VERSION_CHECK=1
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local EPYTEST_DESELECT=(
+ # TODO: hangs
+ tests/retworkx_backwards_compat/visualization/test_mpl.py
+ tests/rustworkx_tests/visualization/test_mpl.py
+ )
+ rm -rf rustworkx || die
+ epytest
+}
diff --git a/dev-python/types-docutils/Manifest b/dev-python/types-docutils/Manifest
index 90e5f7e01663..bb691f9f2707 100644
--- a/dev-python/types-docutils/Manifest
+++ b/dev-python/types-docutils/Manifest
@@ -1,2 +1,2 @@
-DIST types-docutils-0.21.0.20240423.tar.gz 19468 BLAKE2B a1fda020a7390ae7a95a46ec484697ecc7f18331607e6c85b0d0d9ecaea6fcc3ce8763a6d800e6ce232ddb4cb3633272eaa9ea607c0eb9a85fff4e1be48c64dc SHA512 e7e596ffb26d50730d00204ff8bd4474ef109b9d755aaa2dd473cf96e1baf477961cc6073a66e136fe363546b25ed0e306aee86959ebb95243b44bd9993dae44
DIST types-docutils-0.21.0.20240704.tar.gz 19782 BLAKE2B eaf113c86432951b4d0e6a2b7bf69e8e5fb18717bc8107a55a679c6890ae6afb5b543f968758e2797b089ee96bd05945f1bca01383cdd68e01c2c2c1f144710f SHA512 66bf7eb52643dc46a1a621db5d9be6c68bdf61f0b075896e74eabb19db1edae72810a697e803482e89581131b6c0966d990f3043092136bd7e1d4a9cfcab9075
+DIST types-docutils-0.21.0.20240708.tar.gz 19815 BLAKE2B a8ddf76c8fec9d9facf21f19f64f28731dbef334ba526cf9521559cfdc79e9d8ce0c7da9d0a7cc832624fb3b40d31334624567689c08abead6fdac1200ea62ad SHA512 d5611c3a5cc4e7e2c829d0e72154a6262c13ec233f58f3681645bcc3d4f66383e791bf30e3f181cc5f9a0a684c882b489be372a3840cf5a30fd40a6b2563a38a
diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20240423.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20240708.ebuild
index 0d86c4835acd..0d86c4835acd 100644
--- a/dev-python/types-docutils/types-docutils-0.21.0.20240423.ebuild
+++ b/dev-python/types-docutils/types-docutils-0.21.0.20240708.ebuild
diff --git a/dev-python/uncertainties/Manifest b/dev-python/uncertainties/Manifest
index 118b8a16d6e8..7d8d73d2822b 100644
--- a/dev-python/uncertainties/Manifest
+++ b/dev-python/uncertainties/Manifest
@@ -1,2 +1,2 @@
-DIST uncertainties-3.1.7.tar.gz 158727 BLAKE2B d68b74d291b1f6c4505a47f6fa19653eade43dc1ccaf78e02bd320df92d8bdaeac1b0808a21dceb046a6e2acd076836728b4014d39ca8da17647582320ce50e8 SHA512 24576415265df22459d83bb28e632195e6760204a6e11523821afe25222ea3e035bf7f10c552ec456bb2cdf42a09e296865f9bf0d13ff44beb88c11ebc479ff9
DIST uncertainties-3.2.1.tar.gz 143154 BLAKE2B 68a0e840878eed602666f1b315ea575f3ab07ca12555f6153801ffbb54b9b1ae8742e4d87c7cec9ec0ace505c4dd8aeb45d3a010663691db31145a146390c932 SHA512 4b1b1738bed60dddacaa0e7f6d8672e32c8282681c4f2f5222e26798150774a24349fb1a98011ff37dc990ab2dd271a3fff2abbc7a0279d499d08585df1b814f
+DIST uncertainties-3.2.2.tar.gz 143865 BLAKE2B 38f88ba147f2ef43749ddf2735fc26c1804e8acd504db2b8317abe69b37daded70b7e111edae1793dc3000d5bde207fe4156221d17c9284eb0006d3369efb367 SHA512 b78efc09cc572ecd24ead89db4136741429ab9032295c9e9050a79e14662b41c7537580f698e38d4ee1a36ae460ee22a463eeb473806a1f72246ab6868d950a3
diff --git a/dev-python/uncertainties/uncertainties-3.1.7-r1.ebuild b/dev-python/uncertainties/uncertainties-3.2.2.ebuild
index f417e9735489..8fcb4abb1096 100644
--- a/dev-python/uncertainties/uncertainties-3.1.7-r1.ebuild
+++ b/dev-python/uncertainties/uncertainties-3.2.2.ebuild
@@ -26,17 +26,6 @@ BDEPEND="
"
distutils_enable_tests pytest
-distutils_enable_sphinx doc --no-autodoc
-
-src_prepare() {
- # not used in py3, see https://github.com/lmfit/uncertainties/pull/168
- sed -i -e '/future/d' setup.py || die
- # fix tests with numpy-2
- # https://github.com/lmfit/uncertainties/pull/225
- sed -e "/assert not hasattr(numpy, 'acos')/d" \
- -i uncertainties/unumpy/test_unumpy.py || die
- distutils-r1_src_prepare
-}
pkg_postinst() {
optfeature "numpy support" dev-python/numpy
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index f225026498f2..2e9d4bb9f77d 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -5,3 +5,4 @@ DIST uv-0.2.15-crates.tar.xz 48793072 BLAKE2B 5988199d887f371f275a6ee40415743823
DIST uv-0.2.18.gh.tar.gz 1303313 BLAKE2B d14280eb1d92b2c3f43dc272da66d7e3b790f6261377a04e15751243e6c22f4a960ef78c0f52ccbff5412a0ec8acc65b0719fd5abf3cc2455079e0f1e75a5415 SHA512 3ae24e2629253ddf237a10119d20685fddc3d63a66efbc328f2d92174842e8fb6e335f6d3505642276ffc8abd349a25af985bf528ee9d42432271085a69ad018
DIST uv-0.2.20-crates.tar.xz 48761312 BLAKE2B 888ee349ef5849c0333e67d2ab2a0c80bc5bd66fdf2de3e2b9f11d62f48aa075a5b66e234800c987cbda134cd5621dc0de0ab8e9a6ab63ad4e19e7eff33c7ca9 SHA512 5b7d0d48400e90cd6cfe4d615fa9672cca08e028d5b25dca97d360729a7eec6a39bf8613d076291097a11c39851a5348e045f5ee17b27053ebfc1469bf516512
DIST uv-0.2.21.gh.tar.gz 1318725 BLAKE2B dc1cbce639a05050f7a2ca97f9ee45fab8099045970e9543174fd963b12a9a355abd69aebc37f7bc91d9884c9a882ec6f43148bdc6b20e52728675f1f3f5f5d7 SHA512 7923781117117ad5645df7792396248f8064f9107719797e5efe118b70dfd51f6e53403fe7aa87ffb7e32c9327543ba9b001ffeb95b69028695d2e75fc53e2b7
+DIST uv-0.2.22.gh.tar.gz 1311461 BLAKE2B 8fa2b9fa12220995f25426c7865dd897850617bc838beaa697764ee6566ee81e7e265d57f44f792a1a87a4fcc15d1f4de3de0dda94bb5e8a1c1c03c887b589b6 SHA512 95e67e4fcbbf5712fd25574459e4f707606cdbbd3d34735a2dcdc75fa533d2dc02177b7f3ad09139bb09d5c700352670508440d639eb191142b9372c7a5f2998
diff --git a/dev-python/uv/uv-0.2.22.ebuild b/dev-python/uv/uv-0.2.22.ebuild
new file mode 100644
index 000000000000..8839559a2ad0
--- /dev/null
+++ b/dev-python/uv/uv-0.2.22.ebuild
@@ -0,0 +1,108 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;1dcb40cfe1bf5325a6fd4bfcf9894db40241f585;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;b4435e2f3af10dab2336a0345b35dcd622699d06;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;21ceec9a5fd2e8d6f71c3ea2999078fecbd13cbe;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;21ceec9a5fd2e8d6f71c3ea2999078fecbd13cbe;reqwest-middleware-%commit%/reqwest-retry'
+)
+
+inherit cargo check-reqs
+
+CRATE_PV=0.2.20
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+BDEPEND="
+ >=virtual/rust-1.77
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+}
+
+src_prepare() {
+ default
+
+ # remove patch.* that breaks GIT_CRATES
+ sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-21ceec9a5fd2e8d6f71c3ea2999078fecbd13cbe/reqwest-middleware\" }@" Cargo.toml || die
+
+ # https://github.com/vorot93/tokio-tar/pull/23
+ # (fortunately uv already depends on portable-atomic, so we don't
+ # have to fight Cargo.lock)
+ cd "${WORKDIR}/cargo_home/gentoo/tokio-tar-0.3.1" || die
+ eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}
diff --git a/dev-python/xkbcommon/Manifest b/dev-python/xkbcommon/Manifest
index db7797541650..ee7bc794e800 100644
--- a/dev-python/xkbcommon/Manifest
+++ b/dev-python/xkbcommon/Manifest
@@ -1,3 +1,4 @@
DIST python-xkbcommon-1.0.1.gh.tar.gz 79263 BLAKE2B 8bc128e592a02b14321fe087f7c0ae87a699e0284c3230fa2a0b1cf2e8105037fa0ace876216ec8a72cc49eb76fab0af83b7a5d83a3943f609954205d949def0 SHA512 1e0393c5d7e99d9a68168a5486a15b3598d8539b7a7b0a7c41a9c1a329cfe79d3f19556b481f5625e1bea1cc41f3394dcc1fc1bf1dbd98cd58db54f471ece5d5
DIST python-xkbcommon-1.0.gh.tar.gz 27258 BLAKE2B 3106877f8e87f50453a358eec4e6431642b00a6a2bc23d3088ef22379984869ec84cd042a1ac53dd72783f3005dad1efddf3f87410204b88bfde4f9da0044c97 SHA512 c7793d6f5517771006ff5a9c01deb9a37717157d7171af49ff459dc96b3b16a1d2d4c0f1272b5a8f683390de1e8e6a6ff92472f18828c7e38e0f2a1ee6f34f07
+DIST xkbcommon-1.5.1.tar.gz 80170 BLAKE2B 8dec8c632d1d3c5d4f47992feea7431e21a9bb6477cbb35039003606ad6c52136255e89373bfe663cfaeb5d7b575ca0504af05568d56dcf99c53f509cf636408 SHA512 0fe7fa5760a77f9652e1985d16bf9ef0f6a95f96a196a032f4d7639bca5da644e0439f81ff76b02a06a2e2448277d86ed798de72cbfadeb2369ffaf2d322cb65
DIST xkbcommon-1.5.tar.gz 79887 BLAKE2B f6a39b98fc97f12a2badfa53cf5445fad0018aaf03542d1945d36155e3c0abe92b4080f149d8c2bcc85ac72cef6a6099ca45afb043754b31a543f02820a33ebd SHA512 ab0d3f83d11038dd4ae98f9954f6082f214727720d0eced4c298943f4f26b19d9be42bc4215c4e6a5fa68214c4a0a5e88b30657a52e982a8b4c7e7b84c1c174b
diff --git a/dev-python/xkbcommon/xkbcommon-1.5.1.ebuild b/dev-python/xkbcommon/xkbcommon-1.5.1.ebuild
new file mode 100644
index 000000000000..d323d260e43b
--- /dev/null
+++ b/dev-python/xkbcommon/xkbcommon-1.5.1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2023-2024 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_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings for libxkbcommon using cffi"
+HOMEPAGE="
+ https://github.com/sde1000/python-xkbcommon/
+ https://pypi.org/project/xkbcommon/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+# x11-libs/libxkbcommon dep per README
+RDEPEND="
+ >=x11-libs/libxkbcommon-${PV}
+ $(python_gen_cond_dep '
+ dev-python/cffi[${PYTHON_USEDEP}]
+ ' 'python*')
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests pytest
+
+python_test() {
+ rm -rf xkbcommon || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}