summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-12-17 06:54:41 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-12-17 06:54:41 +0000
commit2f5266438c1f3326f1e1f26bd4cbcb8fdcfd0dde (patch)
tree7511ad1ebcde60d9fecfcd36cbd68a0857be885a /dev-python
parent3be2abebd202ba639f64d0507cc09e3f33a205d8 (diff)
downloadbaldeagleos-repo-2f5266438c1f3326f1e1f26bd4cbcb8fdcfd0dde.tar.gz
baldeagleos-repo-2f5266438c1f3326f1e1f26bd4cbcb8fdcfd0dde.tar.xz
baldeagleos-repo-2f5266438c1f3326f1e1f26bd4cbcb8fdcfd0dde.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/attrs/Manifest1
-rw-r--r--dev-python/attrs/attrs-24.3.0.ebuild33
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.35.82.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.35.82.ebuild67
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.22.2.ebuild70
-rw-r--r--dev-python/deepdiff/Manifest2
-rw-r--r--dev-python/deepdiff/deepdiff-8.1.1.ebuild (renamed from dev-python/deepdiff/deepdiff-7.0.1.ebuild)20
-rw-r--r--dev-python/elasticsearch/Manifest2
-rw-r--r--dev-python/elasticsearch/elasticsearch-8.16.0.ebuild76
-rw-r--r--dev-python/elasticsearch/elasticsearch-8.17.0.ebuild76
-rw-r--r--dev-python/mkdocs-material/Manifest1
-rw-r--r--dev-python/mkdocs-material/mkdocs-material-9.5.49.ebuild67
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.2.0.ebuild91
-rw-r--r--dev-python/python-json-logger/Manifest1
-rw-r--r--dev-python/python-json-logger/python-json-logger-3.2.1.ebuild33
-rw-r--r--dev-python/python-multipart/Manifest1
-rw-r--r--dev-python/python-multipart/python-multipart-0.0.20.ebuild44
-rw-r--r--dev-python/pyupgrade/Manifest1
-rw-r--r--dev-python/pyupgrade/pyupgrade-3.19.1.ebuild30
-rw-r--r--dev-python/zenlib/Manifest1
-rw-r--r--dev-python/zenlib/zenlib-3.0.0.ebuild26
25 files changed, 688 insertions, 12 deletions
diff --git a/dev-python/attrs/Manifest b/dev-python/attrs/Manifest
index df232cb3bd3b..e1277c2e9097 100644
--- a/dev-python/attrs/Manifest
+++ b/dev-python/attrs/Manifest
@@ -1 +1,2 @@
DIST attrs-24.2.0.tar.gz 792678 BLAKE2B f5110f5bf4b848a929a3766985fc49ee8da346398c26d0f786a12d89e7596ec7165bdefaae4b2716003c4b3ad7fcc619ec2f5e0d184df899318a7bb02c9919a4 SHA512 fcd14ff79a09a0b2b56734c460b5c43836999b6ed27665038ff7a146f53891b31ab3da07df05f1686474507f342bfce09bc0a6a60865c241e58f7ce8423dc968
+DIST attrs-24.3.0.tar.gz 805984 BLAKE2B 634b89958d0af8e420aa4abd12db6e575ad73c88e29ff5a056bd1be372125dce3799da56481473a485c07715083fa460fe07cbeaf94df3f558ad16afe143af71 SHA512 9974c1510e78887aedae51813d2edcbb5210de302360c1b0e8cd64265b32acae65e633d61d936aaf8541f79180b9e61e1a9e2a88ac09f8ef29423afb340db8ef
diff --git a/dev-python/attrs/attrs-24.3.0.ebuild b/dev-python/attrs/attrs-24.3.0.ebuild
new file mode 100644
index 000000000000..4122ccf18e2e
--- /dev/null
+++ b/dev-python/attrs/attrs-24.3.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Attributes without boilerplate"
+HOMEPAGE="
+ https://github.com/python-attrs/attrs/
+ https://attrs.readthedocs.io/
+ https://pypi.org/project/attrs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ >=dev-python/hatch-fancy-pypi-readme-23.2.0[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_impl_dep sqlite)
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/zope-interface[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index d118dc290142..e9d3c55eeca8 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.35.71.gh.tar.gz 903019 BLAKE2B 48bf56c54a8eaa52c1850078a92cef7e5acb06f2d9d551414d640c6f5c5f381f2edc4ae6f582d9c1578f68d78a272142033bd41caba95577af917a492e995edb SHA512 56df8d30c0d3efc71caa6d629354e1311d944c71b5568b4154fc93c315558d600e4411ccc80abca98cb4a3adf3a3ab4f4dbce22ca06184e11d720f36f33b58d2
DIST boto3-1.35.76.gh.tar.gz 910113 BLAKE2B 3e7429976b348e29ba4184bffe03c643b85dd978cc520b924263e8430b5e5935b95152cced2f6c0807c65de4e6e1405c55bb24565ac5bc425292e9adac178c03 SHA512 132f37e77b7b36d525e9cf678fe2f624eed77a9eb9fa8e7d7f079a362e5d7a5f3edcd17c7d8bc1e27570171927d26e74a94d267a1b0cbddda3890ac6a0f21cdc
DIST boto3-1.35.81.gh.tar.gz 913534 BLAKE2B aab88ae95d4c93c8f54042ef2b3ec9defdafa4d9dd4dfb57ff1da896254bbc0d1ac8c4583b8870cc8cc814366f9ef79d67d69d45b0f373878d1c22dba465e523 SHA512 fcbc31295a94983620405dbaa0f32eee2149619cf113658c2955fe84ca541cb93e8d6d637d8d7b322e6b7252bfc390b4aff77b99af3978267c64cfa5effef1f3
+DIST boto3-1.35.82.gh.tar.gz 914286 BLAKE2B e2d9daaad1e89534de2fe44e107c0c49b4699ae3e69b2d67d121f97fe69ad15601333d5b9da34afd81b5f67b1fe0d1ae7b7cf982c11508597f08bca26960ef04 SHA512 23913c072c5c375be558dfe67fda2d70539a5816b9ac611ed3c11cc6cfb41372c64ad81e324f74053254e2b0996cc695e4df917b8e5a98519530defeb8f94139
diff --git a/dev-python/boto3/boto3-1.35.82.ebuild b/dev-python/boto3/boto3-1.35.82.ebuild
new file mode 100644
index 000000000000..d91ce27598cf
--- /dev/null
+++ b/dev-python/boto3/boto3-1.35.82.ebuild
@@ -0,0 +1,53 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 50d405aa98b3..3077f72f6d18 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.35.71.gh.tar.gz 13908196 BLAKE2B beba990a19a2a6de3a10d9acd9f97c79872548a5c2bdb2e0944d69292efefd171a0f2e2c989da1551f07902f35b9530984cfe037ff6a9ac9168f9fc5dc5105d5 SHA512 e962cd711e8a9ee6df4e58b3bab22b5e9ded2d75d89fcabd50476789270af50513dcdd4eaeba9f7f778cb9055b4b0cadde0e436cdb1ef333b4322c9f128e910e
DIST botocore-1.35.76.gh.tar.gz 14117270 BLAKE2B b072b926daae520e54871676d5afc4832ddbc8c91a2ee15f103a9d48df2e17d8cef304fab28c4050bfe6d70629979c48d8bc00d5caf42a0129a19ff5a3a2baa3 SHA512 e7433d60519a0da5118b3283c192a7199e8bfdd605fc6bb98d05cc90485a1e4aec537a035ffc08bcb6c35e9d31394422596e113a98cc00c23bd3dd350577ac1d
DIST botocore-1.35.81.gh.tar.gz 14142565 BLAKE2B f0c5c284f5f0964841ab0f84f278fa574b696df614d5602856065c83971bf366449b7ccb12fbf15c3bb734d894e6eb49be89e5dae3000bd8fd8913d2f465c5e6 SHA512 7b67d6f1dc31369afc3a4ebf109682b9365b59fe46635ef92b0e8adcaa16fbcaf7e1350a13537149dd0a55b60a57534a18d9f4e8bbb28663e8b2e427ece20819
+DIST botocore-1.35.82.gh.tar.gz 14144970 BLAKE2B c1bd266383fb37b1a6059e7ebf08216810bcb10cedb8e7c0d60680025f91a28575a19b31419c429c0ca54b41bb25070a278823081525a301e20bc56a3bc12b4d SHA512 437fa1cdaf24566d72c501a474f6f1ee87d10b5d90123ddeced507955de377ff4b2c70f874d96634fe87d75b95332a44b254cb30019a07b64bf855f6c7b70ef6
diff --git a/dev-python/botocore/botocore-1.35.82.ebuild b/dev-python/botocore/botocore-1.35.82.ebuild
new file mode 100644
index 000000000000..7816e9efeb52
--- /dev/null
+++ b/dev-python/botocore/botocore-1.35.82.ebuild
@@ -0,0 +1,67 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 47d4d09acb6e..87e7019ae879 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -3,3 +3,4 @@ DIST cfn_lint-1.20.2.tar.gz 2734631 BLAKE2B 1935793ad1438f5fc4f217390541b476192a
DIST cfn_lint-1.21.0.tar.gz 2747268 BLAKE2B 580fffc95d5829374f1dda111e2cc805639a463514112cabe0e34b6f53344991819f81b8246adb9fe3ee8fe59ee5db9000befead7a21ce85694bac248589a72a SHA512 2091f02a30ee22313db52094e9f54e5978eca69aa0c0cc96e1e39cae720f04165b4ff2aa0f01419c5327f149d5bd5ab16c4ba9b2af0a8f42b1a1872991a6e4da
DIST cfn_lint-1.22.0.tar.gz 2744603 BLAKE2B f4ae73ce051e8bb25fcacc4f258bb687266696622bf9f6cf80246cab7618ae289d9b2bd8da565c9696195c383fc0fc78419fa5e9018675cb81afe77ae9855c94 SHA512 54ae5143a94a5afcd38620568b16d899dd7784c99581202a54650bdfde86fe7564bbf320d9b47875df5b5fd94aa9e6fa2a01f847651c45e1396a203cbd8b4d10
DIST cfn_lint-1.22.1.tar.gz 2878378 BLAKE2B e6af99e633574dac718604ead301cb1728273b6c5a29dc8ab8d75b759696181f826d9e17fb53e0779d990952411a3549df0d94e1fcf3c452a116d484bcb4f5b9 SHA512 0b339bd68b6033c60c289fd2456650e9a87d4b574ddaa52aaa40d48e0bd82862b05bd8656ecb4dbd647a0ca2c2181e3d8704e12deeda7a69c6488fda9e801652
+DIST cfn_lint-1.22.2.tar.gz 2848845 BLAKE2B 4f9194e019c1dae1d373b8432693be9463a668e5db522c7a23adcfaf04c591e49d0d1dc4853323f32fdb0d2c8db1c9e7a0bf6cddf652541bb057cfc3525ed53e SHA512 8e80892692e4458591f9863ad43af8bd8c5fbe2e554c75dda3029ac73a5a04987238221d50a3d2597dc0195dd049f36f9fcdc2b917c68b9a4d6807b4e8bf411c
diff --git a/dev-python/cfn-lint/cfn-lint-1.22.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.22.2.ebuild
new file mode 100644
index 000000000000..2481db200741
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.22.2.ebuild
@@ -0,0 +1,70 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.94.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
+ <dev-python/jsonschema-5[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
+ >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+ # TODO: it looks as if AWS_DEFAULT_REGION didn't work
+ test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
+ test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_template_config
+ # different graphviz version?
+ test/unit/module/template/test_template.py::TestTemplate::test_build_graph
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/deepdiff/Manifest b/dev-python/deepdiff/Manifest
index 8e3f48391611..2786698c40fc 100644
--- a/dev-python/deepdiff/Manifest
+++ b/dev-python/deepdiff/Manifest
@@ -1,2 +1,2 @@
-DIST deepdiff-7.0.1.tar.gz 421718 BLAKE2B b6441b9c035db0cc6e4fa83811999e8a83b3faed2ea95bcbdad158486e583ea9d707595d2342f83d0c25f6a5c086a8070c714253e2db09fcaf43de1616d46cda SHA512 facc15beb82744a1b8baf29e0d8f06625e8d4ee4ed7ab5f1b131ad9d44134215651d1c6b19493c83532f612d81752df14aec2dbccc73cb5b994e0bafcaf5bbc2
DIST deepdiff-8.0.1.tar.gz 427721 BLAKE2B 0725a87ef17f9e1984594ccca7d954d608cfa0a6ea2c17b03d679bf5cd67135a1c5e3f21d749c18f1f91a5537e9ddaf179fb5b0a5ea135776415f5c0d82be274 SHA512 240662fb3e2408383fae4f6d4e5707357285e0058828d754dd09a94d1ccc29b854381a542dc2042842c79a57307b02d9ad009cc3106b35b0058612fabc0bcf96
+DIST deepdiff-8.1.1.tar.gz 433560 BLAKE2B 6f3e5b667c20aa0b622a199bce3fd07faf3cdd53ba6acc308c3700091bb9a5309e100517d7b508b94d01430096761f32aff7678452a665bcaea3577d734a7fea SHA512 6869e6e70ecee72073f979d84f28766c1f84b41c49057caa0facebeaf747751f4e2626c886d6f82f8d54a4a7356b0a6a07f979a87716aaccc41a40fe18d9c219
diff --git a/dev-python/deepdiff/deepdiff-7.0.1.ebuild b/dev-python/deepdiff/deepdiff-8.1.1.ebuild
index d2ab55cb23d5..50ac5902562b 100644
--- a/dev-python/deepdiff/deepdiff-7.0.1.ebuild
+++ b/dev-python/deepdiff/deepdiff-8.1.1.ebuild
@@ -19,8 +19,10 @@ SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
- >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
>=dev-python/click-8.1.3[${PYTHON_USEDEP}]
+ <dev-python/orderly-set-6[${PYTHON_USEDEP}]
+ >=dev-python/orderly-set-5.2.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
"
DEPEND="
@@ -39,16 +41,12 @@ DEPEND="
distutils_enable_tests pytest
python_test() {
- local EPYTEST_DESELECT=()
-
- case ${EPYTHON} in
- python3.13)
- EPYTEST_DESELECT+=(
- # changed exception message
- "tests/test_command.py::TestCommands::test_diff_command[t1_corrupt.json-t2.json-Expecting property name enclosed in double quotes-1]"
- )
- ;;
- esac
+ local EPYTEST_DESELECT=(
+ # benchmarks
+ tests/test_lfucache.py::TestLFUcache::test_lfu
+ # requires polars
+ tests/test_hash.py::TestDeepHashPrep::test_polars
+ )
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest
diff --git a/dev-python/elasticsearch/Manifest b/dev-python/elasticsearch/Manifest
index 2b16c77b327e..7b54179b45e9 100644
--- a/dev-python/elasticsearch/Manifest
+++ b/dev-python/elasticsearch/Manifest
@@ -1,3 +1,5 @@
DIST elasticsearch-py-8.14.0.gh.tar.gz 1092912 BLAKE2B 4ee556bc475d63e33cec318936b2dbf8b280236bcdfe28bc90a4beb7e1d024b8d63180c29e42096cb32bf3da7c771532c57190d763651118603779f816e95656 SHA512 9e9821102659b4c877959e25c33e1b1942f6eabe62bb6de73cda4875c248b0f9285d948e535e9426ca42552f7aa3e75c459f991bfa574c1d8400d78486ee5493
DIST elasticsearch-py-8.15.0.gh.tar.gz 1163528 BLAKE2B 8ee26e504f09b4ed2ccd695c034f5e35bdc609c1de7055b1f93f279edc7b3b6ac72625e8645c25d126481d7d877a197ecb8d7b35771841b412291caa42d4ee5f SHA512 7982f8366d7b74c85fdcaf4761fcbd9e6e14f0ef2a4aff353bad0b5bbedf7251eabf933e86f1dc9734de0aa6d43a30e1f055cd3b9c7ff2c7864da8779f64bfbc
DIST elasticsearch-py-8.15.1.gh.tar.gz 1536398 BLAKE2B 459bebd94fdfe1c30e8e7e996de8ab3495e6f3341cd59ced6cb066065d21de751dc54d764455d2e7accdb6af9ea00f47e7c6a2c1e5af125cfe64a6e0b8f9e2cc SHA512 3e544187ca530932c730ada304d4c3f36c1c7561c1f53f6b35793c1ad7e9d95ffb435228e3fad76e746e6b2624e2d3bfe5c4036d06c72f5f2d625e4a557dd28d
+DIST elasticsearch-py-8.16.0.gh.tar.gz 1569493 BLAKE2B 467c264af1dd1ce9bf63c0e3f9c8eabecc34dc3b3e51598bfd050230cb7e2bd56bc209ad146785a5ea310752e81c61d80c708b39167a12a0cc73214370e95a0e SHA512 dafca178603b2e681ed52c39f8e0864481ed55c6d01924498d9d1e5f425482291e2b81ffa1e9e7e6bfd86b6424b6703dbcd5971e729b521e81ce3e2ffeb0bd27
+DIST elasticsearch-py-8.17.0.gh.tar.gz 1604639 BLAKE2B 94363d23606ec820fbc4608ad8319a2753f04f6a250204ec91662772712079ac56d63ef630780fc19f20e9b0527ceea4db2c3d7c4db98c7e4410d5ce67751a6f SHA512 2239fe52a49387988903d574e33d2f5aedf077beb9c00c46a725af942289f0b0522aef462fb8ee43b078594e4af65b3b14b2fdaefea076ddd1dad8ca0a306843
diff --git a/dev-python/elasticsearch/elasticsearch-8.16.0.ebuild b/dev-python/elasticsearch/elasticsearch-8.16.0.ebuild
new file mode 100644
index 000000000000..9aa718d9a151
--- /dev/null
+++ b/dev-python/elasticsearch/elasticsearch-8.16.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+MY_P="elasticsearch-py-${PV}"
+DESCRIPTION="Official Elasticsearch client library for Python"
+HOMEPAGE="
+ https://ela.st/es-python
+ https://github.com/elastic/elasticsearch-py/
+ https://pypi.org/project/elasticsearch/
+"
+SRC_URI="
+ https://github.com/elastic/elasticsearch-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/aiohttp-4[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-3[${PYTHON_USEDEP}]
+ <dev-python/elastic-transport-9[${PYTHON_USEDEP}]
+ >=dev-python/elastic-transport-8.15.1[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/mapbox-vector-tile[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-api[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-sdk[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pyarrow[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ dev-python/unasync[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # REST api tests are a black hole for effort. It downloads the tests
+ # so its an ever moving target. It also requires effort to blacklist
+ # tests for apis which are license restricted.
+ "test_elasticsearch/test_server/test_rest_api_spec.py"
+ # Counting deprecation warnings from python is bound to fail even
+ # if all are fixed in this package. Not worth it.
+ "test_elasticsearch/test_client/test_deprecated_options.py"
+ # Running daemon for tests is finicky and upstream CI fails at it
+ # as well.
+ "test_elasticsearch/test_server/"
+ "test_elasticsearch/test_async/test_server/"
+ )
+
+ local -x TEST_WITH_OTEL=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p asyncio
+}
diff --git a/dev-python/elasticsearch/elasticsearch-8.17.0.ebuild b/dev-python/elasticsearch/elasticsearch-8.17.0.ebuild
new file mode 100644
index 000000000000..9aa718d9a151
--- /dev/null
+++ b/dev-python/elasticsearch/elasticsearch-8.17.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+MY_P="elasticsearch-py-${PV}"
+DESCRIPTION="Official Elasticsearch client library for Python"
+HOMEPAGE="
+ https://ela.st/es-python
+ https://github.com/elastic/elasticsearch-py/
+ https://pypi.org/project/elasticsearch/
+"
+SRC_URI="
+ https://github.com/elastic/elasticsearch-py/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/aiohttp-4[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-3[${PYTHON_USEDEP}]
+ <dev-python/elastic-transport-9[${PYTHON_USEDEP}]
+ >=dev-python/elastic-transport-8.15.1[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/mapbox-vector-tile[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-api[${PYTHON_USEDEP}]
+ dev-python/opentelemetry-sdk[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/pyarrow[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ dev-python/unasync[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # REST api tests are a black hole for effort. It downloads the tests
+ # so its an ever moving target. It also requires effort to blacklist
+ # tests for apis which are license restricted.
+ "test_elasticsearch/test_server/test_rest_api_spec.py"
+ # Counting deprecation warnings from python is bound to fail even
+ # if all are fixed in this package. Not worth it.
+ "test_elasticsearch/test_client/test_deprecated_options.py"
+ # Running daemon for tests is finicky and upstream CI fails at it
+ # as well.
+ "test_elasticsearch/test_server/"
+ "test_elasticsearch/test_async/test_server/"
+ )
+
+ local -x TEST_WITH_OTEL=1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p asyncio
+}
diff --git a/dev-python/mkdocs-material/Manifest b/dev-python/mkdocs-material/Manifest
index 9eb517eb3e19..ad301f48b265 100644
--- a/dev-python/mkdocs-material/Manifest
+++ b/dev-python/mkdocs-material/Manifest
@@ -2,3 +2,4 @@ DIST mkdocs-material-9.5.45.gh.tar.gz 14703865 BLAKE2B a48e2e00bf0c1511e58e3f621
DIST mkdocs-material-9.5.46.gh.tar.gz 14708818 BLAKE2B 3aed540e20f588f2cb08c94a2323e5311de5edd1467a7bfe1dbabfa81c69ed50875cab5d85aaa874648966bec4acea265a316004683b60b16703a6548aa1464e SHA512 f75bc96590f30c2109fa3ea915b91bd4cad50a4ce3d374fd162ee6178672f3acf812c9e98c348556a212587df935db1126ab2d1fe1f18cfdc3bd1f52efafa859
DIST mkdocs-material-9.5.47.gh.tar.gz 14708561 BLAKE2B ea3ac2df6f88d3c9b8ebd9bbbe5b6d0bf826fe3ebe733f8a84d532becbbfa66e0c11aa069da9571810593405d91e5d4e45ea0aad158ca1a956cb18c9f7fa9f13 SHA512 3ccce10161552c70276255a25e4467064de4adc92e38ec77e244ae140e9e58fa95144c5667116de89b41807df875ad3bb988685eec37e1285534367a6b4e9d76
DIST mkdocs-material-9.5.48.gh.tar.gz 14739591 BLAKE2B c59affcf722f6494d601c054eec02893a11b2f2459fec366c500cdbac8f56ace693b8c65a31744b7bf1ad68752e709e59f1fa3cb1fcf3e331a97bc3161d3964d SHA512 ffb9db1d4edcba7d2f1fc62dba303a98342c4f5a7b0ac8c8baeca8c29f38b1dd0bbf2ae29dcdae80ad4a591b781184f4335f867c1d75f0993ff9d40033535a27
+DIST mkdocs-material-9.5.49.gh.tar.gz 14750118 BLAKE2B dfa64a6e61363edc8829a5a97c7990d59e1f48d1a11c60085396471f38f3dbe5930550b0859c06ee2d7d3d5c593b7eeddd755cff765847fbc998c8ad1852fa19 SHA512 7b2121fcf5aeace241ccaa8c4d97cd1492fcf0b2c829945656beb140a2f132955cc80b5448e6ceee932fcacec3870deca693411152ef2ceec3032d30a688ac11
diff --git a/dev-python/mkdocs-material/mkdocs-material-9.5.49.ebuild b/dev-python/mkdocs-material/mkdocs-material-9.5.49.ebuild
new file mode 100644
index 000000000000..c99fc052adb8
--- /dev/null
+++ b/dev-python/mkdocs-material/mkdocs-material-9.5.49.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+DOCS_BUILDER="mkdocs"
+DOCS_DEPEND="
+ dev-python/mkdocs-material-extensions
+ dev-python/mkdocs-minify-plugin
+ dev-python/mkdocs-redirects
+"
+
+inherit distutils-r1 docs
+
+DESCRIPTION="A Material Design theme for MkDocs"
+HOMEPAGE="
+ https://github.com/squidfunk/mkdocs-material/
+ https://pypi.org/project/mkdocs-material/
+"
+SRC_URI="
+ https://github.com/squidfunk/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="social"
+
+RDEPEND="
+ >=dev-python/babel-2.10.3[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.6[${PYTHON_USEDEP}]
+ >=dev-python/markdown-3.2[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-1.5.3[${PYTHON_USEDEP}]
+ >=dev-python/paginate-0.5.6[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.16[${PYTHON_USEDEP}]
+ >=dev-python/pymdown-extensions-10.2[${PYTHON_USEDEP}]
+ >=dev-python/readtime-2.0[${PYTHON_USEDEP}]
+ >=dev-python/regex-2022.4.24[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.26[${PYTHON_USEDEP}]
+ social? (
+ >=dev-python/pillow-10.2[${PYTHON_USEDEP}]
+ >=media-gfx/cairosvg-2.5[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ >=dev-python/trove-classifiers-2023.10.18[${PYTHON_USEDEP}]
+"
+# mkdocs-material-extensions depends on mkdocs-material creating a circular dep
+PDEPEND="
+ >=dev-python/mkdocs-material-extensions-1.2[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ # simplify pyproject to remove extra deps for metadata
+ "${FILESDIR}/${PN}-8.5.7-simplify-build.patch"
+)
+
+src_prepare() {
+ echo "__version__ = '${PV}'" > gentoo_version.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 0c7d9669d549..25693ec939c5 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -1 +1,2 @@
DIST openstacksdk-4.1.0.tar.gz 1233207 BLAKE2B d7473caa09e2ce7b4a91690a43adfd7e4aeb04e56be68f50cccce74b39368460656148656d540389538ad671205b752da0826ce74dbbf2c4078c0f999224853c SHA512 38a077d487cbdaf22e33a7dacb06ccd78145caba9a5c69afd3be49d742c87ae642440b331ececcdeb331f2d0040e49ba5f707be83972db1671728008ecd2df09
+DIST openstacksdk-4.2.0.tar.gz 1236489 BLAKE2B bf45026569535dea61798583e8988e59be403e5835eafaae6f0ff206e26e07f67c1e32ea518f2d55c6e32c91c3c372def025c561f720e78fb11cc76eba70bdb3 SHA512 2e4ef9a853b74645816affa40d57aa71cdbc50ee09d14bddff5314966d8cf35eb1179df4b58ea14f225edf597da2cdffaf11c28a25ba79549dd7d1b837d01879
diff --git a/dev-python/openstacksdk/openstacksdk-4.2.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.2.0.ebuild
new file mode 100644
index 000000000000..a458d65c9fdc
--- /dev/null
+++ b/dev-python/openstacksdk/openstacksdk-4.2.0.ebuild
@@ -0,0 +1,91 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A collection of libraries for building applications to work with OpenStack"
+HOMEPAGE="
+ https://opendev.org/openstack/openstacksdk/
+ https://github.com/openstack/openstacksdk/
+ https://pypi.org/project/openstacksdk/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
+ >=dev-python/decorator-4.4.1[${PYTHON_USEDEP}]
+ >=dev-python/dogpile-cache-0.6.5[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonpatch-1.21[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.18.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3[${PYTHON_USEDEP}]
+ >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+ >=dev-python/requestsexceptions-1.2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pbr-2.2.0[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/ddt-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-6.1.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus-client-0.4.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/statsd-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Internet?
+ sed -e 's:test_create_dynamic_large_object:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+
+ # TODO
+ sed -e 's:test_generate_form:_&:' \
+ -e 's:test_create_static_large_object:_&:' \
+ -e 's:test_object_segment_retries:_&:' \
+ -e 's:test_object_segment_retry_failure:_&:' \
+ -e 's:test_slo_manifest_retry:_&:' \
+ -i openstack/tests/unit/cloud/test_object.py || die
+ sed -e 's:test_servers:_&:' \
+ -i openstack/tests/unit/test_stats.py || die
+
+ # unhappy about paths due to test runner
+ sed -e 's:test_method_not_supported:_&:' \
+ -i openstack/tests/unit/test_exceptions.py || die
+ sed -e 's:test_repr:_&:' \
+ -i openstack/tests/unit/test_resource.py || die
+
+ # requires hacking
+ rm openstack/tests/unit/test_hacking.py || die
+
+ # fragile warning-based tests
+ sed -e 's:test_unsupported_version_override:_&:' \
+ -i openstack/tests/unit/test_missing_version.py || die
+ sed -e 's:test_create_unknown_proxy:_&:' \
+ -i openstack/tests/unit/test_connection.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstack/tests/unit
+}
diff --git a/dev-python/python-json-logger/Manifest b/dev-python/python-json-logger/Manifest
index 97df9f82cfe9..975c921f6109 100644
--- a/dev-python/python-json-logger/Manifest
+++ b/dev-python/python-json-logger/Manifest
@@ -1,2 +1,3 @@
DIST python-json-logger-2.0.7.tar.gz 10508 BLAKE2B 818abaa8007db2226beb7e9f9b6326c4c59e11827c740496bfde491a495b8580b74c483b4bead58525942009ae84643758b8fec4dc0ba85e2c1c2deff2445bcf SHA512 a3056f6c07386410204e65d027504df49d890b5c4577a0460077bc698c9104ab8720d6db107153766611f4f22141c0b2b57dbdacba75a7078638945937922f5e
DIST python_json_logger-3.2.0.tar.gz 16160 BLAKE2B 076eb8b5c54f47b774eb093ccc3ff9aabf453a57e841ff2d19670ef92fe3928f9820fb2edecf81b570dc08c5a9b0c073f78e6b4c6d1abdde1995f24d27852b74 SHA512 dcb819634e8ff5e694777f9386ee264bb3978d89ddc873aac5b51a7694e9cb78a3920881d6fa3832f6c94c9648fdec6c39d5d8c9b8cc00f7ed8fa0c2317d4221
+DIST python_json_logger-3.2.1.tar.gz 16287 BLAKE2B 7c25119202e8b1c98ef97a27670290151de0edbcf7b0d4b8aae733e379d53d0747df1306677c669d33d4b83259341b2ae74b322a578703e9268bc307d4cc2a65 SHA512 731ee10223c688602f1c89800cdd8f6045917239d796a08dd8317a210b98e02afb4d894c74d897675ad526112e46534570e78a8d3686b4c2009f2b4c41b925b2
diff --git a/dev-python/python-json-logger/python-json-logger-3.2.1.ebuild b/dev-python/python-json-logger/python-json-logger-3.2.1.ebuild
new file mode 100644
index 000000000000..4556b6b8e779
--- /dev/null
+++ b/dev-python/python-json-logger/python-json-logger-3.2.1.ebuild
@@ -0,0 +1,33 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Standard python logging to output log data as json objects"
+HOMEPAGE="
+ https://github.com/madzak/python-json-logger/
+ https://pypi.org/project/python-json-logger/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/tzdata[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/python-multipart/Manifest b/dev-python/python-multipart/Manifest
index 567ac52bf5be..90d0120e9eb3 100644
--- a/dev-python/python-multipart/Manifest
+++ b/dev-python/python-multipart/Manifest
@@ -1,2 +1,3 @@
DIST python-multipart-0.0.18.gh.tar.gz 95540 BLAKE2B fb68867f6035ee463c69c89df6b792bd8506df03386a1d61f223aa0fb63c2e6604c76377e9c356e55280c39e20052eced7c48869cf9661980626586054379ae9 SHA512 d4b888d95cbbbb70a66a8d756dfa479e96bf9cb7e754f8630a89e63dbdc06a9e237dd257c5924618030bfd03737d202029bbd5b50e483f72680177d3b0775629
DIST python-multipart-0.0.19.gh.tar.gz 95805 BLAKE2B fcd22b383aab09cc9dd1eaf6b6859d406b3439fbfe3460761f147ab8230f4cae118e44d3f3f067c03d4ff508b655c8f84d120765e233c87ae11b014d2d544051 SHA512 cd4f1dc7b5b2e4b29dbccb62f71143dc5ecfad419c12aca2d780d8ef0f3fcc1ef9f7e129b56daa48caef04c95e2e365157b9d945a2e40a5693ba70b2d1d80686
+DIST python-multipart-0.0.20.gh.tar.gz 96069 BLAKE2B 64fa4e24c7df40ad6a8e84f5a862df47f5df9c9f2821394781a6b689bf79ac07d13779442bfe9486209c86bd1dc778d4b5f925b0098b7380dcb0a6194699769d SHA512 9e59fc38413da38429e9fab15105d20103da820437a059082dfed588423fb4a2ec10abd7742e65c3778e7e5e5aba346936900d9dbe49c73518eaa30b24842203
diff --git a/dev-python/python-multipart/python-multipart-0.0.20.ebuild b/dev-python/python-multipart/python-multipart-0.0.20.ebuild
new file mode 100644
index 000000000000..1014160be7d0
--- /dev/null
+++ b/dev-python/python-multipart/python-multipart-0.0.20.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="A streaming multipart parser for Python"
+HOMEPAGE="
+ https://github.com/Kludex/python-multipart/
+ https://pypi.org/project/python-multipart/
+"
+SRC_URI="
+ https://github.com/Kludex/python-multipart/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not install the backwards compatibility package
+ # we're patching revdeps instead
+ rm -r multipart || die
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/pyupgrade/Manifest b/dev-python/pyupgrade/Manifest
index 7cc31bb52b11..a4ef48e0b32b 100644
--- a/dev-python/pyupgrade/Manifest
+++ b/dev-python/pyupgrade/Manifest
@@ -1,2 +1,3 @@
DIST pyupgrade-3.18.0.gh.tar.gz 66227 BLAKE2B e788e3ce2b7f67fb8af62e430c6702b60729e6d7310085f785db8262e54429b11f25c95f922a3e51b2bcbc5120221ba00ef27a96f03ec4bd76d98c876a45fa43 SHA512 16a13f38ab422cb36eb3ac7546064b7c524bb746a7828c871ed67548dab57f97f22c80e9f89b520a763ae6b87dec78c7b7454dff74db7425157bf30d8e950ba4
DIST pyupgrade-3.19.0.gh.tar.gz 66259 BLAKE2B 4bc4f519ae6a7d7473f66393383e0b26fab753e0e2dec347e46a69e06ff388fc2ead8c22db64711c39b46ada3822eefb53d6530ae61dfe81b14f745dec0f461c SHA512 6679887a458d03932538a617ea23e16324a2e40de1680bb56139a76e59f9d3adb226fdc20f56b1022d9ca7221beb6a92186e5027cf598682fbbb40b6dee80532
+DIST pyupgrade-3.19.1.gh.tar.gz 66379 BLAKE2B 393bf5343e1ca004474d3a0d3e7866fe9a5a9d0a346a375451130c925b9b0a11808e629340d0a1ca69da772ea30f161629974b80cfcbd6e0a3cb086694bb9432 SHA512 383cf36c5efd1e195de58695493ca4b6ce0e55d852cca1605e9a7d1e96812faae871ced1fb6ea1f44390b631eab8cc5d07100645df64cee0d22c35faf10c6f12
diff --git a/dev-python/pyupgrade/pyupgrade-3.19.1.ebuild b/dev-python/pyupgrade/pyupgrade-3.19.1.ebuild
new file mode 100644
index 000000000000..4c2d6de9cec9
--- /dev/null
+++ b/dev-python/pyupgrade/pyupgrade-3.19.1.ebuild
@@ -0,0 +1,30 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Tool + pre-commit hook to automatically upgrade syntax for newer Pythons"
+HOMEPAGE="
+ https://github.com/asottile/pyupgrade/
+ https://pypi.org/project/pyupgrade/
+"
+# no tests in sdist, as of 3.3.2
+SRC_URI="
+ https://github.com/asottile/pyupgrade/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/tokenize-rt-6.1.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/zenlib/Manifest b/dev-python/zenlib/Manifest
index f6d6774c2e8c..764953517771 100644
--- a/dev-python/zenlib/Manifest
+++ b/dev-python/zenlib/Manifest
@@ -1 +1,2 @@
DIST zenlib-2.4.1.gh.tar.gz 21281 BLAKE2B e6a4005d7e5db95ccc18ecb87c10180e148bcf0a860923ac71177c90d448186247e08eee9f2c5dcb7e0803536dc07bfa3137b363a410ea2e03f875c4096fdadc SHA512 a8ceadbda243583ebe45fb56a4a72d2693505d9123346b3a140ccb16ed7de85d60caafffac0274e3f6289b0b82a82643feba039d85ea4f159fb259c7bdd46725
+DIST zenlib-3.0.0.gh.tar.gz 20556 BLAKE2B 9912a8532051028b6f19e463ddde0120d28ee844a31a33987736fc2f7dce334394275b24f469b21adbea4295124531d188fdf3ef646536ff3db1a0f9838b475a SHA512 052c5f5f620529b5de3c3903d64ef57e590cd9d104ea8ace39137fefa894784251895b973276d53cefaaf711c3c83170da6c97e4f408c0f3a94da813cf3acfae
diff --git a/dev-python/zenlib/zenlib-3.0.0.ebuild b/dev-python/zenlib/zenlib-3.0.0.ebuild
new file mode 100644
index 000000000000..86ec550ccfbe
--- /dev/null
+++ b/dev-python/zenlib/zenlib-3.0.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Useful python decorators and utilities"
+HOMEPAGE="https://github.com/desultory/zenlib/"
+SRC_URI="
+ https://github.com/desultory/zenlib/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+distutils_enable_tests unittest
+
+python_test() {
+ eunittest tests
+}