summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2024-12-17 04:18:23 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2024-12-17 04:18:23 +0000
commitc717cf15f3bc5916d75034404a35bba8094b9e80 (patch)
tree89c7b163ee489fd286735a4fec383d421f2be786
parent2024-12-17 04:03:28 UTC (diff)
parentdev-python/elasticsearch: Bump to 8.17.0 (diff)
downloadgentoo-c717cf15f3bc5916d75034404a35bba8094b9e80.tar.gz
gentoo-c717cf15f3bc5916d75034404a35bba8094b9e80.tar.bz2
gentoo-c717cf15f3bc5916d75034404a35bba8094b9e80.zip
Merge updates from master
-rw-r--r--dev-python/attrs/Manifest1
-rw-r--r--dev-python/attrs/attrs-24.3.0.ebuild33
-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/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
-rw-r--r--x11-libs/xcb-util-xrm/xcb-util-xrm-1.3-r2.ebuild (renamed from x11-libs/xcb-util-xrm/xcb-util-xrm-1.3-r1.ebuild)4
18 files changed, 429 insertions, 14 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..f1dd9fbe35f2
--- /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_{10..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/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 6f08b38d1d7c..81dc7f4d69c5 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..0db4238a86a8
--- /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_{11..12} )
+
+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..0db4238a86a8
--- /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_{11..12} )
+
+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/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..046e9dd2bf3e
--- /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_{10..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..2b11127f7179
--- /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_{10..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..5f4588cbad96
--- /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=( pypy3 python3_{10..13} )
+
+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..52e6f1cbf950
--- /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_{10..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..cd63c6cb8120
--- /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_{11..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
+}
diff --git a/x11-libs/xcb-util-xrm/xcb-util-xrm-1.3-r1.ebuild b/x11-libs/xcb-util-xrm/xcb-util-xrm-1.3-r2.ebuild
index 8bda1a04bbb9..f020851ebb61 100644
--- a/x11-libs/xcb-util-xrm/xcb-util-xrm-1.3-r1.ebuild
+++ b/x11-libs/xcb-util-xrm/xcb-util-xrm-1.3-r2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
XORG_MULTILIB=yes
inherit xorg-3