summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-18 03:01:55 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-18 03:01:55 -0500
commitbddf78c69012b9c1c06816f37d538d44d7877365 (patch)
tree3fc74b4dbb8c9348a6300843c7d65b9ee5bee0ff /dev-python
parent704b2332929c5ee3a704315e1b371a864f9f463e (diff)
downloadbaldeagleos-repo-bddf78c69012b9c1c06816f37d538d44d7877365.tar.gz
baldeagleos-repo-bddf78c69012b9c1c06816f37d538d44d7877365.tar.xz
baldeagleos-repo-bddf78c69012b9c1c06816f37d538d44d7877365.zip
Adding metadataHEADdevelop
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/bitarray/Manifest1
-rw-r--r--dev-python/bitarray/bitarray-3.8.2.ebuild24
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.32.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.32.ebuild67
-rw-r--r--dev-python/fakeredis/Manifest2
-rw-r--r--dev-python/fakeredis/fakeredis-2.36.2.ebuild141
-rw-r--r--dev-python/greenlet/Manifest1
-rw-r--r--dev-python/greenlet/greenlet-3.5.2.ebuild47
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.20.0.ebuild68
-rw-r--r--dev-python/jupyterlab/Manifest1
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.5.9.ebuild76
-rw-r--r--dev-python/openstacksdk/Manifest1
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.16.0.ebuild94
-rw-r--r--dev-python/pypdf/Manifest1
-rw-r--r--dev-python/pypdf/pypdf-6.13.3.ebuild53
-rw-r--r--dev-python/pyproject-fmt/Manifest4
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild113
-rw-r--r--dev-python/svglib/Manifest2
-rw-r--r--dev-python/svglib/svglib-2.0.1.ebuild37
-rw-r--r--dev-python/tqdm/Manifest2
-rw-r--r--dev-python/tqdm/tqdm-4.68.3.ebuild43
-rw-r--r--dev-python/tzlocal/Manifest1
-rw-r--r--dev-python/tzlocal/tzlocal-5.4.3.ebuild22
26 files changed, 857 insertions, 0 deletions
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
index 8cbc7ac53451..25cea4fa7958 100644
--- a/dev-python/bitarray/Manifest
+++ b/dev-python/bitarray/Manifest
@@ -1 +1,2 @@
DIST bitarray-3.8.1.tar.gz 152471 BLAKE2B be95b93ca030837253baf0172a3a93d9995be58da742371e24641a62d7b03008f19198c5d799cca8c848c55c8ebee10c463454147375799d5e2c9d0315421bd0 SHA512 ae471b099fcc10b3d37c16934aaadaf2e9bab06295a1ae5c948b792cfcd0e5fbaa4f37c01dad120a005785f65e981cad288e88d4a7fd3d58d7170e8b19fad759
+DIST bitarray-3.8.2.tar.gz 153516 BLAKE2B c643c2152bf8533a97b6f93116446958927a8ec0f73f191e7e48ed262beda701050231a33e23f96cd3e1f915c2b8e1f807e3105456dd370e7c3c0383d8b41a89 SHA512 fed909f53005b747c0df2cb2a3bbe64a76fc29f8cfe11ee93d441d694378dd42993ade28acb14b9d12efec73339536294806e1a8e8a9390a5c868557b7a7c344
diff --git a/dev-python/bitarray/bitarray-3.8.2.ebuild b/dev-python/bitarray/bitarray-3.8.2.ebuild
new file mode 100644
index 000000000000..93b1ff66517e
--- /dev/null
+++ b/dev-python/bitarray/bitarray-3.8.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Efficient arrays of booleans -- C extension"
+HOMEPAGE="
+ https://github.com/ilanschnell/bitarray/
+ https://pypi.org/project/bitarray/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+python_test() {
+ "${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 8c5e6a9d6e6a..9d2b9c433ef4 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,4 +4,5 @@ DIST boto3-1.43.24.gh.tar.gz 1156465 BLAKE2B 52937853e047217550a0cad9ee09e61f8d5
DIST boto3-1.43.29.gh.tar.gz 1161648 BLAKE2B 3f0a040019fd8ea2a42a82c75bf31e563ef1e74745e3848f59fd8e1eb9946c5470cce0ece81d602cdd104e1d1a0cce68460a0ad993b47cb9d25b40fa3963b9e0 SHA512 c52a78f22daf6b79d772f5661cb56a4c1c35a7ad0001742d84d1c3f308c10534377ade5618bb5a3f95d0c7b4aacc82f42c10a30e521b31d41b9a403adbee1560
DIST boto3-1.43.30.gh.tar.gz 1162726 BLAKE2B fe0050e7ef6187bc9bd96f90e05a216cfc80ddba18c7913548d9371530b8c900d32babd42c20e584f49b36996d13a25a6dbff44ffdb5e6691fbd3884815d2653 SHA512 7ba475dfff395d1d6ba3113a967f090650d75a6e4cfb01f0e2abc157b64b90ba00600501b76a9910fc4586f4480301dca07b304a5c98d6d6ecb555435e0929ba
DIST boto3-1.43.31.gh.tar.gz 1163677 BLAKE2B 708e4f4b96f9bca483fdb2febda4d482c6ccd26afdd818cb57e8c8915c8cc75ea3ea05d03e488e3c076bff1021bb381e824de02b8ceacac5beab155047a6cf07 SHA512 c8dad5e0a76143225f2069c999e3b1679a71f255277fa2d019c4d4d7b7df5e9d39c0997de8544bdeb40c4c0a78981643050edfbe47cba9a133fa743596a96e11
+DIST boto3-1.43.32.gh.tar.gz 1165416 BLAKE2B b9de6a5e1f1ead2ff872059b67214d94a14709c44d18dd89733f6eaf700cc2bfce21b6c4664b78f26b96031dc54c0cb21e2d695919244e66fc0d595c86405a5a SHA512 97604f3d6b7b9aa18ad735c4d1ff9eb7040bead20de7a3fe57ff4d20e4e1396f7f5b5d27b885daa041d3471b2e394a2067bde6b8745e049ddf310ba178e60d72
DIST boto3-1.43.9.gh.tar.gz 1141698 BLAKE2B 37721c03d15d8cc7d290dcf9e56c5a83d480379514b0504a5164ab0dcec1211f3df001a966562f5f69e94325ccd42bc0da787121c68b75419fa45913feb5a4e6 SHA512 a130960634934428ab43845f69a2997638077c3bf856e12b00637dcd995dd835ad0a01eedd0a25d003d7c3e4515077c5ff19f90d289f5fe3c8bf5d837a629d09
diff --git a/dev-python/boto3/boto3-1.43.32.ebuild b/dev-python/boto3/boto3-1.43.32.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.32.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index e37c3c965a26..ac2e2e30ec60 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,4 +4,5 @@ DIST botocore-1.43.24.gh.tar.gz 16430918 BLAKE2B 526fc9ab71c37cbae5a6b23a0c0bb7e
DIST botocore-1.43.29.gh.tar.gz 16476072 BLAKE2B 2525545c2425568e8765100bad446e2ddb7c4ea80f78d52827456a368a4da68ad5e86c60ef6af5611a342e2c8b44c8a057d341941db31d6b1c6cd01506b912b3 SHA512 6d37f50ec4ace4252e7d303e9ddaac8571e28695beadf3d7c23f3d1f413bcc06734e88be6f834d8ef82b3583954b8acc7da325630ae4cce7371684957f3547ae
DIST botocore-1.43.30.gh.tar.gz 16486799 BLAKE2B 222aa0d179e48243317f78f828e1d897b4fd1e8cf5848963d47c2dabfb05890d79a10cd1d3b448661e36c116e94d9c28f6cad48a7e8c4053b1bb655082e6ca13 SHA512 a9e9ba3e57f0c71a654c226633afe4fa699c798c4ddcedd3c0c66238bc2c9d1a27e404e27d691865d558b17b6ea63b483ea326369b5c94a4673a9a3f32d89bcd
DIST botocore-1.43.31.gh.tar.gz 16506820 BLAKE2B 6b28f96c1fc09f9789bfaa3facdc1afc8e4e1bae7750a91b20d6e4e243cb2a3dfbb9a43371de3313bbdb7c7a53e5d6603d56084d6dd204ce48f8c4f7ebdcc2da SHA512 eac8482458d6bfab2e25ce181880068809942b967d275133961d433eb9247c85d51060a2c7b56002d1fe13f4a572387b6b5cbac173b65322675a9b15b0251651
+DIST botocore-1.43.32.gh.tar.gz 16547131 BLAKE2B 8eed11508d11c6825ca4db693eb7e2d4a72deaf99b4200a209c3e376eec6f4ac16290f87679fe311911f62f2ce7ee8256f35b22dfa42010d4f61f1037f37f827 SHA512 ac6d548ca08674fcfcb9744cd9da792bfb60e9b6b3167ace49040974be2ea3c7ed74e70683c86652017b38df5dbe97bbbbef7bc205b282d58e23e84d3c423829
DIST botocore-1.43.9.gh.tar.gz 16299354 BLAKE2B fcb35ec47d892c36c319a14e62ffedec51fe48ad68beeb2e527c3f282647a5f980a182c8d66ff12a69a45e4c137f1f486b0056345cfeb2c1e52b03b76df5015c SHA512 20033802430564aa77607a0c042511c7831c75f92240da388aaf036d90969f5560b9cb5dbb01f590b95cc9a2039557fd3f540fd6c4170104d732d033e142c08a
diff --git a/dev-python/botocore/botocore-1.43.32.ebuild b/dev-python/botocore/botocore-1.43.32.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.32.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest
index 2c6a1493a639..4f8671a3af00 100644
--- a/dev-python/fakeredis/Manifest
+++ b/dev-python/fakeredis/Manifest
@@ -4,3 +4,5 @@ DIST fakeredis-2.36.0.tar.gz 209484 BLAKE2B a8b29331c923aa0b9194ff1416d2ca59d5f9
DIST fakeredis-2.36.0.tar.gz.provenance 9846 BLAKE2B 0441207c408eb0688aaf5b2e51521ea5d3764b2ab8923aac64f9b87c06da566052d7305cc6336e313f9fd9ff8dd3ec414f913027864169272b9ae634e6388231 SHA512 ed5b13ebfd9661a0643d97059baaf5535271e9fab2fd9877af8dd21c1bb28f67e176bc975e78056cc04930bbf81e6db963ea613a54f326b9582ca4b47aade9d6
DIST fakeredis-2.36.1.tar.gz 210959 BLAKE2B bfbf4d397707a8d5cbb4a94fc4d89b814c4367ef20b894033301b640186ba6846a4102e580be103954fc04f53bb7f1aac0c9976dcfc62f0b9ffac8c5fc6e3405 SHA512 2eaa78273f2a7e1f11d4ccf8937406a81d546671e3bcb70e821ae8f80caf1b38cac908a127c0a7710fc12c50188fe2234b0fea510718fd1f463dcfb5aab1f3d5
DIST fakeredis-2.36.1.tar.gz.provenance 9944 BLAKE2B f20fb9ad9027e4fd3fae7b37bd9cfaf0112b01c6ac1218506bee74e6aa7f8683d73740e00bd46bba54d0d0b48c266967ec93bf1533c588fe3753afe20c6895f0 SHA512 d2f129e81474f472b5a5437245a176840c935fc4d28e80f90510290c48acd02bbdbcc44a29793b8342a40fead5ba3906542ff6c0837807f5acb7b3d450bca724
+DIST fakeredis-2.36.2.tar.gz 213336 BLAKE2B 23c6333b945ff35d482c9b04b81e067106f01492e16336f0cb40406f20bb664d66325f2ee2d1db95e2d7157127c12fbb21d18ffcb4c42da4aba1ef0cbbafc67b SHA512 1ed183da851bd0285877fe70f17a47272637230257878ca8d2fd242066311e14112d83eb5da1ec9d30f2e740b80967065abf5eb63efd5378c685355f8757a6f1
+DIST fakeredis-2.36.2.tar.gz.provenance 10085 BLAKE2B 15ceb7fb92e07a882c3b313d62b39bb30032bc4f951b84903cd969d4905fc987fb3267f0ef0d1a7913b72a10cb4d3f091d15a20f4bc04da0809724247bb447e3 SHA512 b03494bd124e64dd11da4256a8d994a9fb4fe779b3fce08f242c49a7518261623495300a97cb6a0fbead6380c00bd27b709599485051359969b01eacffe6588c
diff --git a/dev-python/fakeredis/fakeredis-2.36.2.ebuild b/dev-python/fakeredis/fakeredis-2.36.2.ebuild
new file mode 100644
index 000000000000..43c6d3aca88d
--- /dev/null
+++ b/dev-python/fakeredis/fakeredis-2.36.2.ebuild
@@ -0,0 +1,141 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/cunla/fakeredis-py
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Fake implementation of redis API for testing purposes"
+HOMEPAGE="
+ https://github.com/cunla/fakeredis-py/
+ https://pypi.org/project/fakeredis/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/redis-4.3[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-db/valkey
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/valkey[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not install duplicate license
+ sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die
+}
+
+wait_for_status() {
+ local expected=${1}
+
+ local i
+ for i in {1..50}; do
+ "${server}-cli" -p "${redis_port}" ping
+ [[ ${?} -eq ${expected} ]] && return
+ sleep 0.2
+ done
+
+ die "Timeout while waiting for ${1}-server to start/stop"
+}
+
+src_test() {
+ local server
+ server=fake
+ einfo "Running ${server} server tests"
+ distutils-r1_src_test
+
+ for server in redis valkey; do
+ local redis_pid="${T}/${server}.pid"
+ local redis_port=6390
+ local redis_log="${T}/${server}.log"
+ local redis_db="${T}/${server}.db"
+
+ einfo "Running ${server} server tests"
+ "${EPREFIX}/usr/sbin/${server}-server" - <<- EOF || die "Unable to start ${server} server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ logfile ${redis_log}
+ dir ${redis_db%/*}
+ dbfilename ${redis_db##*/}
+ bind 127.0.0.1
+ EOF
+
+ # wait for the server to start
+ wait_for_status 0
+
+ distutils-r1_src_test
+
+ "${server}-cli" -p "${redis_port}" shutdown || die "Unable to stop ${server} server"
+
+ # wait for the server to stop
+ wait_for_status 1
+ done
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # json ext
+ test/test_stack/test_json.py
+ test/test_stack/test_json_arr_commands.py
+ # TODO
+ "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[Strict3]"
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict2]"
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict3]"
+ )
+
+ local EPYTEST_IGNORE=(
+ # these tests fail a lot...
+ test/test_hypothesis
+ test/test_hypothesis_joint.py
+ )
+
+ case ${server} in
+ fake)
+ EPYTEST_DESELECT=(
+ # TODO
+ test/test_tcp_server/test_connectivity.py::test_bulk_string_length
+ )
+
+ # every test starts its own server
+ EPYTEST_XDIST= epytest -m "tcp_server"
+ return
+ ;;
+ redis)
+ EPYTEST_DESELECT+=(
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict2]"
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict3]"
+
+ "test/test_async/test_redis_only.py::test_async_lock[fake_resp2]"
+ "test/test_async/test_redis_only.py::test_async_lock[fake_resp3]"
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict2]"
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict3]"
+ )
+
+ # run fake tests only once
+ epytest -m "not real and not tcp_server"
+ ;;
+ esac
+
+ # we can run "fake" tests in parallel, but "real" seem to share
+ # the same connection
+ EPYTEST_XDIST= epytest -m "real"
+}
diff --git a/dev-python/greenlet/Manifest b/dev-python/greenlet/Manifest
index d142ac569abe..278f9601f82b 100644
--- a/dev-python/greenlet/Manifest
+++ b/dev-python/greenlet/Manifest
@@ -1,3 +1,4 @@
DIST greenlet-3.4.0.tar.gz 195913 BLAKE2B d3c07b1606315d99d401a874fedd290c0ce3eb191c9bd4e4f291abaec424cc6f2e18f13ad62120d1de103950b15642be50cb2d28dccdf423e1f45cfcd6d30188 SHA512 b5d1499870552b9de89074bf5ac2b900c2a59319f9514073c346a08e69160b3c9b39b6b9a577ecd7c4fddd70c6cba1f9d891b2862027890fa5421aefe16686ba
DIST greenlet-3.5.0.tar.gz 196995 BLAKE2B 1fd1ffd254cffc7eb858657ba75541bb289014ed05304afaa17556a41582fe3e5dd761784a5ba6e44d1c7e207fe6a674175477e8d7359feebda71c1731cd9659 SHA512 472b09d9f08d60ba1a4885ac678fd448b8e612d3553d712646e92b7e12cbe238ca6162c8809fedbb8a702603713d6f60650786e4db6ccabdbe454d067604c990
DIST greenlet-3.5.1.tar.gz 197356 BLAKE2B 3f227db8357e65b304ccd538046743ef6a5df18d390fb50dc5bdb419c039f9948fc228a6f60e4639507fd9b50be81e624b575eccd9adce694e18aae1aa89eb7f SHA512 b81fd3a55655457356c5087a5cb109fb5ef3d0ea7daf0a1bdfcb24772fecca50932c8c548d5edf6f36e5d980d9dfeb3ae1323aaa05d19d781b2b47021806d930
+DIST greenlet-3.5.2.tar.gz 199243 BLAKE2B 04a81cfc8cf72ddab76c776a247a1eaab2a6af3e0d16affe8b9cd8b9f6dfd48f43be59db2e34a3617661c340a1768541cedbc20a2bb78212ba3af740b93a7f46 SHA512 709402d75fe0054f515722a2db0a0c92386e6598262f9b73346bf00466873056cd7c702320de79c1fa1d7bcdc818a9f974ecb1ab5d27f4ebeb7e1a9a86c43fbb
diff --git a/dev-python/greenlet/greenlet-3.5.2.ebuild b/dev-python/greenlet/greenlet-3.5.2.ebuild
new file mode 100644
index 000000000000..33588218e841
--- /dev/null
+++ b/dev-python/greenlet/greenlet-3.5.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+# Note: greenlet is built-in in pypy
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Lightweight in-process concurrent programming"
+HOMEPAGE="
+ https://greenlet.readthedocs.io/en/latest/
+ https://github.com/python-greenlet/greenlet/
+ https://pypi.org/project/greenlet/
+"
+
+LICENSE="MIT PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 -hppa ~m68k ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/objgraph[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/furo
+distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # patch cflag manipulations out
+ sed -i -e 's:global_compile_args[.]append.*:pass:' setup.py || die
+}
+
+python_test() {
+ local -x GREENLET_SKIP_LEAKCHECKS=1
+ eunittest greenlet.tests
+}
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index a818ccd5d73f..ec2ed9df9c58 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1,2 +1,3 @@
DIST jupyter_server-2.18.2.tar.gz 753177 BLAKE2B 6b93d51e21c0f0c34e7df7bd930d0c238699f6edc0ba8c2be4dbaa80e900c9b8069f315fa0077441d1678859405ba7dbb6281fc29cced88067e6f04347cd1de0 SHA512 66fe709003a497d4cd3cee890dffdd0c9109b3c9fbfdc3fc54036ccc700414e6a9755bfdc845180b1255d06a8cf37eb467f905c90ad1dc8969e6912a909ba6ee
DIST jupyter_server-2.19.0.tar.gz 754561 BLAKE2B 1d7c52340fd86152aaea2fc08de49502bd893d58067d5da8e64f2261fc8348f961295b65fa27d44cc45401ddc1dccc7af921758f088b6dded80b5b4816e0522d SHA512 021be211c40541b84f0adbd04c31a8cf5e1a99ed0480d75bd5bb28ef5102e9a08652d0712cbfd5ba4126974d961818f1d9eb8b3a206870e171ed8285a658ae99
+DIST jupyter_server-2.20.0.tar.gz 756523 BLAKE2B a55bce21bf2a3d8b7f544161eb20802971e947eb082e3ebf6e0d8e777e46044d1deae8a3568b580cabd8cb6d88ca18cc871a829441b820d02f656ebe30e97b36 SHA512 859d890d67f92212c5a3fa772e9e6abf58c3ef4b08a94e84a64e1c9714114b5bbe5667bb93fab3448671c32ef670c2f4869f4009aa2aa257a67223b47628d578
diff --git a/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
new file mode 100644
index 000000000000..7b485879e0d6
--- /dev/null
+++ b/dev-python/jupyter-server/jupyter-server-2.20.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/jupyter_server/
+ https://pypi.org/project/jupyter-server/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/argon2-cffi-21.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-terminals-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-events-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/overrides-5.0[${PYTHON_USEDEP}]
+ ' 3.11)
+ >=dev-python/packaging-22.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus-client-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24[${PYTHON_USEDEP}]
+ >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # This fails if your terminal is zsh (and maybe other non-bash as well?)
+ tests/test_terminal.py
+ # Fails because above is ignored
+ tests/auth/test_authorizer.py
+ # Fails with additional extensions installed
+ tests/extension/test_app.py::test_stop_extension
+ )
+
+ # FIXME: tests seem to be affected by previously installed version
+ epytest -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/jupyterlab/Manifest b/dev-python/jupyterlab/Manifest
index 4b165bd7dd43..8257942d899d 100644
--- a/dev-python/jupyterlab/Manifest
+++ b/dev-python/jupyterlab/Manifest
@@ -1,3 +1,4 @@
DIST jupyterlab-4.4.10.tar.gz 22969303 BLAKE2B 478b424ff65b4f88ee849f0e87cebf30a1a95d7da390e3179f0675c4d37cb6cc80aef0262e2e4ca09fecda71a76c6d92ed99a6b52337ff2ab22cc010122513a4 SHA512 fbdd4429ddc5c14f0085d3dc4a9cd1f93c8db3b438e62c7e653fb605819ec97f41aba182c48a54f25f5ed53d36a9137522e7901a2b36349596c8f03beeefe351
DIST jupyterlab-4.5.7.tar.gz 23992763 BLAKE2B a8393ca503e6d35c8cd896948dc7201d10b9493bc55ed9898b706a9c88e98dc8000cb9d66e306600d0908aa23f6244860f7d271cfea6c54b339c5249ee2a6f33 SHA512 b2bc3190586c2f25688aef12a6ca04d77c69f21ce35f53bee926de10961c84e55e5441cd812f03e5deb649e8fa38674e97db7fd5a00edc965c19b2b7e1d90996
DIST jupyterlab-4.5.8.tar.gz 23994076 BLAKE2B 6a42c5892bd1e89c19c7acf7d92a91abebe79c2b4246a99495ef04b1c4357a7d8cdfe22b3e67a382672c86efe52438009624d74714fd709295f541888068dbd1 SHA512 d6341b649299aada9be6d50169a18c9e0c300de76f9306582155e3592c560aa3c16d148942404e87c0d9706c28da8b0ba7305d026b1c9e3bc3b954760f7c6da1
+DIST jupyterlab-4.5.9.tar.gz 23994445 BLAKE2B 242a2d519bcf89b232b895c40fa45d752677d1f4321026037ebad418ffd0fb2dc07da07cb3d2d65a0b14142ae4fe65ef7e842891350d1e2102166001d534648e SHA512 b78ecb0f0ea1cc709fc4398d5d9a180ef4d235d5e6d45739deee88c6e7c06c28e3d15295b7abda144c5f8a5a847cbef70e2f02078bac0e2432b7bda0e387ce5e
diff --git a/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild b/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild
new file mode 100644
index 000000000000..856de048ea98
--- /dev/null
+++ b/dev-python/jupyterlab/jupyterlab-4.5.9.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi xdg
+
+DESCRIPTION="JupyterLab computational environment"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyterlab/jupyterlab/
+ https://pypi.org/project/jupyterlab/
+"
+
+LICENSE="BSD MIT GPL-3 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.0[${PYTHON_USEDEP}]
+ >=dev-python/ipykernel-6.5.0[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ dev-python/jupyter-core[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-lsp-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-2.4.0[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+ >=dev-python/jupyterlab-server-2.28.0[${PYTHON_USEDEP}]
+ <dev-python/jupyterlab-server-3[${PYTHON_USEDEP}]
+ >=dev-python/notebook-shim-0.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-41.1.0[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2.0[${PYTHON_USEDEP}]
+ dev-python/traitlets[${PYTHON_USEDEP}]
+ net-libs/nodejs[npm]
+"
+
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/requests-cache[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # These tests call npm and want internet
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_uninstall_core_extension
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned_folder
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_install_and_uninstall_pinned
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom_minimal_core_config
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_custom
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build_check
+ jupyterlab/tests/test_jupyterlab.py::TestExtension::test_build
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_clear
+ jupyterlab/tests/test_build_api.py::TestBuildAPI::test_build
+)
+
+EPYTEST_IGNORE=(
+ jupyterlab/tests/test_announcements.py
+)
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,tornasync,timeout} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+# TODO: package sphinx_copybutton
+#distutils_enable_sphinx docs/source dev-python/sphinx-rtd-theme dev-python/myst-parser
+
+python_install_all() {
+ distutils-r1_python_install_all
+ mv "${ED}/usr/etc" "${ED}/etc" || die
+}
diff --git a/dev-python/openstacksdk/Manifest b/dev-python/openstacksdk/Manifest
index 13ee1946b2be..25b3d176fd9b 100644
--- a/dev-python/openstacksdk/Manifest
+++ b/dev-python/openstacksdk/Manifest
@@ -2,3 +2,4 @@ DIST openstacksdk-4.12.0.tar.gz 1336787 BLAKE2B 4beacf1f769f1ba8f114087e70952671
DIST openstacksdk-4.13.0.tar.gz 1341338 BLAKE2B 2b7b74c7fa3f94aecf67b68ff48b24f8d44ab4f3e07d49ef6fc85facf7676e3a70fcdeb32b3aa129d0920ec25317c18647d268d308d5cdbb3346b2f11b57e23d SHA512 ba00c75a4c7575972d7218a0271b7261717e7386db84528fba304efc0607746a3b36f31c39d7eb594238004c523284e51db1836dd1e8764c55205268774fb733
DIST openstacksdk-4.14.0.tar.gz 1357501 BLAKE2B 574036f4827e045dae7da7058e86ab384614b03a669f25e8bdafc05d5f773265bb9282ddc764851d7391fd442f5b8c0f94c0e19ddc963c4baea13acd3c47fd3f SHA512 baf6234a52ddd1cffe1126f59fbc2daae014667fbbdd0dd8d65866e3f89da2372de00b7b6d54d486cd2a47d28d23c0e3ae9affcb79b4bc124270179eb67b7afc
DIST openstacksdk-4.15.0.tar.gz 1379204 BLAKE2B 2a1405af243909af4f7bfe356b42976a5ac2e21d9962da133971cfed087bfb8d387ae800ff420154bd189b97f148c7b0d517f1083e32da8a2ff3fe59315aad37 SHA512 ec4b16322db900c83a37a98a2ce59396dc82d69a5f6552a852422a4ceb9d333efe67c215290d051c8c0fcc14dec652f9db50930676101653d431e91f89a444dd
+DIST openstacksdk-4.16.0.tar.gz 1397114 BLAKE2B 3194184d19b96171f7c83fb5065d11d175b216c0fbc4f5286290dd5b680de4dd68b9e836bd3c12f519625dd2fa56d1a02a383539e6e9390eb63cd39eb0658d83 SHA512 669751049e7737a350c95fde28f3f1d78223bebf131ac7d9986a3530f4a92c5fbf71c5c713a45df4f70225fefbed98f4f233a584b6b285d57cd74e264b31cbb5
diff --git a/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild b/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild
new file mode 100644
index 000000000000..fc37787b90c1
--- /dev/null
+++ b/dev-python/openstacksdk/openstacksdk-4.16.0.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{13..14} )
+
+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-5.10.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.8.1[${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}]
+"
+BDEPEND="
+ 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
+
+ # stupid test checking if they pin to the newest os-service-types,
+ # except they don't actually do
+ sed -e 's:test_ost_version:_&:' \
+ -i openstack/tests/unit/test_utils.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b openstack/tests/unit
+}
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index 9cadee7e2f63..b1bb5bb07e94 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -4,5 +4,6 @@ DIST pypdf-6.12.2.gh.tar.gz 9564951 BLAKE2B 3d4e38bbbec4e503a6f5a351b975075b598c
DIST pypdf-6.13.0.gh.tar.gz 9574131 BLAKE2B 73ec727a0e33c6a963ed8757110fd802f55b87823b4c68eb873199fc48c10345c8c526fdb702c70d555fba13d9c51e1b16cf59ab61c0e85365da32897b62422e SHA512 a45354d0be67d1e92e8935f6261a376fdd22e849135b99f0a5615d697e70eaba5475ba36fd94897d66d943fc9e160b06645e8ce94903a897749eea0fd4a3dca4
DIST pypdf-6.13.1.gh.tar.gz 9573137 BLAKE2B c2375ef5b1558a681ea0bfc24050c8ff43b35cbb896c711d6d06ad930ddc6367dda944c09fa612c8d56ec67500267de86270fcf8d4b2629fbe57e0667aa0e230 SHA512 160107859717d7caf1de379b9cb2e97d8703a4275f35c8e98c7f75f886503fba9ed34743a16f2991ae03ee70716e5190a53cfeb52f52e5eb30a5f092f6fa52a9
DIST pypdf-6.13.2.gh.tar.gz 9573514 BLAKE2B 992997319cfdd79172862490b2c13383c345c228f87fe266a8c4b9640768115db9c5908990aaaa65ba7c69431fc056479d922a4febc2a4307f485d459e2664d5 SHA512 23e9c7db1da5717ba77143bad3cff8921121079f5720d10fdb5336e51d421a0a3e690626fa0e2087fcdffb59de68b801195716ef2b4820a8a6ad57be688f52df
+DIST pypdf-6.13.3.gh.tar.gz 9579398 BLAKE2B 5d94501a9ccfe921dd0b5c77e5791a869f6e4a72c42faa083758cf6a8e7828a1bf83f54c693ac5f0940976a4a88e25d6e5b4be2e7acaea8d45cd05552ea6df16 SHA512 bf034ef2c62cdfcd18bad242cfbdcfeab0e289f776fb2bc3340f782f49d3836a07bfedc002076f0290780ccfb46f0d49329774198856bf4577ad30d19fdf8b7c
DIST pypdf-sample-files-65e82ed36c1efd9bd7172a35c8dcfd6e18aabfb2.gh.tar.gz 11748256 BLAKE2B f1820f38ebda08bbf2019e81e2cc605fef3dc366904ed552c3f95673d93c1bd440fdee4b8c199b6cbfd90a7ebfd5aab55b22edc6a3ad8418f9efdafd4e4c741d SHA512 5795189231e9e5f176b530c602ca778b1b8864c88b69c16c37f430ef6a2f3d4b08c3a8757f6522a1472b1b09583bd8df50f2628319bb076af45326b36f6b876a
DIST pypdf-sample-files-8c405ece5eff12396a34a1fae3276132002e1753.gh.tar.gz 11748093 BLAKE2B c5989200893b28a3c2062bb024a5cfc6f3389dc259ec129857979fa43469e1274559612b4d555499e2c7e16cf34be07825229932bf4d147fa6d7324d043e97d5 SHA512 c9771129b7668a2fd1fa79bb859ae9213f3d60341cf1b9937ff0eaab0de9bf4c35adcb7b896e93329038dc0f3809a0c697c523f8fe41b43030b0b029a88058e3
diff --git a/dev-python/pypdf/pypdf-6.13.3.ebuild b/dev-python/pypdf/pypdf-6.13.3.ebuild
new file mode 100644
index 000000000000..8356f2373919
--- /dev/null
+++ b/dev-python/pypdf/pypdf-6.13.3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+SAMPLE_COMMIT=8c405ece5eff12396a34a1fae3276132002e1753
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI="
+ https://github.com/py-pdf/pypdf/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ >=dev-python/cryptography-3.1[${PYTHON_USEDEP}]
+ dev-python/fonttools[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ media-libs/jbig2dec[png]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${S}"/sample-files/ || die
+ fi
+}
+
+python_test() {
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pyproject-fmt/Manifest b/dev-python/pyproject-fmt/Manifest
index 95912043c5bd..5f8cf268f682 100644
--- a/dev-python/pyproject-fmt/Manifest
+++ b/dev-python/pyproject-fmt/Manifest
@@ -8,7 +8,10 @@ DIST pyproject_fmt-2.24.0.tar.gz 281070 BLAKE2B a3b8b23f7a3f3e422423a5806e54d367
DIST pyproject_fmt-2.24.0.tar.gz.provenance 9841 BLAKE2B 68e52f9f7642d98206a45c582dc60201c7a7cb67fa9c152b1ef1c7dbfe29dfcf4716da98c218605274b2e45cb515662c09a8ab77cd03bd25fae486b029448457 SHA512 ea24c7c0aa8201f681f2dd525798b6ff52886f0eb25cb77ea4a674b89bb5eb221d32741a477a0f6f6370b69b5894bbdfc847b613c1b888d2d802f70944607fcf
DIST pyproject_fmt-2.24.1.tar.gz 280585 BLAKE2B 76dbf5443a7ff7215437b6b4d4a2cb9f6c752335d73dcec893fa1e222b3d459298e11265367ff2e76d63548b47e6c752266703d59329653d02113b2c410d178e SHA512 5b044182e27f881bc13d24406f5dabd68ab60e325ba748f460533640e87731cb30651e744ad0011e2ef4cddf5907f42e6f9d2aca6aa0a558dddfa5beaefbab9c
DIST pyproject_fmt-2.24.1.tar.gz.provenance 10064 BLAKE2B ec74f53fae059829f6e44434666d196b5ea92b787d80fe04d6a001e93f1563be978c6771918a3fe7af19ef1a41cc8ce04d21ef0f15ce9e7af39b3cbfe2af00b2 SHA512 4220f4b3fd4372dc0593da35341255778f25c4386eca6007f6e49252cccc861df75980ab74fc437ca26105687198c8b0bfad81579ef4341fd0e97c4ee3a9e79a
+DIST pyproject_fmt-2.25.0.tar.gz 292640 BLAKE2B a6d65982bd0591966a09218b74032e7da1aff8f99406bfdad405b10203a14096f6ebca761ec97861edbd5115845a75fcbf3ade1201a26f0f6d2a0dd717c3837f SHA512 d1fa497bd7fe76e6b3fae996cec29cf1a29fe3484a7b43dd81fbc50e3d1ee50eb096e891624d4942991cbb2ccf414d099a88b1649c5481d2bd3e26ddbd2e8348
+DIST pyproject_fmt-2.25.0.tar.gz.provenance 9829 BLAKE2B f6632a9b29fa43159badefe9a16355bc22b09b0a17bdb08fcc41ae89d3ff62cc5d2e79b5b4e996c794d863535b3cebf909e7cbc6abde8bcc28f1f09ee55b0bec SHA512 bb6e171ce072c8eb1a92127993e284a45414a54639a7f88478d6f0b09efa8db02fd93e2ddd9ee3e986567c26512de8ee2517f4770cd3ee0b72f09ae6bde10dc3
DIST tombi-0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b.gh.tar.gz 10564681 BLAKE2B 1cc4e307d89ae978c8022aed63ad7a7c08e71f810e42743589a6bf44499051250102ca3a60aa2cea65292dfd187240da96f6fb963511b6d4c06559c20bbc67a3 SHA512 e398e14c9b092f2378dfa848c697ea5cb0af705bcb801f288d2ca98b8c0d4aa3abf7a71f2f5a10a4a6a77e1e8d1f7089a0359b2a3ec9b226a19bbb40f0aa0a14
+DIST tombi-362cafbd685311cb659ec0a422ebecc1eb332952.gh.tar.gz 10612816 BLAKE2B 8c1ada6d32c3b400110303243dc8f2070a395254a52f57cb4dff9bf788c43bf0491950cc563b2e9e19645a6fe785fbbafc61684446889e3d9b2a18f025d91b3e SHA512 e54f04e5bab4fcba6fa5562746c61a63f94954d5d46781277a9e83645182916c9131e4d09429e12e2dca7369947d68cb13d0cafea10cfbddecac85419f3f6031
DIST tombi-afbc4d39033e872c0739d43b66cb4b5c278ba11c.gh.tar.gz 10400276 BLAKE2B f697615f6538f0b47da592dc217342d915036223ecf0b97e05f6dcef15e8788e4314214dd7b624c1d6b7715df15ef5e6c480a0a9113f2016c58ab2744ec03f32 SHA512 87cfe1cf661c974dfb74382a178eb5d060cadc90eb62dbe8fe6671e3e29ff6cc77f4205be7a7ac0b15ad73be1529c2203a07e9fb383f81c72e07342705769d23
DIST tombi-d5056f9743d7e3f194158e125b90d7294aa59ad7.gh.tar.gz 10475854 BLAKE2B 6a629d533e576930e8e988662e3d350137d32ce9b517578f4ee5f20437b75d31300568adf4a4fae2e9fc7a033af1031d4fbcaafa51656a3af2b8a7e03365495e SHA512 74aa91819f15420207850951d0d6b41d61dadf3bdb38406299ae1126bb9ae597a7eb9b69a4485165bf465eb10384b67c73b0e231ce22e1910bc2db448c4eb626
DIST tombi-e9213370947e9d7ab6dd98c1cf17533bbbcc797f.gh.tar.gz 10608653 BLAKE2B 7fd8a27bec2e0c5ab357f2c56ca50c848d71e02da3faca9b0650541b35b177ce7b669d294c20add3dac2ba70e5ced46046d5c2de14df81fcee418fccaaa47344 SHA512 a84ca3f676b95d11c121df08382e3bc6ca2e31c0c867ff3027c5564219f637abda34bcc00d563d777280e1b4522354e83b6bb4b0412b067e9ce57272a4e34d15
@@ -17,3 +20,4 @@ DIST toml-fmt-pyproject-fmt-2.21.1-crates.tar.xz 18661404 BLAKE2B cb19d8ebbb7d4f
DIST toml-fmt-pyproject-fmt-2.21.2-crates.tar.xz 18776904 BLAKE2B ae748ae98a2769a78b34a2051e3237c40bc6714d88c58a22aec5af85caa86e4690e9749ddd1f87d2ebe0908a1a3f24a01a48e4abcf107fcdbd5d8322a0738c6a SHA512 474d707babc9a3f98a933ae645ffb951062491158c6863ff9dea7fee065b19f440501e092fbc28e62e4e67dce435689096a27b96c6acde3b8128b76b5890ca3e
DIST toml-fmt-pyproject-fmt-2.24.0-crates.tar.xz 18713448 BLAKE2B 6b5c71bc419891391ec4f375a29821ff8b2039222ace04da609d155b9260a187520ff70c3b71a7d804f628041e41df20d5b69c0e2cea9cc415404535407363dc SHA512 7a3726f24f7a4e00e892c24f1ee94e763f7faa212ed908c2b13ba70b5ae67cab3b269fcffc0c0755a13cdc6a290e281a274b5746fec0620cc6c980d0f3ddb7a5
DIST toml-fmt-pyproject-fmt-2.24.1-crates.tar.xz 18725980 BLAKE2B 75f6c4a07b14fc60cd3b7a00e902c2b37fe79ea3d03172e7271300d5ea5bd0bf9b7727c4af7e47e82d28424f677235a6e9c1d22ad3314210be93170d9f36ff76 SHA512 88da1827c097f712489276c48fbf10e4c61ef92b877cd8eb7f34eeb1e289ce0362661d3b01bf34c23c1f4cc67e23b05462773407eba7d17814c96d7885f23bd9
+DIST toml-fmt-pyproject-fmt-2.25.0-crates.tar.xz 18742060 BLAKE2B 5cc45568d2981e1804e8800b6d7da203eee70f022b86dff671580e91be90b6627bac38d58f3ba50d138dbe6a905b6a21b324c3fc6114b7a0de11fb6078dd4ef2 SHA512 27986f6f647b3e50d0de5ce3acd7b3b089db896b5560f15b9d7d11c98e4a9b9d5adea566034e533de177fd9e2c08f46f760f9bf73d39910dd2d0ddf85c526832
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild
new file mode 100644
index 000000000000..cfbb63d7fbe0
--- /dev/null
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild
@@ -0,0 +1,113 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+DISTUTILS_UPSTREAM_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [tombi-accessor]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-accessor'
+ [tombi-ast-editor]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-ast-editor'
+ [tombi-ast]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-ast'
+ [tombi-cache]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-cache'
+ [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive-serde'
+ [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive-store'
+ [tombi-comment-directive]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive'
+ [tombi-config]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-config'
+ [tombi-date-time]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-date-time'
+ [tombi-diagnostic]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-diagnostic'
+ [tombi-document-tree]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-document-tree'
+ [tombi-document]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-document'
+ [tombi-formatter]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-formatter'
+ [tombi-future]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-future'
+ [tombi-hashmap]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-hashmap'
+ [tombi-json-lexer]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-lexer'
+ [tombi-json-syntax]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-syntax'
+ [tombi-json-value]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-value'
+ [tombi-json]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json'
+ [tombi-lexer]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-lexer'
+ [tombi-parser]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-parser'
+ [tombi-regex]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-regex'
+ [tombi-rg-tree]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-rg-tree'
+ [tombi-schema-store]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-schema-store'
+ [tombi-severity-level]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-severity-level'
+ [tombi-syntax]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-syntax'
+ [tombi-text]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-text'
+ [tombi-toml-text]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-toml-text'
+ [tombi-toml-version]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-toml-version'
+ [tombi-uri]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-uri'
+ [tombi-validator]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-validator'
+ [tombi-version-sort]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-version-sort'
+ [tombi-x-keyword]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-x-keyword'
+)
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Format your pyproject.toml file"
+HOMEPAGE="
+ https://github.com/tox-dev/toml-fmt/
+ https://pypi.org/project/pyproject-fmt/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+ https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
+ Unicode-3.0 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/toml-fmt-common[${PYTHON_USEDEP}]
+"
+# tox is called as a subprocess, to get targets from tox.ini
+BDEPEND="
+ test? (
+ dev-python/tox
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i -e '/strip/d' pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # something about ANSI codes, no clue
+ pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
+ pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
+ )
+
+ epytest pyproject-fmt
+}
+
+python_test_all() {
+ # default features cause linking errors because they make pyo3
+ # wrongly assume it's compiling a Python extension
+ # https://github.com/tox-dev/toml-fmt/issues/23
+ cargo_src_test --no-default-features
+}
diff --git a/dev-python/svglib/Manifest b/dev-python/svglib/Manifest
index c812f78bbba4..1010f4eeaae8 100644
--- a/dev-python/svglib/Manifest
+++ b/dev-python/svglib/Manifest
@@ -1,3 +1,5 @@
DIST svglib-1.6.0.tar.gz 1318276 BLAKE2B cc2ceb1850ad3a1c82f310b5b5c28f95ad047b3f933d323c40ab082df10b480788f24556fb29722ff5ae70490eeff5919780b979b9752c39e21523630dc3358a SHA512 7d6e30629b409cbdf80de3278a6b7a67ae4a3d82cd83c6f53cb72c21b59839eafbef4d34989621744773f9c7ba47b6cbe86d8f8b222054ff016061a740bf2bc2
DIST svglib-1.6.0.tar.gz.provenance 9400 BLAKE2B d570304d15dfac0590892b9c440e0c878a4d33f2e552b5f1f934cb741da4f58c407c4773f63e6528e4931ffd1a0fcc7e1d8db60122f0631d4e5846b0d492648c SHA512 51c43849de39807fd38002fddda0b544d92f3534619f0823cefeaf75d486d6d8833857c90603ce7bf64074db292b8f4effdaaf83afc62c3b11d29b8f51c2660a
DIST svglib-2.0.0.tar.gz 1462932 BLAKE2B 7fa50da9bb93fbe452a1178fe40b4016a8a94cd444931dd95d163ad08b76e5e50fceb5c9e75b2bc4f775187380ccf469d13376ee7f94d22b931bfdbbe047a297 SHA512 74adb5a557c182144c20bf98d69219a904b22e67d37c5627e1ac4bbfdb62bd248e6f213edbf0ebd71e96eade90e3546245696eab768a6d0c9def2c531d5ed8a4
+DIST svglib-2.0.1.tar.gz 1340776 BLAKE2B b24fb4f7aba1bea90436b65857374067bc1175b03bbe1acd0ca2f3cff5bb1f0a1709c732114bfa817ea730fc0734ba7987a7f7b73b5ae9786b2faf3d7f9d92d7 SHA512 99e32be3baf2641751ce595d376a28a674a12cc59ca46c743a4cc9786199070cf51274bed855f7cff6527b90159f39a485f2324f5199bc4661054dee8bd2c4cd
+DIST svglib-2.0.1.tar.gz.provenance 9951 BLAKE2B b7df482af7aa831fbce5f93b0c88ba740d8be754d49ca206ee9393739eb0a2fafad33c7cb33de419ca6a28aa5b3d7d1f7dfa4cad7f52fc302490eed6e1ece26c SHA512 3dee7ef90a9cb32358281d0c226d2715cbf6cee4353686c91f791db27e148e1de2fa6aa653683f411c45339cdfcee77d49784b6b1ae0145bfde48e0edad86b93
diff --git a/dev-python/svglib/svglib-2.0.1.ebuild b/dev-python/svglib/svglib-2.0.1.ebuild
new file mode 100644
index 000000000000..bdddbe8b3b5c
--- /dev/null
+++ b/dev-python/svglib/svglib-2.0.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/deeplook/svglib
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure-Python library for reading and converting SVG"
+HOMEPAGE="
+ https://github.com/deeplook/svglib/
+ https://pypi.org/project/svglib/
+"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/cssselect2-0.2.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-9.0.0[${PYTHON_USEDEP}]
+ >=dev-python/reportlab-4.4.3[${PYTHON_USEDEP}]
+ >=dev-python/tinycss2-0.6.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Needs network access
+ tests/test_samples.py::TestWikipediaFlags::test_convert_pdf
+ tests/test_samples.py::TestW3CSVG::test_convert_pdf_png
+)
diff --git a/dev-python/tqdm/Manifest b/dev-python/tqdm/Manifest
index 9a1864bf5511..696f6d645851 100644
--- a/dev-python/tqdm/Manifest
+++ b/dev-python/tqdm/Manifest
@@ -4,3 +4,5 @@ DIST tqdm-4.68.1.tar.gz 171236 BLAKE2B da159f99cf504d8ada8f0d4dd5dbcec2a0fcedf56
DIST tqdm-4.68.1.tar.gz.provenance 9189 BLAKE2B 6c7f6a3ad9b087ad520efd44cd6e386c2ae308b61c9998d16a91ff085aec613c63625f2ff8ce66dd60a08ac2249f1dd3a38d75798e4bc633443de26f53b6c386 SHA512 135fa4c6bd8e09d6512bc4c247d99e6e2848014d7ad759abf9a1b7a897e09985232c80d126848d848d2d145ef7311f9f5c1cc7a823d58a2fa7a7adbab4695bf8
DIST tqdm-4.68.2.tar.gz 171923 BLAKE2B 7a3587662766743952627ad294cca083cac58d576346f242c3499c78e56f528d9c0d454af241a8366eb6b38fa04ecc267579db94abae474d8a7e3c6fbbdcf1be SHA512 a023be68c85d807f2a3dfc225b9db09add9cf71b4f2fb69abf184ee47526afbdeef2ff7a16e6f02d0640eae3d37bb070eefdac050e54263b61ee6d916c8269a3
DIST tqdm-4.68.2.tar.gz.provenance 9146 BLAKE2B 315da20cff5c147ea9a42626f868121f89264fa0269892336883a5ad9aa0b545cf25fb9bc174656d5dee7196a394acde767e635b6296d29e0465703bff5fbfb5 SHA512 06f93344fe73eb5eee90d4094810540451baa7d7fcdf120ad77302e55b55d60bbefd8c5cc5ed6714b7a2aff7cb2c038278d1c14aaff911a3d56fbc17a12bf4b3
+DIST tqdm-4.68.3.tar.gz 170596 BLAKE2B ded12112cdb45a81d3ce85d6cf25f1968780f44962f686627d820c2121cef103f10b80c5e28bc155b765ed2622915c00e50288f4ef949dcc05e22fcc351257f9 SHA512 6421d3b2b4483aecc2e71f4061694c9219f5c99e0b4aedde2d752299a8643719a255ec783f944d3d1b3896c97e5d35b58b0cf1ecd97ac14806b50af65fb37e63
+DIST tqdm-4.68.3.tar.gz.provenance 9381 BLAKE2B 627c7f6da41395cfeca1b3b8f3d1643aac863786dc31e22f9f9289f071985ee70c65bb7cd18dc35b322aafe787d7365a294accf7a59583ac29bfe789625e5772 SHA512 52172af2cb84c14edc77b98f8cd436a981147f2f1134f26bcd172161dc467b0589d83f456d78344369d2303741d048aa4160b1dac52beb60edc0ef14420341b2
diff --git a/dev-python/tqdm/tqdm-4.68.3.ebuild b/dev-python/tqdm/tqdm-4.68.3.ebuild
new file mode 100644
index 000000000000..30d0ec6fe291
--- /dev/null
+++ b/dev-python/tqdm/tqdm-4.68.3.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/tqdm/tqdm
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 distutils-r1 pypi
+
+DESCRIPTION="Add a progress meter to your loops in a second"
+HOMEPAGE="
+ https://github.com/tqdm/tqdm/
+ https://pypi.org/project/tqdm/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="examples"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,timeout} )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # Skip unpredictable performance tests
+ tests/tests_perf.py
+)
+
+python_install_all() {
+ doman tqdm/tqdm.1
+ newbashcomp tqdm/completion.sh tqdm
+ if use examples; then
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/tzlocal/Manifest b/dev-python/tzlocal/Manifest
index ddd93e036f73..cd63f0bf1632 100644
--- a/dev-python/tzlocal/Manifest
+++ b/dev-python/tzlocal/Manifest
@@ -1,2 +1,3 @@
DIST tzlocal-5.3.1.gh.tar.gz 26331 BLAKE2B d2f2f1981613fd148950bcfe5ab3797597c77342d0d848379562534a4fae2c9b9b0c98d6fb4cc1758d4b1dc6d6bda4d2f3ff9555d0bf0418c4cfa589fb720a12 SHA512 e72581649488e9771d314c7aea149367749866263df18baccb63c4fe369a863c392a8522c6be7987c32ff835dd11aae93b37028b0e7276dcf5c3d6e9a7b63ccc
+DIST tzlocal-5.4.3.tar.gz 30873 BLAKE2B 908ce9cd52df2d2c86d2d0d10ecd558ba441486e54b9cf02d1f7e7b32e7a1645d4875a858c83e8fab74c69557dfc854a5c95bad004f6705b8be1bd4d1fce04d6 SHA512 128068ea10f97742d844df9431ca6ccb0ddde974f8a0dce74ce86c792b079f3a0e9c441140a4f5889fa4bfea7f9c7fb91dda34c50e84a05998a0a6981e796b4b
DIST tzlocal-5.4.gh.tar.gz 26438 BLAKE2B b5c20d1214ce878aa3a63f363e45c1ea81376015a501b60163fdb43f39304909564d3ce1c6b610726d1201c01627fd151eb330fde59bf4178d62c2abdad2e3eb SHA512 e8ba42b9ca2391f05136dd253bf595f09093e33f4264c634afb7f88267188e1452ba78f15281f324d42fe00ccaa3b2565de985c8b5c647e9e6077f89d9c57db4
diff --git a/dev-python/tzlocal/tzlocal-5.4.3.ebuild b/dev-python/tzlocal/tzlocal-5.4.3.ebuild
new file mode 100644
index 000000000000..75762fd11002
--- /dev/null
+++ b/dev-python/tzlocal/tzlocal-5.4.3.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="tzinfo object for the local timezone"
+HOMEPAGE="
+ https://github.com/regebro/tzlocal/
+ https://pypi.org/project/tzlocal/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest