summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-08-05 03:04:47 -0500
committerroot <root@alpha.trunkmasters.com>2026-08-05 03:04:47 -0500
commitff03324f0b5c30484659977ecb3a56e73f5856a5 (patch)
treed3d9a7636e37b0d2eec93ddf61a47caeda399de0 /dev-python
parenteed03ed6da4435154826115469c3956ad88ee8a5 (diff)
downloadbaldeagleos-repo-ff03324f0b5c30484659977ecb3a56e73f5856a5.tar.gz
baldeagleos-repo-ff03324f0b5c30484659977ecb3a56e73f5856a5.tar.xz
baldeagleos-repo-ff03324f0b5c30484659977ecb3a56e73f5856a5.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/alembic/Manifest2
-rw-r--r--dev-python/alembic/alembic-1.19.0.ebuild (renamed from dev-python/alembic/alembic-1.18.4.ebuild)2
-rw-r--r--dev-python/argcomplete/Manifest4
-rw-r--r--dev-python/argcomplete/argcomplete-3.7.1.ebuild (renamed from dev-python/argcomplete/argcomplete-3.6.3.ebuild)10
-rw-r--r--dev-python/beautifulsoup4/Manifest1
-rw-r--r--dev-python/beautifulsoup4/beautifulsoup4-4.14.3.ebuild47
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.64.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.64.ebuild67
-rw-r--r--dev-python/cffi/Manifest1
-rw-r--r--dev-python/cffi/cffi-2.1.1.ebuild74
-rw-r--r--dev-python/django/Manifest4
-rw-r--r--dev-python/django/django-5.2.17.ebuild116
-rw-r--r--dev-python/django/django-6.0.7.ebuild2
-rw-r--r--dev-python/django/django-6.0.8.ebuild116
-rw-r--r--dev-python/django/files/django-6.0.7-py315-mail.patch47
-rw-r--r--dev-python/elasticsearch/Manifest1
-rw-r--r--dev-python/elasticsearch/elasticsearch-9.5.0.ebuild89
-rw-r--r--dev-python/flit-core/Manifest2
-rw-r--r--dev-python/flit-core/flit-core-4.0.2.ebuild37
-rw-r--r--dev-python/flit/Manifest2
-rw-r--r--dev-python/flit/flit-4.0.2.ebuild60
-rw-r--r--dev-python/gitpython/Manifest2
-rw-r--r--dev-python/gitpython/gitpython-3.1.58.ebuild74
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.165.1.ebuild143
-rw-r--r--dev-python/logbook/Manifest16
-rw-r--r--dev-python/logbook/logbook-1.10.0.ebuild94
-rw-r--r--dev-python/mako/Manifest1
-rw-r--r--dev-python/mako/mako-1.4.0.ebuild41
-rw-r--r--dev-python/os-service-types/Manifest1
-rw-r--r--dev-python/os-service-types/os-service-types-1.9.0.ebuild36
-rw-r--r--dev-python/packaging/Manifest4
-rw-r--r--dev-python/packaging/packaging-26.3.ebuild (renamed from dev-python/packaging/packaging-26.1.ebuild)4
-rw-r--r--dev-python/python-gammu/Manifest1
-rw-r--r--dev-python/python-gammu/metadata.xml8
-rw-r--r--dev-python/python-gammu/python-gammu-3.4.0.ebuild59
-rw-r--r--dev-python/python-tests/Manifest3
-rw-r--r--dev-python/python-tests/python-tests-0.3.15.0_rc1.ebuild75
-rw-r--r--dev-python/python-tests/python-tests-3.15.0_rc1.ebuild74
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-30.15.0.ebuild (renamed from dev-python/sqlglot/sqlglot-30.13.0.ebuild)0
-rw-r--r--dev-python/time-machine/Manifest1
-rw-r--r--dev-python/time-machine/time-machine-3.3.1.ebuild36
45 files changed, 1356 insertions, 59 deletions
diff --git a/dev-python/alembic/Manifest b/dev-python/alembic/Manifest
index 58115d763012..bcede9e4e980 100644
--- a/dev-python/alembic/Manifest
+++ b/dev-python/alembic/Manifest
@@ -1,2 +1,2 @@
-DIST alembic-1.18.4.tar.gz 2056725 BLAKE2B 5de761b6dc383a4f44532bcbeeb6520836cae8992a09c24a5e268d05c835caa5d5e395873c97b650942fe94b995cc995dae8f8c57278d28aa3d1c0987830e5f1 SHA512 ae38b0551858573b6b602b56537a518c7169d4fadef7b11d8112b2427402b745ea5e3cd4387c2b49fec8158cf505de7206919caa10d73445446bb53e264fd448
DIST alembic-1.18.5.tar.gz 2060480 BLAKE2B cc85b5ebd73920c8f0afe2b9884aab1f30718b94a7ccb4b117186a9088b4141dce27dd505ce5c3015f3b93cabc837ad33e0905117ceee34fde77782b45875a6b SHA512 41d9675e2c99d339e2aa92e670acc0d562ab6a23d2006f2180478fa912ede643be959ca89713678adffe37deb20118a0d67ea7c023b2dea15d3acb5be18721fc
+DIST alembic-1.19.0.tar.gz 2069906 BLAKE2B b7f08fbc1023101ca709ee5f6bb82514621a46b18d9c22ad26d9d00c0231cb51186a25c1db0b37943bdb55ea6b2d3c25637ab92667193cd0e85b8f574144dbfc SHA512 7674acbd3bccef780a0b987fdecf7cb3439dc65f58dfeb1d4773c04f81625cbca80152a7a802e54a8cb57b58554f908671feae9680e1fa3567a9f53617c94eef
diff --git a/dev-python/alembic/alembic-1.18.4.ebuild b/dev-python/alembic/alembic-1.19.0.ebuild
index 4500ba72f4a7..891ac6691bb2 100644
--- a/dev-python/alembic/alembic-1.18.4.ebuild
+++ b/dev-python/alembic/alembic-1.19.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
IUSE="doc"
RDEPEND="
diff --git a/dev-python/argcomplete/Manifest b/dev-python/argcomplete/Manifest
index 3af6e5a34dfd..ee4266877f4c 100644
--- a/dev-python/argcomplete/Manifest
+++ b/dev-python/argcomplete/Manifest
@@ -1,4 +1,4 @@
-DIST argcomplete-3.6.3.tar.gz 73754 BLAKE2B f910e9a10ce05b87faa58997938c406b9ba51a7f5770ae9d403331a1bef4b669e000bd316c055b8d2cf281ee232b640a300d1e152e0ac9c7619d4bf144fd97f0 SHA512 d07756a8439fd8f30ea2823bbbe35b102c6822af907eed5d43649a378a703d8c20394127a842c9d6ce0af50d333518450d15c29fc3471e178c681ad95fa43a0a
-DIST argcomplete-3.6.3.tar.gz.provenance 9621 BLAKE2B 19ff13f7e1d428bc331daa13002e37d716088642c77f1e748fb344021871179729913eab3639fd160b19e3d04864f45a4e4ccbaddb817348efd216def3e9e644 SHA512 2d40fb2cc0f503558e6ed679bac79c202485e5d2433afb6a2c864f2a491e16e9705f126647e850f95a4a51da62e68e91e17d88dc93e4df006ad6203c8db226bd
DIST argcomplete-3.7.0.tar.gz 73284 BLAKE2B 3ddc792c685e7c1360a26e3f08172a4af567560e2eda174b0db73194f81a12b918e4af31399aa095da2770de14eea42e28f0b0b37d2359004ea0be9a1a92f35f SHA512 040dafb7ed84632c730dc2889aa1b0480c632efd758662539cdcfb4e98748068b11ca2b336e17e2f0ddb735c7efcece648412e79a18343e5d65de2130cd8f50a
DIST argcomplete-3.7.0.tar.gz.provenance 10008 BLAKE2B 8c318a26b820764f90c1029e8c075ac2956607a1e8d6c618f5ca8edf553123b6411060b110375db7ca81920445bf5982bf40fb543a20b48c69f3677109282c62 SHA512 b3093040cfffd9e64ebf2f81775ef9b2d25e84ebb8594601182f15e9aaff52271f86a11b2f62cb06a46f56ff0ff0cba4a4f8b25086502fcbc4bbeedd55e676d3
+DIST argcomplete-3.7.1.tar.gz 74457 BLAKE2B 46f42c1faee7bdfa5934a07d0d7b8fd80af38c8174cd2a904d41eea6c520f6614437cae44f635f0ddcd566e92d1575a0cc2d1c6e4cdf08c75604e90e503f91dc SHA512 6270f6fb401041c4f2f3b7ce42383e7e44c87e61e956ebff548255250a0a87fffdcfe75fbd6268c2da64023dab87e815f7ab65cf17350596131be5e8cac5adde
+DIST argcomplete-3.7.1.tar.gz.provenance 9448 BLAKE2B b5f9684f348efe6fb178d39bac83feb29b5206b981e897fcf5848f29c618537509cb7974532ccc336c8f999a607f9aab64fe9c4c6d3d171d1adb2e5a6b82af5e SHA512 b576e12fd57f1aa6c01c4c35b0c37847870624930c2be0da41fe2bc5a1f09d586c5e4df9ee65dad7096140b8ceefeaaa0edcf14a3f25d2c8639a68598ca7820e
diff --git a/dev-python/argcomplete/argcomplete-3.6.3.ebuild b/dev-python/argcomplete/argcomplete-3.7.1.ebuild
index 920ac48f180a..6458bc0abf52 100644
--- a/dev-python/argcomplete/argcomplete-3.6.3.ebuild
+++ b/dev-python/argcomplete/argcomplete-3.7.1.ebuild
@@ -17,19 +17,21 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
# pip is called as an external tool
+# setuptools is needed for package tests
# zsh pin: https://github.com/kislyuk/argcomplete/issues/544
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
app-shells/tcsh
- ~app-shells/zsh-5.9
+ app-shells/zsh
dev-python/pexpect[${PYTHON_USEDEP}]
>=dev-python/pip-19
+ dev-python/setuptools[${PYTHON_USEDEP}]
)
"
@@ -38,6 +40,10 @@ PATCHES=(
# for entry point tests because they read metadata of all installed
# packages which can take real long on systems with lots of packages
"${FILESDIR}/argcomplete-3.1.6-timeout.patch"
+
+ # run pip tests without build isolation, so they don't download
+ # setuptools
+ "${FILESDIR}/argcomplete-3.7.0-no-build-isolation.patch"
)
python_test() {
diff --git a/dev-python/beautifulsoup4/Manifest b/dev-python/beautifulsoup4/Manifest
index 0311e20bd114..e7b568a83b90 100644
--- a/dev-python/beautifulsoup4/Manifest
+++ b/dev-python/beautifulsoup4/Manifest
@@ -1,2 +1 @@
-DIST beautifulsoup4-4.14.3.tar.gz 627737 BLAKE2B e5b32c33afefcfccfa952b55e800b903e5c65ed54704d39a28603b54a75508079c6cba8db425595fa2b47fa7cf07fa1172dbff4c13c3bc1cc0a705bc786dd1fd SHA512 5c535534045cac033112b7c060539d6b5a748620df9d15fb4c719708cde263ac506f3734a39156681633942543dc555af51c619dae430311a8889204d8ee325e
DIST beautifulsoup4-4.15.0.tar.gz 632571 BLAKE2B c9c3745b338ffdf4c8d51246d914f52f7a0caf45933ef413c16f4c7a5a80b9c090463efa9960044065b074b9790db80271cc1cb51af50714bb809c991cca8477 SHA512 ccf07cac23ca52f50802b3d6271b42c1367022e2bc409b1be2924bbbd274cebce3b5afde1c1c4f253802b7a58f907cb60a29d347ae2765c33ce85bec9dcc473c
diff --git a/dev-python/beautifulsoup4/beautifulsoup4-4.14.3.ebuild b/dev-python/beautifulsoup4/beautifulsoup4-4.14.3.ebuild
deleted file mode 100644
index b04cf271fc79..000000000000
--- a/dev-python/beautifulsoup4/beautifulsoup4-4.14.3.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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="Pythonic idioms for iterating, searching, and modifying an HTML/XML parse tree"
-HOMEPAGE="
- https://www.crummy.com/software/BeautifulSoup/bs4/
- https://pypi.org/project/beautifulsoup4/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-
-RDEPEND="
- dev-python/html5lib[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
- >=dev-python/soupsieve-2.6[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.0.0[${PYTHON_USEDEP}]
-"
-# bs4 prefers cchardet > chardet > charset-normalizer
-# however, charset-normalizer causes test failures, so force the other two
-# dev-python/chardet[${PYTHON_USEDEP}]
-BDEPEND="
- test? (
- || (
- dev-python/faust-cchardet[${PYTHON_USEDEP}]
- dev-python/chardet[${PYTHON_USEDEP}]
- )
- dev-python/packaging[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-distutils_enable_sphinx doc
-
-EPYTEST_DESELECT=(
- # broken by security backports, already skipped on py3.13+
- "bs4/tests/test_fuzz.py::TestFuzz::test_rejected_markup[crash-ffbdfa8a2b26f13537b68d3794b0478a4090ee4a]"
-)
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 5a5fb2a58089..003af3573d29 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -7,3 +7,4 @@ DIST boto3-1.43.56.gh.tar.gz 1191375 BLAKE2B 3e98c6b40c4386ba8f4653af18162537650
DIST boto3-1.43.61.gh.tar.gz 1195670 BLAKE2B ed15e087960531920503f9d929a974b3b339cc870d88bb1a5b10ae5b804e35b99217cea7012a9e00306e84a25e74c7367979a0df5b96dcb67ea0b500fa03305e SHA512 eca58444c4458c9f28511dce75f6b7f593134840fb8e1a205ec6aa979729f92142c9e9241fc6c37668e850a31a295689875469179d9a7f870213314cf768fc69
DIST boto3-1.43.62.gh.tar.gz 1197144 BLAKE2B 574fe26ea4042f0a7bb0d1c408f7de26a3f8968bd7b70fe3cd744d1499c00cfd8683bc49033916bd5380298c3612746d3c84cc663838f5bbc7a341a73b9e70e0 SHA512 f9c8f4aaddcf27683d132163ec7a2d617abcd1a2aaaf46122408ab9015ec09afa898c2dbee361c57c1f2031fb50653ef001f9eccf5cb510e5cb24c1761aa4021
DIST boto3-1.43.63.gh.tar.gz 1197947 BLAKE2B 0d6ff0fb2ce7c1d87368f989b576a46c4a056f2fb7a90306c4fee588002ab979735bed1c59005767e5922f14e7e01727233b3afa7f5cd9d2818fdc20dcd5d239 SHA512 50fd2c3b9b6a78bb32eb914653a34deb1c68f0519627bc149f3595257417a74343b97e481224dba8fbd3956d949f61ed1116bbf74f7b5bfba0c3a95c2daabb50
+DIST boto3-1.43.64.gh.tar.gz 1199362 BLAKE2B 4be6ebbd2f1e0ad2959aa1774271bfad913c28503d1c0f4d47e672295bf12eeb415ff3ab1765b746b32b1f737220bad6b7ea721ca8679a4a040c415e2c8be319 SHA512 b1609521a3830dd2989d4325c59a636e552d1624dc94131ebb8a955cef0f0ae53e829e9219fe27ebdb56a8872e3e1ec57ad357594e5082fee8dffc4f8982c4cd
diff --git a/dev-python/boto3/boto3-1.43.64.ebuild b/dev-python/boto3/boto3-1.43.64.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.64.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 8ec6fcc88b76..61a340f79eb5 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -7,3 +7,4 @@ DIST botocore-1.43.56.gh.tar.gz 16732272 BLAKE2B 4a399f5febf5ff58a49b09f1e1a0646
DIST botocore-1.43.61.gh.tar.gz 16803304 BLAKE2B 9a94cc40be6143a578b4bfe2760992818a30f1d1b7464be307d338837a82e0de1b21b4cad6a32bb7284ee5a4231f3fc1f2473298947f75ea45359b76f8b38e99 SHA512 dee14f883824cbb3c9af9be959afb5691260fde17e90997ea7c936fb0d5a793b00ddabf216eb8058c9291abbaafe6390044ee837837f9b00d8ae6e3e7ddafd7b
DIST botocore-1.43.62.gh.tar.gz 16820420 BLAKE2B f25361a48491104b819ab09b799e7e12428a8636941625eb515e8447d24a5cd747db07f14367a19376c5ab93c3521a0b63ee0db19c6f605f9d901c4e90fa0427 SHA512 6a9f7843146f09cd1ed07181028f3a2f14b26722d2618cb6916fbecd609f7daafb7cce931da09350af2e69afd42f22048cb51bbb8a1a60cbf8e502085f2a69af
DIST botocore-1.43.63.gh.tar.gz 16828484 BLAKE2B 30b3a8ab2bbe38fd21386302b02bd6459f974202ce2554f3c69306b71817d66490847306d203ef3d9efa67519fb2fecb2b9b045b86f96d415bc268f81e8acc92 SHA512 0456763ec549c2189591a7b6ba55a615ed266ec2568242311e4766ff48aa5a4541002072be748c8b55a85802524e6155d2e0fc9ead44840ed05b55f424ab0a4a
+DIST botocore-1.43.64.gh.tar.gz 16850545 BLAKE2B f68420ac2186f84eff4cf061d42e245cabee5a71c52d4db2db8508b538c91ec9132853eda5902591629792835bc916bab0de681b18bb60f2b8a845976b6d6db2 SHA512 9d6fe4406e550e17eeb996b7d98c3682aab7bc1ee5ad35185f89ee877aa3a472cfdebd05b0e827efcf2a30ead49f3dba7a3d5216a100121512b514f46ddd5b27
diff --git a/dev-python/botocore/botocore-1.43.64.ebuild b/dev-python/botocore/botocore-1.43.64.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.64.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/cffi/Manifest b/dev-python/cffi/Manifest
index 66e9b74065af..97cbf5e34af2 100644
--- a/dev-python/cffi/Manifest
+++ b/dev-python/cffi/Manifest
@@ -1,2 +1,3 @@
DIST cffi-2.0.0.tar.gz 523588 BLAKE2B 2038eb1eeb89b1015ea40202cc5dc0da62989288a41cccf75baeea86051a085e28798e75ce0a74316c2f5bd94e83e0b89d3df6b97ee0f4f61dac301e239bb3e9 SHA512 a8bf705e626f6b5858cc20e9044a23fd653d155e2a2d4cb59f1eed00ef13ebd92d5a2f07738c66b361cb24d863786d4379dcd9c176250b546fbd45758e51d4f4
DIST cffi-2.1.0.tar.gz 531036 BLAKE2B 1df5a789895b405d7f842008c49bf0551887d578796c6b3ecffbc8a6b3a8b60f3dcd4417a805f62dfc4deea7ed0119384d9edbb619d22468d3acae1ff1f264b1 SHA512 44c5e434580ba5ff1f2c23bbabe959d49e77a8823648eaab631c46f175c2b4ff3b96d5976b66ef33b93537674a1ba01e355cf836d40de7e2c0557a51f5fc7959
+DIST cffi-2.1.1.tar.gz 530807 BLAKE2B 5ceeb512dc6ec82685ca5e1ffb890f5764911138d1956e72a3f65d1a90b2c152a46bf5ad00a9857acceb04a562d66d253b68c02a22ddd41a6ad29e4340696c9a SHA512 60299646ae72e54155a3ca220f00a2b2fee079276a01ff13e30fb6af0d19b07fb4ae539af55e4704ce2081d34c4a3079ef43c0dcb2fe854f835f8441b348f7c5
diff --git a/dev-python/cffi/cffi-2.1.1.ebuild b/dev-python/cffi/cffi-2.1.1.ebuild
new file mode 100644
index 000000000000..fccae87cf869
--- /dev/null
+++ b/dev-python/cffi/cffi-2.1.1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+# DO NOT ADD pypy to PYTHON_COMPAT
+# pypy bundles a modified version of cffi. Use python_gen_cond_dep instead.
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 toolchain-funcs pypi
+
+DESCRIPTION="Foreign Function Interface for Python calling C code"
+HOMEPAGE="
+ https://cffi.readthedocs.io/
+ https://github.com/python-cffi/cffi/
+ https://pypi.org/project/cffi/
+"
+
+LICENSE="MIT-0"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+# Needs recent libffi for HPPA fixes
+DEPEND="
+ >=dev-libs/libffi-3.4.4-r1:=
+"
+# setuptools as a modern distutils provider
+RDEPEND="
+ ${DEPEND}
+ dev-python/pycparser[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
+
+distutils_enable_sphinx doc/source
+EPYTEST_PLUGINS=()
+# xdist fails to collect the tests
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/cffi-1.14.0-darwin-no-brew.patch
+)
+
+src_prepare() {
+ if [[ ${CHOST} == *darwin* ]] ; then
+ # Don't obsessively try to find libffi
+ sed -i -e "s/.*\-iwithsysroot\/usr\/include\/ffi.*/\tpass/" setup.py || die
+ fi
+ distutils-r1_src_prepare
+}
+
+src_configure() {
+ tc-export PKG_CONFIG
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # these tests call pip
+ testing/cffi0/test_zintegration.py
+ )
+ local EPYTEST_DESELECT=(
+ # Internet, https://github.com/python-cffi/cffi/issues/255
+ testing/cffi1/test_cffi_gen_src_meson.py::test_meson_python_build
+ )
+
+ "${EPYTHON}" -c "import _cffi_backend as backend" || die
+ epytest src/c testing
+}
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index 0b050c11ad74..1093b86c20c4 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -1,4 +1,8 @@
DIST Django-5.2.16.checksum.txt 2615 BLAKE2B d40332f538f509e60fb1f781fdd5f2994e4accda853f24dd6c82c0f289596a4458e567baf278489cecc13df3d9ae05ff1f5c349851c17aee25702ff44067a92e SHA512 6137ce7318f052de4750147eeaae0ae7ba6e10bc796fa257f01059f30039f3c3a5ad9db44a330948146bf1b272a9a6cec0428afafa17d5f4686aac2791663b65
+DIST Django-5.2.17.checksum.txt 2609 BLAKE2B 02c9c13623a5dbed385b41323f8b65173933df368a05d1a1e70fcc1f58a34a983a3c4d001907e35b5b759e1493f3afa157be675077adf7dbb2fbb84a9c26a88c SHA512 b5c5d7b8645669e074ac1a76d3ad307cf1e3d66bbc08ad33abf3107bc1e7b8d43424d2a6cdd6f244994ce33554fd408a292ce6eac03d577d247f4276bdf5f415
DIST Django-6.0.7.checksum.txt 2604 BLAKE2B 2e119945d7bc98eb7363d3996168bf3d408563694caa4102dadd6650e98a00cf40f7560b1d0b0e6ee7e8266adeb7f762631e0670bf5be305d9a3add5ed85be7b SHA512 c51adb820ba8c14787b7c6ea5ab63556f1acd78c121db91d35f73ee275ce00ec91abda68aff027685fbcef09c8713e04d8fa091a30231a621f5d009c67d9a600
+DIST Django-6.0.8.checksum.txt 2598 BLAKE2B e5f3ed079b63754f159c753dc8e74cfc539beade44ec790a318e029ff8a149b0abe90ac31a4bd4dddd7bc563c1a2460ecd51d7deb03520a2f6cc28a41663923d SHA512 f75c78d6506be1d31cf984e029d0bc4e80fa415ac5a83c0e57b5ecc873240da8af4962cb1b262efc032a274a017e265cb8806d397c1720bab247f3592a2eaf8d
DIST django-5.2.16.tar.gz 10890894 BLAKE2B b2424a35e3d1f9fd964ded7c3e5fd8c517686c1a004b3507fb61ac9a6fd2002343975c4126068b109e78bea8a4e545dc6a2c97dd53f8b9128e04b6c0249406ea SHA512 7925e20a35f261c05db6666522420e1f0fbc34a6097ecd4b80e82a4b05e1e5cf0e595355c93a2c15e7d7dbe469fbef152518b747b9389807c99b73886dd00a5f
+DIST django-5.2.17.tar.gz 10889740 BLAKE2B 2cb1bcb7f2f872dd3c01447709a2f35c74ecd9470ce332b616bdf04e5951d38405380af19001ace033351330f7f645ed61c9b628cea21665f92c3757fcda5e0c SHA512 3f960e8227ab71d42f33700e689db6f359411d43efd3b138c59e66aac245a110f33458dcc9e7b27ddbda16b2a1c97e1e56ce00c9ace8294216eded8a4af8815f
DIST django-6.0.7.tar.gz 10921299 BLAKE2B c37cee606d77faa96da298d4331fdd9803c56d45f18f29f271234cb7670055c1cf1abb40230837767cd120ba5c46b7dd030f50f3c1d16be7f8b252ea6b1ab143 SHA512 c9566b26b31d1f6a10de99621e8e9d8e0be1c6b33c643fad00c46f8a2049c7fa47a38b7a9fe51605ee41c0d8a14c27a3ff6bc771910190daf473fe05379690db
+DIST django-6.0.8.tar.gz 10924565 BLAKE2B 9a0e4ff8f0548874080cc59982d64881892bb8c71c4edf346dff68628e6c98366e66a7e4f6e0a39edab0fb7b513e36fd2e3dc41f94743c72dae8113e4fda1780 SHA512 ae763252794b15a0cfd47bcf2eab00cb12bceeebdf7abc7c295ed41cb0b1b60ffbe2c2abbd032de9afaa193d63aa89c5d8df9ce3f58164a2dcb8c70ba6244764
diff --git a/dev-python/django/django-5.2.17.ebuild b/dev-python/django/django-5.2.17.ebuild
new file mode 100644
index 000000000000..3e0954d7f487
--- /dev/null
+++ b/dev-python/django/django-5.2.17.ebuild
@@ -0,0 +1,116 @@
+# 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} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit distutils-r1 multiprocessing optfeature shell-completion verify-sig
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
+"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20241002 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ # d55979334dcefdb11626220000bec97ade09df07
+ # 2026-07-10: force "fork" method in tests anyway, as we're hitting
+ # random failures anyway
+ "${FILESDIR}"/django-5.2.7-py314.patch
+ # based on upstream commits:
+ # b1a65eac7c09250d36e12464fc8fff2a401246b6
+ # ed13a58bf63df94508c8a0fe779da0b6a2bc26bb
+ # e7f539f813bd56a71ca3c1fbf379f47691002086
+ # plus my own fixes
+ "${FILESDIR}"/django-6.0.7-py315.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${P^}.checksum.txt" sha256 "${P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # flaky as hell
+ sed -e 's:test_crafted_xml_performance:_&:' \
+ -i tests/serializers/test_deserialization.py || die
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion django-admin
+ bashcomp_alias django-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/django/django-6.0.7.ebuild b/dev-python/django/django-6.0.7.ebuild
index a6bd7557d822..13792009091f 100644
--- a/dev-python/django/django-6.0.7.ebuild
+++ b/dev-python/django/django-6.0.7.ebuild
@@ -62,6 +62,8 @@ PATCHES=(
# e7f539f813bd56a71ca3c1fbf379f47691002086
# plus my own fixes
"${FILESDIR}"/django-6.0.7-py315.patch
+ # rebase of 25cf1cbb1cb92c6c57b76cc43d697cfdc61f568f
+ "${FILESDIR}"/django-6.0.7-py315-mail.patch
)
distutils_enable_sphinx docs --no-autodoc
diff --git a/dev-python/django/django-6.0.8.ebuild b/dev-python/django/django-6.0.8.ebuild
new file mode 100644
index 000000000000..ad242780d1d6
--- /dev/null
+++ b/dev-python/django/django-6.0.8.ebuild
@@ -0,0 +1,116 @@
+# 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} )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit distutils-r1 multiprocessing optfeature shell-completion verify-sig
+
+MY_P=${P/_}
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P^}.checksum.txt )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+ # based on upstream commits:
+ # b1a65eac7c09250d36e12464fc8fff2a401246b6
+ # ed13a58bf63df94508c8a0fe779da0b6a2bc26bb
+ # e7f539f813bd56a71ca3c1fbf379f47691002086
+ # plus my own fixes
+ "${FILESDIR}"/django-6.0.7-py315.patch
+ # rebase of 25cf1cbb1cb92c6c57b76cc43d697cfdc61f568f
+ "${FILESDIR}"/django-6.0.7-py315-mail.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${MY_P^}.checksum.txt" sha256 "${MY_P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # flaky as hell
+ sed -e 's:test_crafted_xml_performance:_&:' \
+ -i tests/serializers/test_deserialization.py || die
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion django-admin
+ bashcomp_alias django-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/django/files/django-6.0.7-py315-mail.patch b/dev-python/django/files/django-6.0.7-py315-mail.patch
new file mode 100644
index 000000000000..231fe32b2c1d
--- /dev/null
+++ b/dev-python/django/files/django-6.0.7-py315-mail.patch
@@ -0,0 +1,47 @@
+diff --git a/tests/mail/tests.py b/tests/mail/tests.py
+index 5cc9148d5b..5cf7bac2da 100644
+--- a/tests/mail/tests.py
++++ b/tests/mail/tests.py
+@@ -11,6 +11,7 @@ from datetime import datetime, timezone
+ from email import message_from_binary_file
+ from email import message_from_bytes as _message_from_bytes
+ from email import policy
++from email.errors import HeaderWriteError
+ from email.headerregistry import Address
+ from email.message import EmailMessage as PyEmailMessage
+ from email.message import Message as PyMessage
+@@ -3145,17 +3146,25 @@ class SMTPBackendTests(BaseEmailBackendTests, SMTPBackendTestsBase):
+ )
+
+ def test_rejects_non_ascii_local_part(self):
+- """
+- The SMTP EmailBackend does not currently support non-ASCII local-parts.
+- (That would require using the RFC 6532 SMTPUTF8 extension.) #35713.
+- """
++ # The SMTP EmailBackend must work around invalid email encoding caused
++ # by https://github.com/python/cpython/issues/122476 (#35713).
++ try:
++ # Detect fix for CPython issue gh-122476.
++ message = PyEmailMessage()
++ message["To"] = "nø@example.dk"
++ message.as_bytes()
++ except HeaderWriteError:
++ # PY315: Error from Python email generator.
++ msg = "Non-ASCII local-part 'nø' is invalid"
++ else:
++ # Python <=3.14: Error from smtp.EmailBackend.prep_address().
++ msg = (
++ "Invalid address 'nø@example.dk': local-part contains "
++ "non-ASCII characters"
++ )
+ backend = smtp.EmailBackend()
+- backend.connection = mock.Mock(spec=object())
+ email = EmailMessage(to=["nø@example.dk"])
+- with self.assertRaisesMessage(
+- ValueError,
+- "Invalid address 'nø@example.dk': local-part contains non-ASCII characters",
+- ):
++ with self.assertRaisesMessage((ValueError, HeaderWriteError), msg):
+ backend.send_messages([email])
+
+ def test_prep_address_without_force_ascii(self):
diff --git a/dev-python/elasticsearch/Manifest b/dev-python/elasticsearch/Manifest
index b71d53fdd622..e0b176abb802 100644
--- a/dev-python/elasticsearch/Manifest
+++ b/dev-python/elasticsearch/Manifest
@@ -1 +1,2 @@
DIST elasticsearch-py-9.4.1.gh.tar.gz 2556895 BLAKE2B 56563f06057450c071cd2c3a70d96d457d7b03ee5a6e421721cbd2b684a1667b5d4d41e079cfc54105da338f6985c5526a30599817fdb8da9b3e7d83dc8d2d89 SHA512 a8513c2340bb596b1f648509fccbc9855644e8bee3b9aa3f655a85e0ce1a037a07c47ce5e24fe07ed8bd33069806953535c46c52d0e0c05224ab2126c424cbed
+DIST elasticsearch-py-9.5.0.gh.tar.gz 2572641 BLAKE2B 0b5e532c108853b8f8e8065e68c7af33d4b9041db28e3c32eb11b30bca4168757fe75f1bdfa954c253f931fa7dfe444bb9d33301371e571da35bba4b2d9e5a88 SHA512 c3a4b36e0e97d4b2793f37b2032912cd3e6b1b64cd0240c204bc4d9a0b5a0f46ca59dd626de29ba89812ae547ea84192ac90fb2eff02c31dc5e0a2bc51ca5d5c
diff --git a/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild b/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild
new file mode 100644
index 000000000000..8fdfeaa220e6
--- /dev/null
+++ b/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild
@@ -0,0 +1,89 @@
+# 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
+
+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/anyio[${PYTHON_USEDEP}]
+ <dev-python/elastic-transport-10[${PYTHON_USEDEP}]
+ >=dev-python/elastic-transport-9.4.1[${PYTHON_USEDEP}]
+ >=dev-python/orjson-3[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ <dev-python/requests-3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.4[${PYTHON_USEDEP}]
+ dev-python/sniffio[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/httpx[${PYTHON_USEDEP}]
+ 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/pydantic[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ dev-python/trio[${PYTHON_USEDEP}]
+ dev-python/unasync[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/sphinx \
+ dev-python/sphinx-autodoc-typehints \
+ dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=( anyio pytest-asyncio )
+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/"
+ "test_elasticsearch/test_dsl/test_integration/"
+ "test_elasticsearch/test_dsl/_async/test_esql.py"
+ "test_elasticsearch/test_dsl/_sync/test_esql.py"
+ # require nltk
+ "test_elasticsearch/test_dsl/test_integration/test_examples/_async/test_vectors.py"
+ "test_elasticsearch/test_dsl/test_integration/test_examples/_sync/test_vectors.py"
+ )
+
+ local -x TEST_WITH_OTEL=1
+ epytest -o addopts=
+}
diff --git a/dev-python/flit-core/Manifest b/dev-python/flit-core/Manifest
index e1d4e90f3a2d..2b8355c376e4 100644
--- a/dev-python/flit-core/Manifest
+++ b/dev-python/flit-core/Manifest
@@ -1,2 +1,4 @@
DIST flit_core-3.12.0.tar.gz 53690 BLAKE2B 2dbc8cb1803d2b05693d458ab29d141631af268ad1620ccd91d7fe1636eab6c776c5482d94fdd2006dafa8b5cb45cb41d29fb80ac91e29877b43ba8e94ac2bd5 SHA512 189dcd674722164b165e18b11c4dc72b8309fa2e3c82fc1ed6a9160bb5c6c1f86e2b2cfa111603cf73dca0dba74a496a664d5cbb6242587b47f139c42f7ae8bd
DIST flit_core-3.12.0.tar.gz.provenance 9041 BLAKE2B 565e305d207998db9d44d21a857f71e20aff110126f099800461f551bac89a3dd692eafe053c54f4f68a7d9d34b9c60c52415a80ccbce4f577963da59164cc3e SHA512 a59272bcc25fafbba551030602fc0ae7601f2d5aa912a37eedf7e364f69186719f0636cd824c4c51145f1c848b5a8005c5b886a593c9b4c46afd9f039000f04f
+DIST flit_core-4.0.2.tar.gz 53083 BLAKE2B 3825bcb6dbfde73907e2705de94a33d7d128313ed19c9a264c6a8e994fc00937aa85d5c074e4958944f360f0da92b5704ec16d3dbdb3c6fb2ba3b806122ee233 SHA512 d0d3ace00529392cb69813ee975b37bbcdadbacb1ff9ad841838cb821f3732ae3c075fe3c740ca88bf7017b6d49739602382fed4603cfb0f49331f5b5da6dfb3
+DIST flit_core-4.0.2.tar.gz.provenance 8836 BLAKE2B 399becda7ce362501d1526bcea33bcec6b1c45ae595fe791d9fa8d1c121b1d1a8986940792f50910584952c5eb685ab2be3a858225e2ca34f793035c5c34261f SHA512 41f37ef2a0b0f4173a0df3cbff86b92b9bf6dd1605786c2eabf33f8c881c63226a4e9beafeecdf6f6c82d07866fe05e4c20075b4317cceb1ea2986cf9c08a8ee
diff --git a/dev-python/flit-core/flit-core-4.0.2.ebuild b/dev-python/flit-core/flit-core-4.0.2.ebuild
new file mode 100644
index 000000000000..021aff4643d7
--- /dev/null
+++ b/dev-python/flit-core/flit-core-4.0.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/pypa/flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simplified packaging of Python modules (core module)"
+HOMEPAGE="
+ https://pypi.org/project/flit-core/
+ https://github.com/pypa/flit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? ( dev-python/testpath[${PYTHON_USEDEP}] )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unbundle deps
+ rm -r flit_core/vendor || die
+ sed -i -e 's:from \.vendor ::' flit_core/*.py || die
+ sed -i -e '/license-files/d' pyproject.toml || die
+}
diff --git a/dev-python/flit/Manifest b/dev-python/flit/Manifest
index fc314d1199b7..f2878161df35 100644
--- a/dev-python/flit/Manifest
+++ b/dev-python/flit/Manifest
@@ -1,2 +1,4 @@
DIST flit-3.12.0.tar.gz 155038 BLAKE2B f38d846b78a4840fb94869393c5b757fbf54cf871d0318abdfa9172ddde22e0f2848b3ea4a51df57bce8539fb185308628f78d3e88c2ecd20d9ec51f9b825df9 SHA512 f8ed1f0e53452def182453db91a44c9ded5413fe74e2678bb7d56b3640d6ba6f43cccb55ad73e939cc5ca236fa2bf7b3e0f6d77fe4a4f12f90a9e437b561edb2
DIST flit-3.12.0.tar.gz.provenance 8986 BLAKE2B d8ba7c142ac67ddc0b711a806916bad06eb72407cfca75d7543e0963e166752f802984f975d78d430b6e8c8810d340fc9e6989d6a0b4ae9589acf7c33a249a57 SHA512 6105c8ed244c2de39cff9d8e8d9d3b480b6a6a1937e0bd1e1cd5ec6854bbee4d26f95213b76b57baa139132cc88a32f66cdee52b88e1c3db83e59f82fca12b1d
+DIST flit-4.0.2.tar.gz 154725 BLAKE2B fe2b85d8cd79e33023cbdd29beb569de9afda26b452a6211905459e1421a3310e5ebc92348c62c8e3919b2fe8d80ff2a2507774e76b21511b3ffddcc287cc73f SHA512 aa26f1b817e23222cfb775a46e4d8fd64e9d3e0bc623ce0f1762ce30604df9d5c1b076fa6d806f13b058f11bcdb68b39d9d8717f2cbc7d0ffe33b7cc669abd4c
+DIST flit-4.0.2.tar.gz.provenance 8875 BLAKE2B edff0f307dcd89d54c24c32067c3c6663a0d4ab3cb1722b387f6ed506d8f2784a2a827bd33ca83573e8d88f2cf893acaef71d6153f49e332bc89f85c32e93a56 SHA512 0c3a7b87e7e06cb41fe191b81ca0d493e9addbed01a4a494ca35ddbb76212315506bcea905161813caef2e837c98bba4176d7592d2252c68b209c06086e365fa
diff --git a/dev-python/flit/flit-4.0.2.ebuild b/dev-python/flit/flit-4.0.2.ebuild
new file mode 100644
index 000000000000..c79615507f5a
--- /dev/null
+++ b/dev-python/flit/flit-4.0.2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/pypa/flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simplified packaging of Python modules"
+HOMEPAGE="
+ https://github.com/pypa/flit/
+ https://flit.readthedocs.io/
+ https://pypi.org/project/flit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86"
+
+RDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ >=dev-python/flit-core-${PV}[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ sys-apps/grep
+ test? (
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # requires Internet
+ tests/test_config.py::test_invalid_classifier
+ # failing due to Gentoo pip patches
+ tests/test_install.py::InstallTests::test_install_data_dir
+ tests/test_install.py::InstallTests::test_install_module_pep621
+ tests/test_install.py::InstallTests::test_symlink_data_dir
+ tests/test_install.py::InstallTests::test_symlink_module_pep621
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx doc \
+ dev-python/sphinxcontrib-github-alt \
+ dev-python/pygments-github-lexers \
+ dev-python/sphinx-rtd-theme
+
+src_prepare() {
+ # make sure system install is used
+ rm -r flit_core || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/gitpython/Manifest b/dev-python/gitpython/Manifest
index 7aa05f2c4bf5..46a7c9fac999 100644
--- a/dev-python/gitpython/Manifest
+++ b/dev-python/gitpython/Manifest
@@ -1,2 +1,4 @@
DIST GitPython-3.1.57.gitbundle 12996669 BLAKE2B cccc3058e05a812d0ac20112514e31af5e0dfd3eb5b6d0c27d6fdb46c0eea750a8edaa2aacd71940c60a47ceccdf2f3f2a515ee65619d8b6b5440c917f733815 SHA512 24e7997fb0bf548fb430ff18b632eb3eb3374ca35523e100e1a38c500b3178b53f6238fce0745f3a61d6a3210cac8a1a7af37e7f8dc6a281b4cdd26d4a9643f8
+DIST GitPython-3.1.58.gitbundle 13166887 BLAKE2B 7f99c37836dbfe438ee9710e9e8686d1be646dccbdd19a55c9baf3f46c1dfd6a1d362e27167edad82a611acefd093a10ac4d87f8266bbbb61dc78c3a7f755846 SHA512 0eaa7b14827a18b8887adb4ee0e90b960b9aa002227ff0b3cefc6e27a7d5ce22050fe2d6bbafdadd8cfb0b9c5b27003dfd808e699663b07dcdf013c57ff61625
DIST gitpython-3.1.57.tar.gz 225898 BLAKE2B e577b3bf6080280869fc53475538415a2681e3d5bd2f86d0536036480e1bd7f2f2b4c3d0c84f9c263b24a4e130394a16015367f762b70e67b57d337d54700622 SHA512 cc60ceb2649c600e8618556c889418b6a481bfd358a037a0c117e475957b57d90d6b43421b392207b7dc308a6ec06b25e55c0733ccc149ed9308d048cec78fb3
+DIST gitpython-3.1.58.tar.gz 228498 BLAKE2B fcd5b832587b82e2fb51d1a6087c02f294b84418de0c413d5eaa828aff4d2b87e8ead4486b274352d5c9ca09633e63a1c41a232ebf164c671d45df1bd9dd2bd3 SHA512 779e55e5a977b37f6bf46c5b8358e61e07f590d089b27bb402e37fb0b78d35f4a1fae1199274ecb5f7b057f2707057003d946cdc7557e7d0e574d1adb046cb70
diff --git a/dev-python/gitpython/gitpython-3.1.58.ebuild b/dev-python/gitpython/gitpython-3.1.58.ebuild
new file mode 100644
index 000000000000..ebe35bd5a941
--- /dev/null
+++ b/dev-python/gitpython/gitpython-3.1.58.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=GitPython
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+TEST_P=GitPython-${PV}
+GITDB_P=gitdb-4.0.12
+SMMAP_P=smmap-5.0.1
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="
+ https://github.com/gitpython-developers/GitPython/
+ https://pypi.org/project/GitPython/
+"
+SRC_URI+="
+ test? (
+ https://distfiles.gentoo.org/pub/proj/python/GitPython/${TEST_P}.gitbundle
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-4.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.1.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_test() {
+ git config --global user.email "travis@ci.com" || die
+ git config --global user.name "Travis Runner" || die
+
+ git clone "${DISTDIR}/${TEST_P}.gitbundle" "${T}"/test || die
+
+ cd "${T}"/test || die
+ git rev-parse HEAD > .git/refs/remotes/origin/master || die
+ TRAVIS=1 ./init-tests-after-clone.sh || die
+ cat test/fixtures/.gitconfig >> ~/.gitconfig || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # performance tests are unreliable by design
+ test/performance
+ # unimportant and problematic
+ test/test_installation.py
+ # Internet
+ test/test_quick_doc.py::QuickDoc::test_cloned_repo_object
+ # TODO
+ test/test_submodule.py::TestSubmodule::test_base_rw
+ test/test_submodule.py::TestSubmodule::test_root_module
+ test/test_remote.py::TestTimeouts::test_timeout_funcs
+ )
+
+ epytest -o addopts= test
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index c422a3cd2425..5c0c98c43ae1 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -9,6 +9,7 @@ DIST hypothesis-6.157.2.gh.tar.gz 9627621 BLAKE2B f7e9c4bc145912b523339958efde77
DIST hypothesis-6.161.8.gh.tar.gz 9649785 BLAKE2B 7058bec35557b223b4539401c830a806b20f8fae23577782d1917a14aacf64b62c4af3c59df2554b98aff9f21fe93b324150112ccceb1f8dbe21c04b1ed4630f SHA512 d1ee1f48e9589854ed1df59d6be7a385edcde03f325d43573867d8abd44cfa817406c31102c969bcfd8e9c4455c30397379742e1aaa8eaff057f02a77567043c
DIST hypothesis-6.164.0.gh.tar.gz 9665401 BLAKE2B 9d5c5fc98191166cb0da35ac03ae5a377dd5c6d77144974d1b76e8e83368bbf0ad24d3c9ab6cf9758b77db59a5c5863b6ede859f91749ca5ded863fef554d9c8 SHA512 081e8643a6046eebfa4eec792ec001420e07be1acccbe6fc738a7baf476fa705991b34072d5b04dcf1a88ab77b90d6c26f99ee9edb2c1439cef54f16120e0def
DIST hypothesis-6.165.0.gh.tar.gz 9669080 BLAKE2B fae1270a51d0dada2554b9446f9a97d6de05ac4d1f1d7e463ec63ca0bece1a90afed8b799fa53da5ba6bd14c10ed69d18bede30b1eef3af5b5bce65c8b362aec SHA512 997fbe2c06e3a855cf450d71b69c1d483175c58428683534978eb839f5e466635355eb69c43acf2c450b678ddf97e450307ab96799468b65b90f4475c178a141
+DIST hypothesis-6.165.1.gh.tar.gz 9677686 BLAKE2B 89efd4cceac0e13f20651d1624fd7b3d5683a24453c61b95146a9ed84c950a37ebb908aec9334d0a338dc28b50910ccdd03c2c345fd39ee88b08d4411ec6aac6 SHA512 0b77b83adfa06664a10befb6ae90bb03b4ae8ac50227c3e568020f00767f4d899ec108cb4342259db2961cde612b2eecdfe5347629e45d4f55034bbaeb987063
DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
diff --git a/dev-python/hypothesis/hypothesis-6.165.1.ebuild b/dev-python/hypothesis/hypothesis-6.165.1.ebuild
new file mode 100644
index 000000000000..8903f56543dd
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.165.1.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+CLI_COMPAT=( python3_{12..15} )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+RUST_MIN_VER="1.91.0"
+CRATES="
+ cfg-if@1.0.4
+ crunchy@0.2.4
+ getrandom@0.3.4
+ half@2.7.1
+ heck@0.5.0
+ libc@0.2.186
+ once_cell@1.21.4
+ portable-atomic@1.13.1
+ ppv-lite86@0.2.21
+ proc-macro2@1.0.106
+ pyo3-build-config@0.29.0
+ pyo3-ffi@0.29.0
+ pyo3-macros-backend@0.29.0
+ pyo3-macros@0.29.0
+ pyo3@0.29.0
+ quote@1.0.46
+ r-efi@5.3.0
+ rand@0.9.4
+ rand_chacha@0.9.0
+ rand_core@0.9.5
+ syn@2.0.118
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+ wasip2@1.0.4+wasi-0.2.12
+ wit-bindgen@0.57.1
+ zerocopy-derive@0.8.53
+ zerocopy@0.8.53
+"
+
+inherit cargo distutils-r1 optfeature
+
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${P}/hypothesis"
+
+LICENSE="MPL-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+QA_PREBUILT="usr/lib/python.*/site-packages/hypothesis/_native.*"
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini, i.e. start with hypothesis/
+ local EPYTEST_DESELECT=(
+ # broken somehow (xdist?)
+ 'hypothesis/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
+ )
+ local EPYTEST_IGNORE=(
+ # require syrupy
+ tests/cover/test_custom_reprs.py
+ )
+
+ case ${EPYTHON} in
+ python3.15*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
+ 'hypothesis/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/logbook/Manifest b/dev-python/logbook/Manifest
index 8afaf4fca3c0..148925205cba 100644
--- a/dev-python/logbook/Manifest
+++ b/dev-python/logbook/Manifest
@@ -1,20 +1,36 @@
+DIST arc-swap-1.9.2.crate 81495 BLAKE2B c829edef080db5363a42df0b0d142a16be0455cf5d7ae431d89470dcc5b8f9e8ac6cf2b5f6b85078a6c368940e7f7558d9924e69d0b80c68b765d1006ac600a1 SHA512 271b4c6815f2d53309c631f184fd96c4e252524b15e1d477b7d530f5aa4e5393abdf19aba855df3bb9fabae4ae524f40ee84f43951b81886ae5b0728f574f29a
DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73
DIST libc-0.2.177.crate 792045 BLAKE2B ecea1ade26b0faa9cb5fb025e237f3a59dfb562e7b3de3682b42a41038b1d436e83b42b53158c1fc1cc4b1cc64ab55ba1497e869ae850a677c089fcce9138912 SHA512 9d737091dba80244137987d06a52ffcd44a968c96b59ae9af9cfa40c38cb9675d023f6324fbf25c436ce1b9592ebf26248f85b0a7c97ee02360ca624b0efb3e0
+DIST libc-0.2.189.crate 851502 BLAKE2B 05155a249c6880ca96a19bbb7569d4ca7530f544504e4ccb48db1ebca0b70d84e99c6b9532adb9dfbb3d4d1187eca22698a6b2ba6ae40bebf5d6eafdae86c71d SHA512 0cf621171ed4e6bbfeb71fb582ebf037d62ab481bc406ca2fb766bd4a8416f220a189325a0d3cb3e3cb39d80e09312516ca6335fad71b329c5fccddabedf4110
+DIST logbook-1.10.0.gh.tar.gz 510432 BLAKE2B 3578dbea809d2b9cd560a078dde9b682af5e89e9b032c9cc9a52b2be5515d5ee5e12985f83acb0c51c3faeb32782eb13dea442929d9847cfd145f0373f2a322a SHA512 b8d68eb07e60f684a029ff60dc90ce384ca4d958eae656429fb4f19ddd4eafdf44efeb6a9d0667dc7a80ad185b8329880807e941a3baf14e020d8ae5a590b053
DIST logbook-1.9.2.gh.tar.gz 483654 BLAKE2B 2482b7ea10ccb4944bce4ae29ede9cae7e05c1cf1ae4e666f8b614178c65ee34368ff7e6cab2db4c42f89a93f959c92ee82c71f22b4a6cc3d56f07f6e2951e57 SHA512 af3327dae9be464fc3ad1cef2f44d1882d0aaede0ee186509eff844d1818c0717d0f2f2d34bd1718ecdaec099bb961889c2cf38d4941fd99e259a30d32de61be
DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
+DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
DIST portable-atomic-1.11.1.crate 185506 BLAKE2B 953bb1f2059dc1d891305eb89945f1f6a172fa50972725aee499de72b5dd9b4ad8ccefe4e891183ff8e6b64f4d1bb45ec33b06e0f5af34c940f817b290f746d9 SHA512 4c037ae0b4aef43077bdbf803389bc078d963f20d023e2e1d339a54f67fa9b27c174e7c1b6eca8881ecf301e30c431632d2c0dcedfb5b19552892fac0f81e2e1
+DIST portable-atomic-1.14.0.crate 200703 BLAKE2B 2aafdf454dd417cf7a3ff7ff72cca1bb1274918b8b15a0b1ebd4feadc4bafd87544938c26e001e1bb417aafa641521dba40a36ec50db59d03bbdc04d855635f0 SHA512 4c306fb2767b1689be65e57552260c2367f37808d0a32affafa21fddacd330c7735b0c3c8fe456fac10c4088ca5e8ede980b6d6da2171fadb682b925ff9a2c63
DIST proc-macro2-1.0.103.crate 60024 BLAKE2B e5ce5f77838fd063b5615b1555db02175621135132de6aa7479d67fd0a34c15e8235290112a728f3251cf913a835bf0aafaf6930880511427143b63152047259 SHA512 9a6964a2ad24dbb1108b7018882ddb48cb6e6f652d1c5eed1cac94602539fc71f011a0a276765778df161edbd6387bf03a8505d93565e0c106f09e98d7d6efce
+DIST proc-macro2-1.0.107.crate 59588 BLAKE2B 91df0c573e3e1f09c1aeedcad0381cf18186d72c3d50b077b1d232fbb67d1c87ed09f3c6dc515140041c2dab5ce7706042c8235b93099df7d1c962d4a3a99160 SHA512 c109d5509624a57156e0eae22a3aec89a1a163623e8b4e376a13d872a46e4bf6855ee3cd4428c07cdf5c22f2284b6ce755f9cc7e075480e4587ce4f2d40fa903
DIST pyo3-0.27.1.crate 1172212 BLAKE2B 29ea2d7dffa41ac5414aa5bc537b90e5979dd4a05a04c4cb1d2b70d6d5b7f9cb506fe864236f65495e7646406b695d5891af5cad2d67fd665a1ab4357fa31921 SHA512 f4c8d65b0a95633850597d6b29298c4a14aa3239fa245684cf6caf275f070698b35b03bfb3f256aaca0cec0d31211c51e2f2650a9d12eddce2a4d5d1f81e06a2
+DIST pyo3-0.29.1.crate 1254237 BLAKE2B 6750e917cb1c0caa196784890644f020ac68ae644adc487bfd908e54844b28032d3cd66a8312cfce860418ebc31ec2515fcd332d79cf23487013fbd72e47b98d SHA512 d3b8c94a0e73fe74f64bae89bc9ab139d48b37a128f3f3d843b4414441a79716117dd47ebcc3f6990c50283071a72a372a4f6c731c846cf107c714442a164b67
DIST pyo3-build-config-0.27.1.crate 35565 BLAKE2B 2dfb7e1c07ff0f7cdad8f77e4a33ce7696f914f29d931c967f0fcf24fe257b6e421cb2f8e2820a5e66440490cfd96eb733073651a153fd6932f2da5c1068187a SHA512 9add95c372ac2db8e3e719ca2b393aa1e18b6786a7d34e113b07a7e0ad9698ad2d3753a1e7707e4df1edbf62c4fba2df6e0227e5658d5d368ac1dbf76a0e9455
+DIST pyo3-build-config-0.29.1.crate 41344 BLAKE2B db2accea141aeccf208dbcb8569de45c35d8c1f91c33fdd221a54675f3911b922d29e46aeefade60a06ebe9aaa0f30817628847f903cf7aa1088b932b2ce0e87 SHA512 cda7b88d6089530b85cf22eeb073471e988a3ede5963dbd51be6878baa5d29b64edf1733ab5d6057d2da470b6279569dafc800e0195f574499ab0c5022d6bca2
DIST pyo3-ffi-0.27.1.crate 78517 BLAKE2B f0a093a594e47856c6458da59cc41d5b772be369fb245a1c09f5264464e0ddc527b243cd451352c7b3b1682fcb26cb1d7b93abfefe19411eec8de73d98918b74 SHA512 5bfb8e7982b0d9ddf6fb2c2a4110b43c5b4bcc6f0a14acb50af329742b6eb9993df2ffe88bc34732fd0a58ca552df1b071fa8efd7b38d3441a7b9f45245168ea
+DIST pyo3-ffi-0.29.1.crate 89131 BLAKE2B 466eb3253c2dd04b784c0c221fce0e1a380f1b6bc4369185c9bd09359c8f6030c18fcba8c9a4ca461acedf666a2a226c1249c79bd04ee4791e0f2a21fb9436a8 SHA512 1f13dfc3a39a2a731baa7ffcac1d6bc107cb622f0bfaf37ca5a20f65948da11acd073cb9d293503ff73bacd91f2e0537a665aae0a14bbf2785b516c7c85bd6f7
DIST pyo3-macros-0.27.1.crate 8918 BLAKE2B d98f155ba4867fec265b7ab82a89d6e025259fc113d9bcddc179a0a0df961ad36cafee1e781ef8fee6d607b8f943b6a095c0a1a188603f9be624a663170791d5 SHA512 7d33a363e464e2fe5b4fe4b958877c695542c8e18a0b512868d579455c9c6072d8a4c00a36b069bf8b54f7dade9847b3968c3d3f40b0b2b54fcfeff44f0afef2
+DIST pyo3-macros-0.29.1.crate 8916 BLAKE2B 0d8bcd79a9547f0a42f87399c3e0eb21444065fea750416050ae336db242de80e41a9bda157feafa3f40317e4b163cfd5193250a5dbc2dd8a1ab18b0f3d3d67c SHA512 09e7dca8ef73ab572bb71e78f6edcd786b769813e7b8758df17669292e8218ed5c4f4536f6809ba0c58fd49837f22af5181d034de556b0c98f21b9a69484a716
DIST pyo3-macros-backend-0.27.1.crate 82521 BLAKE2B fc5a1516eb0c55525cf648114274a741a01ee215cee8ef5ba44c0da225b98c1db15d3459f81028ae5b7376fcaf4744a59a34ec345403097d7b374aa8cd9d1e50 SHA512 036147deb1ad48815e22c84071069ed4eefe6b75c95cf727259231d63f0dbde00310983fbe90ab1b740ade071a22b9bb09073d6f120b519242c4bd8989bf3202
+DIST pyo3-macros-backend-0.29.1.crate 93202 BLAKE2B 2a76e0a701830866f6f3031844c1c81066e1b17b20a4d4f688173cbc789c26cd5da54a11af6dbc6153f73e5c72d7e808625ea46dd446be43e633afaf439f844e SHA512 1b3d8e81506c78a0b91d2fbdffc2aeef1752cb6b8d9c8b70e957e898dbb09c395d2e1176f8d9da89b3305391315f9945ae2252ce485f649c57df215a740cde72
DIST quote-1.0.42.crate 31504 BLAKE2B a8106c0fe3953bcc2aa421516dfbaad6d6cb2ea839b2ce1447a45b8732dad40a921c2008b477bc0fa029dc0e0357a339db543b1f90bb9da77a5a3681fc16bed0 SHA512 6d55047312de6bab660459750c54213e986f0a80b4458fdb706c2fb3bab83b8239cd230dd9291662076d395c818a391142af1228ae3158cfa4960d6c74d531ba
+DIST quote-1.0.47.crate 31622 BLAKE2B d912f17bdb5f2db29f5349e976e12da52db9d2197dd9900cb00e907d1e9b06ab177e9b020c1d53f6a6cd087e3a973aed5af63eac282da77792b2a6d6e1b35b07 SHA512 544f4324d425ae011905e0d1b52e367d4660bc34457b2f802af94e1def1e6c4e39ffba3beeb40d75753967d15b6dccce18fea273e7f3d46b63d5c89898d19441
DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
+DIST rustversion-1.0.23.crate 21013 BLAKE2B 80c4938e8663b095668809e4c81f4621582c4951b8b42eecbecedf5577e7555bf80944b6753101f5f87bba6f9856781e402ffd952600820b1c5830a181066798 SHA512 95baec2c1d8475661677ea35a724c392ed10b1151a1f4522b44133c6d691824bf4a42327ebc9d631a1f64f944dc721843e0aa0e19354fc4fab89aa048f1c68f5
DIST syn-2.0.111.crate 302117 BLAKE2B 9fe6c0bbeb432d67f4c879956c505d160f7be418cd16b48a5430c1c4c4922251007e3d85bf219daa16a7e9d8f32c15fdc2ebd94bdfc762135cb27b897590d484 SHA512 f30fc819fc6c942cde044b6bbe608f96736070717f28da71ab4ff68aa9e780416829152da11a83513fbc0de88337c2157e4fd1e4a029ebcbb64daeaa54dbf768
+DIST syn-2.0.119.crate 307407 BLAKE2B 0be3bce1250db4818af7246a03352ab50faeca02b81126fd623bd473d7223693f43914e88e07baa0d7fa5473192e390406165f83e00dbff048c1ea373085eced SHA512 4f2493e334b71c2b0c467e19915d385942c10dc4c0142dd989dcfab9809dea552c45ac3da0b0039956a961f7aca2973c0845c6978e9dfe25c03fdc52dfb1dec0
DIST target-lexicon-0.13.3.crate 28498 BLAKE2B 397315667737abde41949081f8377f704c3a1105790162249a9f0c08b60f012e67d66550e9063d900ac98f5191d13c5ed23d1a8045f99373e7a673a3cfc029e7 SHA512 23422df6edb2a8cb0a9f048864faf76ccb27d6e97fbed7b208b77206941b196f155896a0381150e387142e976439a0a296dcf4cbb4df6bc0e11c65f97f979443
+DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
DIST unicode-ident-1.0.22.crate 47919 BLAKE2B 766f52249631092af952df717e09e1eb0d2a8e87c45e65113f0b2b88b42e8b406a87241fadd368ceb9e13339362b48cdbbc6f699f95f448ab45dbbd861615d62 SHA512 81666679aaa2eebfe1429827fa2a88ee0b52bd69723067132c24252070133b3731287bcd880ba16d16274f038c7b27bcf637e9150b6cd955fb4ff49642078125
+DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unindent-0.2.4.crate 7422 BLAKE2B 2e7870cd4f78240dbb1e5fb9c0f9b55c57bb40242fe668f105a0e862f1d6300e31efbffe0cdff676a5f96a8d19dfb148f88bfef1cd8a710556d777fd0f4ee37f SHA512 58bd4fd20a0b0a7200e0ea3ea70553cea135a5a8f7a2fb178520c41228f435becce4b9981019b7c73a17df87a2ee9b2a47c4cec29a3011bfe848d48b2473761b
diff --git a/dev-python/logbook/logbook-1.10.0.ebuild b/dev-python/logbook/logbook-1.10.0.ebuild
new file mode 100644
index 000000000000..313b9aabe955
--- /dev/null
+++ b/dev-python/logbook/logbook-1.10.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_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+CARGO_OPTIONAL=1
+RUST_MIN_VER="1.83.0"
+CRATES="
+ arc-swap@1.9.2
+ heck@0.5.0
+ libc@0.2.189
+ once_cell@1.21.4
+ portable-atomic@1.14.0
+ proc-macro2@1.0.107
+ pyo3-build-config@0.29.1
+ pyo3-ffi@0.29.1
+ pyo3-macros-backend@0.29.1
+ pyo3-macros@0.29.1
+ pyo3@0.29.1
+ quote@1.0.47
+ rustversion@1.0.23
+ syn@2.0.119
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+"
+
+inherit cargo distutils-r1
+
+DESCRIPTION="A logging replacement for Python"
+HOMEPAGE="
+ https://logbook.readthedocs.io/en/stable/
+ https://github.com/getlogbook/logbook/
+ https://pypi.org/project/Logbook/
+"
+SRC_URI="
+ https://github.com/getlogbook/logbook/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="BSD"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0-with-LLVM-exceptions Unicode-3.0
+ || ( Apache-2.0 MIT )
+"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+IUSE="+native-extensions"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.14.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=app-arch/brotli-1.1.0[${PYTHON_USEDEP},python]
+ >=dev-python/execnet-1.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.3[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-27.0.2[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.4[${PYTHON_USEDEP}]
+ )
+"
+EPYTEST_PLUGINS=( pytest-rerunfailures )
+distutils_enable_tests pytest
+distutils_enable_sphinx docs
+
+EPYTEST_DESELECT=(
+ # Delete test file requiring local connection to redis server
+ tests/test_queues.py
+)
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/logbook/_speedups.*.so"
+
+src_unpack() {
+ default
+ use native-extensions && cargo_src_unpack
+}
+
+python_configure_all() {
+ if ! use native-extensions; then
+ export DISABLE_LOGBOOK_CEXT=1
+ fi
+}
diff --git a/dev-python/mako/Manifest b/dev-python/mako/Manifest
index 0e3cb018692d..d464f6a04f85 100644
--- a/dev-python/mako/Manifest
+++ b/dev-python/mako/Manifest
@@ -1 +1,2 @@
DIST mako-1.3.12.tar.gz 400219 BLAKE2B 6ebbf366b733035b899bef86f970054450037c80df3dfe9c85b23ad6c6e26e385a82271a0e722e3718a28801227efe45e60ffc49864c90c4c840866706c52ccc SHA512 405de95c7656e00458015b84131e8b32d399c4d8f738af690ab34d21b2f57113d2736b7e91d862175bebf578191f62d49fae3533a65c2e469abc36cb1d95b886
+DIST mako-1.4.0.tar.gz 409686 BLAKE2B 377a7bcedb0cbc71ccd5f4b8c1e80873ffbad717e0767b40a2048ee7ecbcd348ed7992ed11d5156d59c4cb22c6e9dd7c0e4f501e6901cbd94c4b157cde07565d SHA512 ecd1ad30e025450caad40330aafaefa4d4d75e4e76eea75c78aa723704a22e2792c35e56331b5fe4bb2e79fa07f4992fd83a1acb1c258281c2ff958692b074f3
diff --git a/dev-python/mako/mako-1.4.0.ebuild b/dev-python/mako/mako-1.4.0.ebuild
new file mode 100644
index 000000000000..df73ba14d238
--- /dev/null
+++ b/dev-python/mako/mako-1.4.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python templating language"
+HOMEPAGE="
+ https://www.makotemplates.org/
+ https://github.com/sqlalchemy/mako/
+ https://pypi.org/project/Mako/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="doc"
+
+RDEPEND="
+ >=dev-python/markupsafe-2.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/babel[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_install_all() {
+ rm -r doc/build || die
+
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/os-service-types/Manifest b/dev-python/os-service-types/Manifest
index b1e9dcb40643..093ba341db03 100644
--- a/dev-python/os-service-types/Manifest
+++ b/dev-python/os-service-types/Manifest
@@ -1 +1,2 @@
DIST os_service_types-1.8.2.tar.gz 27476 BLAKE2B 17084545aa6183822a81a5dfb1bf543dc0457dabb66c54c14038a13e834a7d018eda16833828e16de15cb4daaf4d700979fad6d7a10871effa1ea52ec8ee7e7b SHA512 a7e62855848496b31c784b2e8cb025c4ae4ea4cb47ed55f4ab1a05d5c654e93975ad2334ee8e1a9c12683ebbb224319aa10fd4bb6be0f709e7753e9fa322ef7c
+DIST os_service_types-1.9.0.tar.gz 28087 BLAKE2B 907335cc01857b742700e8020d5f3509302b56413f34ddf870145148c72fb144eb93049a5728601c929fd16ba6f824778e7d981d8d68ecfb4c3b2b417e4c33e8 SHA512 607b2b140a51093304116fc84a2c2ca6b4b7e9abbbc21640b3b4316dc790e711be75e05c8a53ba9184a15905660c3d9843f3e6d2e0c66e373fe04fe4a29dfa7f
diff --git a/dev-python/os-service-types/os-service-types-1.9.0.ebuild b/dev-python/os-service-types/os-service-types-1.9.0.ebuild
new file mode 100644
index 000000000000..2368f91f79c0
--- /dev/null
+++ b/dev-python/os-service-types/os-service-types-1.9.0.ebuild
@@ -0,0 +1,36 @@
+# 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 library to handle official service types for OpenStack and it's aliases"
+HOMEPAGE="
+ https://opendev.org/openstack/os-service-types/
+ https://github.com/openstack/os-service-types/
+ https://pypi.org/project/os-service-types/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-6.1.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.1.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ >=dev-python/keystoneauth1-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.8.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/packaging/Manifest b/dev-python/packaging/Manifest
index 706f61df2b9a..f80484c07913 100644
--- a/dev-python/packaging/Manifest
+++ b/dev-python/packaging/Manifest
@@ -1,4 +1,4 @@
-DIST packaging-26.1.tar.gz 215519 BLAKE2B de311aea3af5d7fe1414c6c3aa667b7835d47949c26d5298e1172c1bbb6c9f75646f99f4b7a633f7d2b1b13677a19d6f497912a35531baf6b7d0edb0db1e4075 SHA512 37dfdc50da2701016ff8caf7053c7d06ed3c8762ed22e43f8001c12b99b00251f960d50e8bfa0294e37069091135ef6006c7b3b92d05fde2b934cf336f0fbe1d
-DIST packaging-26.1.tar.gz.provenance 9178 BLAKE2B acb6131b39570cc582506163fd2b84802c36fd29c3b3c2b61470bf12fb352f77498429d54efc32e469a5189f94ba28df9334ba5febbbc0fde46e201d9962cc36 SHA512 46873132db3e0cec2c383965e68d495645a44e16059758fb88287c2e4b8e6d06f309f03a9658b21381a89b2dbb0265123a99e42059816dbc7f33b2c6d5766828
DIST packaging-26.2.tar.gz 228134 BLAKE2B 5d19304c33c560fdc5e1784c2cc0ce8b7033957c2484ff00d7b07110e2d49c84c14c40066c93a9fada23dbc47a864ac4de16afec5588031c38b084a9198d40e8 SHA512 cefa0ac8cfade3e86d73c62e79aff75e7e24337495f6e675c20ddd3fa3f3431eb48764a34e5ab0bcdacc0d2204afdc0088686d1f3f6880e9a8ae055da4867f15
DIST packaging-26.2.tar.gz.provenance 9601 BLAKE2B bfeddec8c935693875dae1b6a5f6c8309a3a9ccaf0a814012795c97df3f08ec2ec3dec9e69179363f507297b42ee18e404039e0573c9ca1287eca4ed5544ba32 SHA512 05f2c47a7cfbd175bac6731b87d59daf4d072592787e7feca26c203478678e90451cfce405e0fd2b82ca8db64f29cbd9f01a73bd3fdfc7eacdb4b3b1d9a7fd35
+DIST packaging-26.3.tar.gz 313412 BLAKE2B ac74f7ec270d5b966820ce151297e59d82f6d9bfefb5789fa812ce5610077eec279f414f0ed6712520f07b600ff8d4ffb39e03f8e32239c987036e9f7206622c SHA512 6a649d40efe6e6e9a7aaa1c4be9dc9e5eac40c35c57834407f9e610cda9f7c9c74d42bd2d5d86d3a7637cfa0201ad534997da8697acd7e5261f2fa18be478a95
+DIST packaging-26.3.tar.gz.provenance 9664 BLAKE2B c098ead2db324ac1804d604af88043021bf1ae0b05cbaec7d58e08ae37395b023fc18fb32d7316b2250cb97feaa6c58c5b5ec9b3f94baf346ea8514850d62456 SHA512 df083a9d8ce3a821abd30c9bc9fbd8f6b78778728fa404c71a48296c84fa931c17b4e6d36745d7616c803925f91eb994c47db0df7501fc5ec9e33edab4ef5593
diff --git a/dev-python/packaging/packaging-26.1.ebuild b/dev-python/packaging/packaging-26.3.ebuild
index b2547ea74efd..8c7d25b7fccd 100644
--- a/dev-python/packaging/packaging-26.1.ebuild
+++ b/dev-python/packaging/packaging-26.3.ebuild
@@ -4,7 +4,7 @@
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
PYPI_VERIFY_REPO=https://github.com/pypa/packaging
PYTHON_COMPAT=( python3_{13..14} )
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 BSD-2 )"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
RDEPEND="
diff --git a/dev-python/python-gammu/Manifest b/dev-python/python-gammu/Manifest
index 0e633bd11ce8..e292211b26f7 100644
--- a/dev-python/python-gammu/Manifest
+++ b/dev-python/python-gammu/Manifest
@@ -1 +1,2 @@
DIST python-gammu-3.2.5.gh.tar.gz 149125 BLAKE2B a4e3864698fd826cb16f9d20293f8d97cf0234433fcd2b8691ef8e5c5c2c9d90cd21acb9cb81d85dae404579b720f89885a491944657d9404ea6d2ce4ebd9096 SHA512 57b665636d60a463a7de25bfcf632d2b067a14426cb355ae6f57d97459229a7c9af3d274426fb9c52930cd66d0640e9e57cb00eef80ec63ebfa34678462ab2ed
+DIST python-gammu-3.4.0.gh.tar.gz 152822 BLAKE2B 42aa3ae968f81fdb7276fff82617351f84a744205d90eb4be130fa364949c1d195fe062e965bde51146fce491218f4c8b1b060df64418be652427de098d97a95 SHA512 868daeb3feb4150da69404b95b2c09559959e791d88e263c03771fe1316f8047f01dfe2575032005b4f46839b10b1f0dc96159445036505f07d3f8b438cbc358
diff --git a/dev-python/python-gammu/metadata.xml b/dev-python/python-gammu/metadata.xml
index 5f33304011d5..309fa0e63ca8 100644
--- a/dev-python/python-gammu/metadata.xml
+++ b/dev-python/python-gammu/metadata.xml
@@ -1,5 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/dev-python/python-gammu/python-gammu-3.4.0.ebuild b/dev-python/python-gammu/python-gammu-3.4.0.ebuild
new file mode 100644
index 000000000000..221495de491c
--- /dev/null
+++ b/dev-python/python-gammu/python-gammu-3.4.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 2022-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
+
+DESCRIPTION="Python bindings for Gammu"
+HOMEPAGE="
+ https://wammu.eu/python-gammu/
+ https://github.com/gammu/python-gammu/
+ https://pypi.org/project/python-gammu/
+"
+SRC_URI="
+ https://github.com/gammu/python-gammu/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ >=app-mobilephone/gammu-1.44.0
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ $(python_gen_impl_dep sqlite)
+ app-mobilephone/gammu[dbi]
+ )
+"
+
+DOCS=( AUTHORS NEWS.rst README.rst )
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ rm -rf gammu || die
+ epytest
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ if use examples; then
+ docompress -x /usr/share/doc/${P}/examples
+ dodoc -r examples
+ fi
+}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 0bf2190ee83b..6a00961e6ba3 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -10,6 +10,8 @@ DIST Python-3.15.0b3.tar.xz 35459584 BLAKE2B 613f3609775df8b899603363a5e6cce39d3
DIST Python-3.15.0b3.tar.xz.sigstore 5687 BLAKE2B fd74f7eae99854979980740fb5af2f75fcd4a37548667706fe3f301d213244af987afc7a5395d85df48a04f42f0f660ab6c2b717085c43077f7da5b0413aabc3 SHA512 0f9241d114a1b390f547fbd0768be1375d1500c2e9b8d851a3ba87a5d8df1c0963e69c8798dd5576298f0e535860b5faa69ead5f41549d1a4b0e6228603b5a26
DIST Python-3.15.0b4.tar.xz 35509544 BLAKE2B d7fb1fb55cb75ab28971dc4ce575a61213b2041d12224b387ca6e2c176c818d37f4db07c4064cecdefae794befbd2247cacda43b33dd28485e9a6e547e9b6865 SHA512 ea668ea51334338aa44ee6ab20d9acb958fb7c41c1bd8ef3b91048d80a27f7aa2b2bc7b4c4928714b22c86a7a7719e7c09ae2ac82fc3f3ad01ca3a736f85e067
DIST Python-3.15.0b4.tar.xz.sigstore 7105 BLAKE2B 78f8667ab32ae1353cb1475a9318e669922d475e0c31fd5e5bd86f944dc318d33299b9fbb6d00eb833cfa0f33dd0f043a6301f3e09f25fb1af892f3bb3a633b2 SHA512 df6545bc6899bcaafa056066b25a35de010a64587af223060f14ae35313b18c9e221f8bced7e256d2b3f9f13fa56c86a1cb8feefe0e24c7ad2efc41e4bf115b9
+DIST Python-3.15.0rc1.tar.xz 35516700 BLAKE2B 97bcfd712f442c0811591c4e23b29840de9755893f5ac03c3a10eaf68682a9620b39d147cf857c319b047b1d816b521b9e1e9b7cb21321974d50bbc1b8ce8c3b SHA512 70dfe0b18bf769206d50d1efa2d3c5d3da7b8333139d9d7f8f404bc8273cdf86348714a7c94869b4af4a38c0ee45559ad0bac6e90e434f11f1ee07ebbda0618a
+DIST Python-3.15.0rc1.tar.xz.sigstore 7297 BLAKE2B bc1c314774909316c1860e3bb947740ed9beaa00821416459b9f66eb681a2467a19ca0187ab515f54829a3df8fb3214ac2bf8c68d1b6ead09b5c810c96253fd4 SHA512 1ce9eebc29918a5a74378f3af893104b957a5565cd7f3878e099b799787cc731caccd70f6e8fc450bc4f6a6690e1e1570fdc9ee6722b67fad455e3b075881f7b
DIST python-gentoo-patches-3.12.13_p1.tar.xz 12408 BLAKE2B 2b232c2742eafcb803713c837b4ddaa38f45c88e707ec272571739570f9e2e5c94644681369d887992eadf5f0c1178489f1aa3a7d8163a2aa4ce6a86732e73da SHA512 e06d78ad24c9fbc3fa9c47b25ba722342ddd140aa30f624b41d605dae40d00ab956d879a247db2d7980c063a1472de40587a0d3cd6947e560aa7e8d0e4f89309
DIST python-gentoo-patches-3.13.14.tar.xz 9360 BLAKE2B 257a43992b857d44881174b36b0940fab3f879060938fe6e6464ae671832a3af624a0cc6f012e44ee344a34d0a8da0c898a29176029bfab70086434fbd3c3b99 SHA512 0084ffc35ff81a7056dd7a3624083ed957fbe482b1cbca9e401ef5851e0046b82b9102f4cf358f2974d7a7dfb3e21e96dcafe6c207417fa01834b9d10a2ee8d6
DIST python-gentoo-patches-3.14.6.tar.xz 10312 BLAKE2B 3415bb7859cdd8754987afdc7d0c793833755698a9a6b7e7b7c75d2c203109640cf5c1aff49ea38419273959479fb745cf956cae263515d82c0e7e67155be5c2 SHA512 19cb6f1424165153d2834b310ef6f8a0ac047351126191457fc0ce49238a6b21fe8a427897a5ce19bdd20076abc2189c71175981a67ab07dcbdec759b80005ab
@@ -17,3 +19,4 @@ DIST python-gentoo-patches-3.14.6_p1.tar.xz 12032 BLAKE2B 315de6cb5f346c6406e12d
DIST python-gentoo-patches-3.15.0b2.tar.xz 3436 BLAKE2B fa2128b899f2d93078058ccd3e47b780bd092a841b07add94da61a55bb1f9846ec1fa5e00bcd78fcdd1d7da80fdf1dbabcc5d644a70cebce2018c457b186c74a SHA512 e92e87c027c8d777faae20b264cd83353dbb23d15679e99465f014277d02078b8c68fce3723e176cbebd94ac2057e5a9703f0ae5f5691e934b74947735ec3a86
DIST python-gentoo-patches-3.15.0b3.tar.xz 3432 BLAKE2B 994e9339e00dfa4b40395e763f25dde4813d791151787028dafcf2e5159c38bbe88d4b56d07fc4c7454a09bd55edfda94b9cb8cf5c0ff0ffe7db4bb1a8eea8b6 SHA512 8c3a8dea43fc42179679b1f6811979dabb4e1c34821b4aecd894d661842df26e7592f5c74787157f36ccddf9ce233994c774fbe8381dc0ccaff3dfcff0c6c572
DIST python-gentoo-patches-3.15.0b4.tar.xz 3436 BLAKE2B 82a8b6a3467613229b938313f69dca219793fe5e4a16266483705f00062eec30f775bbaf4b50aa38062a96377a44071f2d29b5ae7926a003d3b70094ddc0db5e SHA512 0858432978d85453ca136c4b54737c6df8ca536852723f0625984ca7cb4aef623286d94e34b8ac80f2f7547a8fe95390972e569bdcdb30c93f4466eab586022b
+DIST python-gentoo-patches-3.15.0rc1.tar.xz 3432 BLAKE2B ecd250cefb140de9b9072e4fc256a21c0f2b0a372a4fc715cf954e04c8b5ed8932f9729e14fa1c31edbca3db72b6c9fade2bb4571544e26425bfa841cbd9acad SHA512 2d587b31bafe712f87b79c93fc197e7232da29a14df218ec495a57a50a92d1543dc5fb32214a5ef83dc2b0dac22dad493a03cac39b25566f1b4688d810dacefa
diff --git a/dev-python/python-tests/python-tests-0.3.15.0_rc1.ebuild b/dev-python/python-tests/python-tests-0.3.15.0_rc1.ebuild
new file mode 100644
index 000000000000..f3a756fe9c02
--- /dev/null
+++ b/dev-python/python-tests/python-tests-0.3.15.0_rc1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+REAL_PV=${PV#0.}
+MY_PV=${REAL_PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 2-3)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.15.0_rc1.ebuild b/dev-python/python-tests/python-tests-3.15.0_rc1.ebuild
new file mode 100644
index 000000000000..b7e5d0c7a099
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.15.0_rc1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 4f217176dd01..4161c9cd3bb8 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,2 +1,2 @@
-DIST sqlglot-30.13.0.tar.gz 5932385 BLAKE2B 5714fa3951a8c311cb57108620e04a61d7b3c656974f92f7d33135773c5efc5eaaf937502470b21ba6090e55e1315a0f8960f6f9a5c7d771a779d5ca5ab97b56 SHA512 ace7bef544f630e9fdd46a92147fa5120881f38f9c3a7612af6a4939b6ae58b7cabf2915d23a7e07bb07dcd7aa20ad52000e8a3d8b5e52445155179f3e35cada
DIST sqlglot-30.14.0.tar.gz 5944410 BLAKE2B 53904da0b2fb198ef872c166fbd9eec32ebf230d1e20f3cc609c151b3f63c5769df81cbf6f65d9c7adb12f985b215f43c7d1983025dbcd9ef404206099486bf5 SHA512 2dd0d71c5abfe6a007cc576244cad7f5ceca4d62a051658633a73bfdc40cccbe6ab9627a391caa5336373234e8a8442f32721222a26f1f8567a334afc021784e
+DIST sqlglot-30.15.0.tar.gz 5973319 BLAKE2B b53de3a6df9c3208e3354fb3c241993d845defbe92a95d4eaf6edcd1dc10792f5a581f95d22edcbc2d953c1986dbf781b0bc89570e639213115938aaa8d79e40 SHA512 8ae3aaf68f8a5580db7c3d863a286da1d9dd735f01d9eb0bd23ae06d71f72eb9026b02fb62eb9106782e94a3ab606b36370777b3b542462601dcfa4f52f3e65b
diff --git a/dev-python/sqlglot/sqlglot-30.13.0.ebuild b/dev-python/sqlglot/sqlglot-30.15.0.ebuild
index 063fa5096326..063fa5096326 100644
--- a/dev-python/sqlglot/sqlglot-30.13.0.ebuild
+++ b/dev-python/sqlglot/sqlglot-30.15.0.ebuild
diff --git a/dev-python/time-machine/Manifest b/dev-python/time-machine/Manifest
index 7c9a57613faf..a2d15a5653de 100644
--- a/dev-python/time-machine/Manifest
+++ b/dev-python/time-machine/Manifest
@@ -1,2 +1,3 @@
DIST time-machine-3.2.0.gh.tar.gz 85884 BLAKE2B dc771f17c8089a6f121cf99ad8dcf5f0e9aaec345dbdfb0be4ccfc9123b10561cebc116dd9db6d1b4c939cf49fa80e16d8be75e9adfe394ad5392dc1dfe2c12c SHA512 84ff8d2e9c9bdde90efe3548bc151f38f812a4ba624cc9556dd2a89f72d664d73dca8be64a65ca2a5019393e5a8f91e130804313685b23dccc4932a9e05f973b
DIST time-machine-3.3.0.gh.tar.gz 97144 BLAKE2B e1bc1dd87196a060ff55ab92f720e47bb4d66a4475863cfd6e53d7e18bc3d8c80c9df1fb7be70f93d5282287a95676b66a9542d6662a3c43729c8619adf60102 SHA512 593910cb9690c413724babd1d86547515bbcd4291683dd06a2181b6900c67893b8d97f7345f7e1f76349ea7fdd4840a093245131cf2462a1780db345acc5c182
+DIST time-machine-3.3.1.gh.tar.gz 106731 BLAKE2B 2bfa1278325a8e09b5ce98b9b16fcbe6bc783d0ee45713f341815c12fb0e573d52d5595b2e542139b940cc1136d173c2260523193eaa8a653da5288ab5136904 SHA512 29db83914ffdce0a00a6f84bf4638c1ccaf7d4a3d85e9423cb0b9c5700ee89d11710e754bfb448fde5e9a4cb8acb455143c0896af8ca34919296c06cd1380fe6
diff --git a/dev-python/time-machine/time-machine-3.3.1.ebuild b/dev-python/time-machine/time-machine-3.3.1.ebuild
new file mode 100644
index 000000000000..11af38908765
--- /dev/null
+++ b/dev-python/time-machine/time-machine-3.3.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-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
+
+DESCRIPTION="Travel through time in your tests"
+HOMEPAGE="
+ https://github.com/adamchainz/time-machine/
+ https://pypi.org/project/time-machine/
+"
+SRC_URI="
+ https://github.com/adamchainz/time-machine/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tokenize-rt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" hypothesis )
+distutils_enable_tests pytest