summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-18 19:32:02 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-18 19:32:02 +0000
commitb122a4c89ce5a5ed415047f73079ed8fe92d13b8 (patch)
tree6a7177d8633ec7ef1748b2a3f9dccf6d9685fd59 /dev-python
parent924c6a6e377c71895de209229d6b0f08c13ece36 (diff)
downloadbaldeagleos-repo-b122a4c89ce5a5ed415047f73079ed8fe92d13b8.tar.gz
baldeagleos-repo-b122a4c89ce5a5ed415047f73079ed8fe92d13b8.tar.xz
baldeagleos-repo-b122a4c89ce5a5ed415047f73079ed8fe92d13b8.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.37.14.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.37.14.ebuild67
-rw-r--r--dev-python/clang/Manifest1
-rw-r--r--dev-python/clang/clang-21.0.0_pre20250317.ebuild53
-rw-r--r--dev-python/cloudflare/Manifest2
-rw-r--r--dev-python/cloudflare/cloudflare-4.1.0.ebuild103
-rw-r--r--dev-python/deepdiff/Manifest1
-rw-r--r--dev-python/deepdiff/deepdiff-8.4.2.ebuild53
-rw-r--r--dev-python/django-bootstrap5/django-bootstrap5-24.3-r2.ebuild (renamed from dev-python/django-bootstrap5/django-bootstrap5-24.3.ebuild)9
-rw-r--r--dev-python/django-bootstrap5/metadata.xml3
-rw-r--r--dev-python/django-polymorphic/Manifest1
-rw-r--r--dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild42
-rw-r--r--dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch23
-rw-r--r--dev-python/ensurepip-setuptools/Manifest1
-rw-r--r--dev-python/ensurepip-setuptools/ensurepip-setuptools-76.1.0.ebuild20
-rw-r--r--dev-python/googleapis-common-protos/Manifest1
-rw-r--r--dev-python/googleapis-common-protos/googleapis-common-protos-1.69.2.ebuild31
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.129.4.ebuild110
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-21.0.0_pre20250317.ebuild45
-rw-r--r--dev-python/loky/Manifest1
-rw-r--r--dev-python/loky/loky-3.5.1.ebuild59
-rw-r--r--dev-python/mkdocs-material/Manifest1
-rw-r--r--dev-python/mkdocs-material/mkdocs-material-9.6.9.ebuild71
-rw-r--r--dev-python/multidict/Manifest1
-rw-r--r--dev-python/multidict/multidict-6.2.0.ebuild61
-rw-r--r--dev-python/patatt/patatt-0.6.3.ebuild2
-rw-r--r--dev-python/pecan/Manifest1
-rw-r--r--dev-python/pecan/pecan-1.6.0.ebuild31
-rw-r--r--dev-python/pillow-heif/Manifest1
-rw-r--r--dev-python/pillow-heif/pillow-heif-0.22.0.ebuild47
-rw-r--r--dev-python/plotly/Manifest1
-rw-r--r--dev-python/plotly/plotly-5.24.0.ebuild119
-rw-r--r--dev-python/pydantic/Manifest1
-rw-r--r--dev-python/pydantic/pydantic-2.11.0_beta2.ebuild71
-rw-r--r--dev-python/pygresql/pygresql-6.0.1.ebuild2
-rw-r--r--dev-python/pypax/pypax-0.9.5-r2.ebuild2
-rw-r--r--dev-python/pypax/pypax-9999.ebuild2
-rw-r--r--dev-python/rich-click/Manifest2
-rw-r--r--dev-python/rich-click/rich-click-1.8.8.ebuild (renamed from dev-python/rich-click/rich-click-1.8.6.ebuild)0
-rw-r--r--dev-python/setuptools/Manifest1
-rw-r--r--dev-python/setuptools/setuptools-76.1.0.ebuild133
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-26.11.1.ebuild96
-rw-r--r--dev-python/superqt/Manifest1
-rw-r--r--dev-python/superqt/superqt-0.6.7.ebuild49
-rw-r--r--dev-python/twisted/Manifest1
-rw-r--r--dev-python/twisted/files/twisted-24.3.0-skip-dsa-tests.patch75
-rw-r--r--dev-python/twisted/files/twisted-24.3.0_p20240628-skip-py313-test.patch35
-rw-r--r--dev-python/twisted/files/twisted-24.7.0_rc1-skip-py313-tests.patch54
-rw-r--r--dev-python/twisted/twisted-24.7.0.ebuild167
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.6.7.ebuild166
56 files changed, 1370 insertions, 511 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 9d9cccacde84..56c28a34dbee 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.37.13.gh.tar.gz 913692 BLAKE2B cc8b3dbe1f30d5969b8d0abb64b0ff6b7b6c72596c23dee90ad3ca08a0ac09b0b509dfb038ca4434461dd7375f155e5afaf541ed4224610f14793d5cf9a15ed6 SHA512 25fc69799cbabf7e834ddfda5e1a1dadaab42731721a64a09020a58b2c12ddae489eef5a28c687a7f04d39a3fb3ef007739acb3c59882f7d1cc04d64f6211e67
+DIST boto3-1.37.14.gh.tar.gz 914511 BLAKE2B 0c175c4213ccb02e338fa42733032c6578983a313d3f1a6b0efdc90d1cd99b736af0a241959afe48ed16a4e16ca6202e2e4de4efe0a8b38b42a830f76001d794 SHA512 a238502382f19c697f6d6a1b8ea3293ead6232654a20a193fde6866a7a1915b3355bd0dec810eecad2b9023640623ae5ce1fdfa473743eeda89936eebd959ded
DIST boto3-1.37.4.gh.tar.gz 908620 BLAKE2B ed63365ccd6da9b97715e4110be2b562285a123139a90ddb10c1411d5bd5ba0de9c110177a31f03ecb7e257fd79a0de89a8be97493a83f3207050676f7022e04 SHA512 dbf40cb809ee1d3ef352b97f62c111d113293211226a63298979d8ea14833c83ac2e321714dac349bfe095f75120c2752d08a01c19e51d9b0fc947e27a910005
DIST boto3-1.37.9.gh.tar.gz 911836 BLAKE2B d190525b9c5e39b445042aba6d8e57da5e49165775901ceebe44b76fd2780ec85a2f5a8a08d3a9a5e451d42bbae19b679e565a7a9acc663258ea0b7909a9a798 SHA512 12cba48d5f2c158b372eaf4e44903e22ca963e5712c3c463fbfd20626a771efe30530852b6c9ab70132a26472ff1b4656095675a5de37524f6b489c25175f8fe
diff --git a/dev-python/boto3/boto3-1.37.14.ebuild b/dev-python/boto3/boto3-1.37.14.ebuild
new file mode 100644
index 000000000000..dfe05b3d9a81
--- /dev/null
+++ b/dev-python/boto3/boto3-1.37.14.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 1441437621c2..bdf7a911453f 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.37.13.gh.tar.gz 14365580 BLAKE2B 5dac1351dde66b7a2591faedd6ff9f0a05b02d7fa5f2d9f212a25e979f8b6f2a177c23843ee9d5949e83ce9cb44cdb1c9b75a9ee3e9e21ad69fa99458d733fcf SHA512 6635b42a6c29e6fc8293535f939463a77bcfb9abd7211a3043d9da60ecf291fc7bd8704902bfca0667be37448b1d5230393afaf1d32ef5be821d8d60a8578144
+DIST botocore-1.37.14.gh.tar.gz 14368684 BLAKE2B 43d5adc8f5fa3647246a2bd581f3ac1f14f90f96e8ece75e678d2a468baaaa3e1045698a09b8c41a5134028a4b6cb59b5a6cbc394b928d9309269784a3f3b1f9 SHA512 1df5055f3bedcc7f7120f041b707eff5622071b3ba6aa6954c239ec1a6b8295014961e99d6ceb817b051d15144ef0064262d1c2dc1768e48273875993a5a2e8d
DIST botocore-1.37.4.gh.tar.gz 14291786 BLAKE2B ab55a62f2291e623e61a0ec6712241815279ae6d8f25e678adbf6cf167265d216f44b0eae78f2b66a454253dc4ef977b90c38f1aa329c855b38fa844eaa478b7 SHA512 07921ca8d51ff2afd8a4dafa77b40b5c24afa0351d71dbf68cef716573ba1f695a331634734fb6d9822eee55c91829128dbf215920e3da92ea2b40b727d0a0f6
DIST botocore-1.37.9.gh.tar.gz 14346488 BLAKE2B 29ac550ad462ab7c83bad7989588ec62fb57959586a8ec91be9756d90712ad86e3dfd813a347e619b7cac3fd7afb56affcd81926e15d91b8d0ceae2cd4436a8d SHA512 e191c9485e95188049c02020fcb32c4429de6cfd78f237a2026200b7240890d5759f5cdd96166cd2aec035dac82d32db155fe00d9ec6be482c655cfdb44265f9
diff --git a/dev-python/botocore/botocore-1.37.14.ebuild b/dev-python/botocore/botocore-1.37.14.ebuild
new file mode 100644
index 000000000000..df85ee0d220c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.37.14.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index d3cf27d0ad4f..7db2c60e30a4 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -10,6 +10,7 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAKE2B c1eacc2ed05c460f56cf83f16b982e3fa4ac530483d7cf003034239aff3b3dbffbdd3042a3f295a83ec94fcf32f802714e4937fd3761a5e03d4ed1b4093e81bf SHA512 98b7e9fa330a6fce33ca9757caf5d2e41d0b73117cb24b2aed880274c2d6f8a8c1a0028dd0e773fa42deb61dbe3b9dd4fb2f44e50814b966fcdeae8e5b417e6d
DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14
diff --git a/dev-python/clang/clang-21.0.0_pre20250317.ebuild b/dev-python/clang/clang-21.0.0_pre20250317.ebuild
new file mode 100644
index 000000000000..a99c5601e047
--- /dev/null
+++ b/dev-python/clang/clang-21.0.0_pre20250317.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/bindings/python )
+llvm.org_set_globals
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
+}
+
+src_test() {
+ python_foreach_impl python_test
+}
+
+src_install() {
+ python_foreach_impl python_domodule clang
+}
diff --git a/dev-python/cloudflare/Manifest b/dev-python/cloudflare/Manifest
index f6b85cb49255..4a80f432a005 100644
--- a/dev-python/cloudflare/Manifest
+++ b/dev-python/cloudflare/Manifest
@@ -1,3 +1,5 @@
DIST cloudflare-2.19.4.gh.tar.gz 151397 BLAKE2B c91c95f52314c5177d823ef8f827ea2f76f6cc703260449aea12d54c1b77d061feca15d4bb845f84cfb4fd80789e5064e54d7530daf546d54d17054b9e0b4fda SHA512 8ae11e73760c57b610abfe5e2c8fdc83c2e0b9e07340884925ec9ac3bf5b40b4edf39b2b8ce7330538369d7573146a2ddac195efb0efb4ff657f75fdacb31aed
DIST cloudflare-4.0.0.gh.tar.gz 1715334 BLAKE2B 3ec5ace00c173caec36e75001a7f0fb08e3747902cfbd45a29958c7d4a124b93b24c431ed0967d2100056de7b3063625379723512aee4be7a03dfeb2c4bdbc5a SHA512 ac156af42cadfd1c63568df485c816de0b3720af18ec12b25cb88e06476e817707a29de91bfce8da3b7f7b4e690b6c33aa6c38bc2b485901e81e032dae0d0109
+DIST cloudflare-4.1.0.gh.tar.gz 1919098 BLAKE2B 00282a75357e1b6368b9c36f9abdf52547d42850f74c52d0cd2b1b02b26a717942167db59ba025eb1a6e874697299c79257c8e796874abcc742a9350374e2511 SHA512 bc61518791adc30b472b64407f336f5dd94ad5961c7c1fa474750b8d2579411db78592dd30ac731b05023c29105928bda0005185b07d54cf8b88f100eb1bf5ca
DIST cloudflare-python-4.0.0-prism.tar.gz 10687934 BLAKE2B d8696ec3f20d56e8ed5578d96ff41e4b90faf8d440b734b76d7217b8127f1c428e523f75f266cd9a677a3501b961844107afb03b2ec06f9940aadbf369a3567e SHA512 0d622922f26f9a6749858f226ff8ac5baee613a771e9cbe16787932304b5c1654c1a6d928ce7fe4734bc0710f3357160dcbe441f9238ae8c33cde02435e169e8
+DIST cloudflare-python-4.1.0-prism.tar.gz 10768260 BLAKE2B baf23e1010417b770a7c26f7e806305a6431c917df527feb7277f72e35220e210b570cc67791fca911b450b0056c9d10824f6f90893abd6bd4b9bef933b4088d SHA512 05742179f53ce22bb9d3318069415bba9e94110ba14ea6a0eda991107c448fe35fb653d2863c4e3421e1062be2c8a963d2cc6bbe1187d9057378d144ce1fb3ac
diff --git a/dev-python/cloudflare/cloudflare-4.1.0.ebuild b/dev-python/cloudflare/cloudflare-4.1.0.ebuild
new file mode 100644
index 000000000000..059986187715
--- /dev/null
+++ b/dev-python/cloudflare/cloudflare-4.1.0.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+# upstream doesn't yet officially claim 3.13 support but passes tests and works
+DISTUTILS_USE_PEP517="hatchling"
+inherit distutils-r1
+DESCRIPTION="Python wrapper for the Cloudflare v4 API"
+HOMEPAGE="https://pypi.org/project/cloudflare/"
+if [ "${PV}" == 9999 ]; then
+ EGIT_REPO_URI="https://github.com/cloudflare/cloudflare-python"
+ inherit git-r3
+else
+ MYPV=$(ver_rs 3 -)
+ MYPV=${MYPV/beta/beta.}
+ MYPN="cloudflare-python"
+ SRC_URI="https://github.com/cloudflare/cloudflare-python/archive/refs/tags/v${MYPV}.tar.gz -> ${P}.gh.tar.gz
+ test? ( https://github.com/Phoenix591/${MYPN}/releases/download/${PV}/${MYPN}-${PV}-prism.tar.gz )"
+ #Prism archive generated by workflow
+ # https://github.com/Phoenix591/cloudflare-python/blob/master/.github/workflows/test-tar.yml
+ S="${WORKDIR}/${MYPN}-${MYPV}"
+ KEYWORDS="~amd64 ~arm64"
+fi
+LICENSE="MIT test? ( ISC Apache-2.0 MIT BSD CC0-1.0 0BSD )"
+# nodejs module and deps used to test
+SLOT="0"
+RDEPEND=" ${DEPEND}
+ >=dev-python/httpx-0.23.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.9.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.7.0[${PYTHON_USEDEP}]
+ >=dev-python/anyio-4.3.0[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/sniffio-1.3.1[${PYTHON_USEDEP}]
+ "
+
+BDEPEND="test? (
+ >=net-libs/nodejs-18.20.1
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ dev-python/dirty-equals[${PYTHON_USEDEP}]
+ dev-python/respx[${PYTHON_USEDEP}]
+ ${RDEPEND}
+)"
+
+distutils_enable_tests pytest
+RESTRICT+=" !test? ( test )"
+
+src_unpack() {
+ unpack "${P}.gh.tar.gz"
+ use test && cd "${S}" && unpack "cloudflare-python-${PV}-prism.tar.gz"
+}
+
+#python_prepare_all() {
+# # don't install tests or examples
+# sed -i -e "s/'cli4', 'examples'/'cli4'/" \
+# -e "s#'CloudFlare/tests',##" \
+# setup.py || die
+# sed -i -e "/def test_ips7_should_fail():/i@pytest.mark.xfail(reason='Now fails upstream')" \
+# -e "2s/^/import pytest/" \
+# CloudFlare/tests/test_cloudflare_calls.py || die
+# distutils-r1_python_prepare_all
+#}
+
+python_test() {
+ # these 2 tests fail in an ebuild environment for some reason
+ # help appreciated
+ local EPYTEST_DESELECT=(
+ tests/test_client.py::TestCloudflare::test_validate_headers
+ tests/test_client.py::TestAsyncCloudflare::test_validate_headers )
+ #intermittently fail for unknown reasons, passed along to upstream
+ EPYTEST_DESELECT+=(
+ tests/test_client.py::TestAsyncCloudflare::test_copy_build_request
+ tests/test_client.py::TestCloudflare::test_copy_build_request
+ tests/test_client.py::TestAsyncCloudflare::test_get_platform
+)
+ epytest
+}
+
+src_test() {
+ start_mock
+ distutils-r1_src_test
+ stop_mock
+}
+start_mock() {
+# Run prism mock api server, this is what needs nodejs
+ node --no-warnings node_modules/@stainless-api/prism-cli/dist/index.js mock \
+ "cloudflare-spec.yml" >prism.log || die "Failed starting prism" &
+ echo $! >"${T}/mock.pid" || die
+ # Wait for server to come online
+ echo -n "Waiting for mockserver"
+ while ! grep -q "✖ fatal\|Prism is listening" "prism.log" ; do
+ echo -n "." || die
+ sleep 0.5
+ done
+ if grep -q "✖ fatal" prism.log; then
+ die "Prism mock server failed"
+ fi
+}
+stop_mock() {
+ kill $(cat "${T}/mock.pid") || die
+}
diff --git a/dev-python/deepdiff/Manifest b/dev-python/deepdiff/Manifest
index 955cd4b693fa..d6c47b6dffb6 100644
--- a/dev-python/deepdiff/Manifest
+++ b/dev-python/deepdiff/Manifest
@@ -1,2 +1,3 @@
DIST deepdiff-8.3.0.tar.gz 509468 BLAKE2B 24e6f610c1d90fdb2b9d20939e2bb053db690b284ce00d76f0859e504dfa6dd434c52c424b7da2b01688647791e336a53209dc31dab5adb51b48a92e598da7da SHA512 5327a738d182a9e546d5a827d3a5d1e04323e7765d49f9f7d51dc20c8fc13869bb16b84ee193c478f43bb47901e16cc6ec45c890967de061a839a33d636040eb
DIST deepdiff-8.4.1.tar.gz 514141 BLAKE2B f2dd5910c35f949f34c7846228a04eeb16a90315181bccdaf53a7fd5e518c79ea67da6da60481ba3f39515f226c2fb71ebf25a12b31cef59f80c7fa8f4f36687 SHA512 fc7f16c4dd5b66430a6aaa5e2ecb089ad7b5713ef57b190a4d74f686ac101baf6fd7d5e6655f15b526b410666d0fd05b7b369f473d2f8f7de3731c044fdcd0dc
+DIST deepdiff-8.4.2.tar.gz 515380 BLAKE2B e044d45c4a2ba68e399d506a801912ef0169be3b6a41df9a9f47a5ffb2dfc588d0eed35e984f8e36616709235f26537290bc7e5953d61823291eebfc52951574 SHA512 ec0b495afb57bbaf7b4785dda5367a1f87e5940afb801e2e71aa478562cda597005780bf2733b2e913dce5932996fdb548203922b4b6613e3daed751aa89d885
diff --git a/dev-python/deepdiff/deepdiff-8.4.2.ebuild b/dev-python/deepdiff/deepdiff-8.4.2.ebuild
new file mode 100644
index 000000000000..8a727daa1349
--- /dev/null
+++ b/dev-python/deepdiff/deepdiff-8.4.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A library for comparing dictionaries, iterables, strings and other objects"
+HOMEPAGE="
+ https://github.com/seperman/deepdiff/
+ https://pypi.org/project/deepdiff/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/click-8.1.3[${PYTHON_USEDEP}]
+ <dev-python/orderly-set-6[${PYTHON_USEDEP}]
+ >=dev-python/orderly-set-5.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+"
+
+DEPEND="
+ test? (
+ >=dev-python/jsonpickle-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.23.5[${PYTHON_USEDEP}]
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/tomli[${PYTHON_USEDEP}]
+ ' 3.10)
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # benchmarks
+ tests/test_lfucache.py::TestLFUcache::test_lfu
+ # requires polars
+ tests/test_hash.py::TestDeepHashPrep::test_polars
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/django-bootstrap5/django-bootstrap5-24.3.ebuild b/dev-python/django-bootstrap5/django-bootstrap5-24.3-r2.ebuild
index ae615b824290..a31af3360d1e 100644
--- a/dev-python/django-bootstrap5/django-bootstrap5-24.3.ebuild
+++ b/dev-python/django-bootstrap5/django-bootstrap5-24.3-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2024 Gentoo Authors
+# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,6 +17,13 @@ LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
+RDEPEND="
+ dev-python/django[${PYTHON_USEDEP}]
+ dev-python/jinja2[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="test? ( sci-libs/gdal )"
+
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/django-bootstrap5/metadata.xml b/dev-python/django-bootstrap5/metadata.xml
index 697d76fa2747..0225857e75c2 100644
--- a/dev-python/django-bootstrap5/metadata.xml
+++ b/dev-python/django-bootstrap5/metadata.xml
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>python@gentoo.org</email>
- </maintainer>
<maintainer type="person">
<email>tupone@gentoo.org</email>
<name>Tupone Alfredo</name>
diff --git a/dev-python/django-polymorphic/Manifest b/dev-python/django-polymorphic/Manifest
index 6b3175e1e369..f86c71792667 100644
--- a/dev-python/django-polymorphic/Manifest
+++ b/dev-python/django-polymorphic/Manifest
@@ -1 +1,2 @@
DIST django-polymorphic-3.1.gh.tar.gz 104090 BLAKE2B de2a2b38f338a10198d00e70d1813e541bf627e2ba2f5e29f0844c9ec7034badba39c077a195fc8c2f71105f1b4e546b91218b95d2ac47020f0dc2e3a5b0baa8 SHA512 730f617009007f94e935870941fdd8973d0cd5995060afbd138622345de77fa48bf2afe037bfa2ad476cef0a31e90cab1eb55109c470ae815a98e1facfa8f125
+DIST django-polymorphic-4.0.0.gh.tar.gz 104146 BLAKE2B 10b80b40e93048df9e116e0c6a5f9b38e6e31c2c40644d2066176f8d17649b8af7091a4fa8fdff3c16a32163707adbcb52d6a247592630d85336cd2c9ff11321 SHA512 ca21831a2acc6775568898d53d47b221c8b971eb2a41c3b621ea8af3ae52875cfa2b98d04bd4cd8f1d556fe2c9932a3de44bdb8554302cb82ce0dc19d06abdb2
diff --git a/dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild b/dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild
new file mode 100644
index 000000000000..6fcd9090cdc4
--- /dev/null
+++ b/dev-python/django-polymorphic/django-polymorphic-4.0.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Seamless Polymorphic Inheritance for Django Models"
+HOMEPAGE="
+ https://github.com/jazzband/django-polymorphic/
+ https://pypi.org/project/django-polymorphic/
+"
+SRC_URI="
+ https://github.com/jazzband/django-polymorphic/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/django-3.2[$PYTHON_USEDEP]
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ dev-python/dj-database-url[${PYTHON_USEDEP}]
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # ecb85b3539c71e376eb0a111e98b5b374d5c9532
+ "${FILESDIR}/${P}-test.patch"
+)
diff --git a/dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch b/dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch
new file mode 100644
index 000000000000..022c0b3881d9
--- /dev/null
+++ b/dev-python/django-polymorphic/files/django-polymorphic-4.0.0-test.patch
@@ -0,0 +1,23 @@
+From ecb85b3539c71e376eb0a111e98b5b374d5c9532 Mon Sep 17 00:00:00 2001
+From: Jonathan he <jonathan.he@oracle.com>
+Date: Wed, 5 Feb 2025 16:02:04 -0500
+Subject: [PATCH] PolymorphicQuerySet: Prevent NoneType error in test___lookup
+
+---
+ polymorphic/query.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/polymorphic/query.py b/polymorphic/query.py
+index 8e93281..ba67529 100644
+--- a/polymorphic/query.py
++++ b/polymorphic/query.py
+@@ -277,7 +277,8 @@ class PolymorphicQuerySet(QuerySet):
+ tree_node_test___lookup(self.model, a)
+ elif hasattr(a, "get_source_expressions"):
+ for source_expression in a.get_source_expressions():
+- test___lookup(source_expression)
++ if source_expression is not None:
++ test___lookup(source_expression)
+ else:
+ assert "___" not in a.name, ___lookup_assert_msg
+
diff --git a/dev-python/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest
index 5e1ee319596a..f35fa4a2cc4a 100644
--- a/dev-python/ensurepip-setuptools/Manifest
+++ b/dev-python/ensurepip-setuptools/Manifest
@@ -1,2 +1,3 @@
DIST setuptools-75.8.2-py3-none-any.whl 1229385 BLAKE2B e2890604e9acbf23aefc94ee99927bafdc189e45c84b0e4e0b48737d120ba60590438603195e180988b26e3e8fb378812507e2a0b513bf886c3b1eb673853da5 SHA512 083447a6bd375ca99e017ec4c5e3083ee4eee32b65d911b4d5ccadfa587ec213d43562d21d0f238753cc5c54354027b8425880d7248fbbd170b0c006613f4327
DIST setuptools-76.0.0-py3-none-any.whl 1236106 BLAKE2B 783411ca7c3ee2f2aaaba2d40abb010f7014eb640e6ebee125e0d80afd863634eb01a10343c086b46a7b928db14d5edc6270c92129d2b20bbf0ce36229de932a SHA512 6b2af35acbd3c73f19a5eac91cc13329ef6b0c9b9dbad18fdcfabb0625215a661d320d164a08018a08a3578c5bc3aedfd9ed9ecdaaf62ef08e30fcae34a3eefb
+DIST setuptools-76.1.0-py3-none-any.whl 1236933 BLAKE2B c8e1d368f50aea8ed819d6c828505bbbecfd1d2f320c108df3910f8f49133aa12cbafbed5e626572232812671650cb4398a6771a21ed37d7d1ea882e87a08dbc SHA512 44330c0b2bf22a6cdc9b3cf087fbd7695a5e15a4e0e013c88252258fabb69ed89d9550b35b407f01711c66b45a964f687ce7c8f373ed0860e93842e70aa9e55b
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-76.1.0.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-76.1.0.ebuild
new file mode 100644
index 000000000000..b76c3f6972d8
--- /dev/null
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-76.1.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pypi
+
+DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
+HOMEPAGE="https://pypi.org/project/setuptools/"
+SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
+S=${DISTDIR}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+src_install() {
+ insinto /usr/lib/python/ensurepip
+ doins "${A}"
+}
diff --git a/dev-python/googleapis-common-protos/Manifest b/dev-python/googleapis-common-protos/Manifest
index efe7517d8ce2..0b39d92b05a8 100644
--- a/dev-python/googleapis-common-protos/Manifest
+++ b/dev-python/googleapis-common-protos/Manifest
@@ -1,2 +1,3 @@
DIST googleapis_common_protos-1.68.0.tar.gz 57367 BLAKE2B 65888384edbe6b246fe8c6e17f13e3cbd8079f042914ead9c5315ab80889d72ce619e42089c5aa2aed528a38f99953d73be0ec5daf04aea5f2221d2bf09a2e1b SHA512 a602ca0d2daef9c265eb4654adeb698ce66fa26db707650d09c7da3474e263b995431a89d0908c70a9d356f0bdcccd1d6b7b5f51f05ae2c98f58b8a41f782d35
DIST googleapis_common_protos-1.69.1.tar.gz 144514 BLAKE2B 0e3a57a916202d7831e41081c5af759ba3976c2db349ad7def08bb9c9e085850182a5fc5e5d969498129f01c4275d7817e66015de29f9bbc96c8495402cb1ba7 SHA512 5f11d230e0d5503e32aee5832481a1ff3241a987911b0e3ca44c083f9e53eca916f9b07a9d02743fbe7508da478c1b87743c1c18c0afa0f92fb8f81481ddc385
+DIST googleapis_common_protos-1.69.2.tar.gz 144496 BLAKE2B 0f6eeef6fc124062db6214fa4d90b9717e4c4fce6b61faa0864ba8946a6c1de4ff7941b8dae6e1a0fb09821ae79927cd1a45eb5768a7ea22a7d866e58fc9b489 SHA512 a8f6f6ab551813e05db06af9ec404e4e87dcf2ebdeeecc6976b11a7cf0ccf0e6ca500ba0c263dcb6b71290b3919c84e5af8c2705ae3f4a5b630831aea8ddb668
diff --git a/dev-python/googleapis-common-protos/googleapis-common-protos-1.69.2.ebuild b/dev-python/googleapis-common-protos/googleapis-common-protos-1.69.2.ebuild
new file mode 100644
index 000000000000..d681063f2c36
--- /dev/null
+++ b/dev-python/googleapis-common-protos/googleapis-common-protos-1.69.2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python classes generated from the common protos in the googleapis repository"
+HOMEPAGE="
+ https://github.com/googleapis/python-api-common-protos/
+ https://pypi.org/project/googleapis-common-protos/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/protobuf-7[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-3.15.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+python_compile() {
+ distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index a78ae683637b..0d8fd9b72843 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -5,3 +5,4 @@ DIST hypothesis-6.129.0.gh.tar.gz 9526187 BLAKE2B 632fa6dfa60725caab11e12682389d
DIST hypothesis-6.129.1.gh.tar.gz 9526811 BLAKE2B fe69773a70d8c6615f586dda7acacfbc2f9309659faedcecfd12317124c5c868f53987f9e56670f09a44de96d9baec08a43823d15ad7dc847f4260ed8deb0486 SHA512 3745d590dcfc968a96eb62a6f159214b5741f2de1e03bd57bb22663237801f7d4d5df98c0da9f798d1b127e7c43039527f903994e3b9a884d1f654d2a842fea8
DIST hypothesis-6.129.2.gh.tar.gz 9527087 BLAKE2B 675261d8ed0c77ead1555e0ae26b6a199886b3189cb46f193af492313428c171d129b5aefd6f52e3f6ecd634302c4356643b0324547aa19cd4bb190114887354 SHA512 c71342ea5f53ca7374b0311a8185b7ab40802cc68c76225d87db7a8f2911942768bca37a6f229b22c6f2c53fcf531d4d5a7a72de69d4172db598a298d4aa8681
DIST hypothesis-6.129.3.gh.tar.gz 9527091 BLAKE2B e4baafe9e9af45d940a207d55d1a03bd2998d9bdabcdc724830d52bf9fd6ded528606fd7d82a17684fc58ed2ea3db3ae96f7da342fdf45aacd354a99af18ffd3 SHA512 7a3fdc7e7353a2b5fb8c5e98008218d1ed58112839f1afc88678eb0fb5bde7efd77a763bb2174e5b6acdc3edd3043d69eed74f2453e5fddb1bdf05efd07ee442
+DIST hypothesis-6.129.4.gh.tar.gz 9528147 BLAKE2B c85806af24ddd934338f99c9d62a577fb35c8809d71ddf23aea0d613f33e690c70662279e88f4680d48c0c3b51fa10ff99c29fde7cf2d3c094cfaa0aa65b7612 SHA512 aec846f34e3a66da8a79929da681bd41ac7deb4a83934a51ee69bf989ddb8f3f7bd8f612571e625d3334cf786e3841b4e4d05fe4368e930e5975077e0f027a7d
diff --git a/dev-python/hypothesis/hypothesis-6.129.4.ebuild b/dev-python/hypothesis/hypothesis-6.129.4.ebuild
new file mode 100644
index 000000000000..08befcf116e3
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.129.4.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( pypy3 python3_{10..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ ;;
+ python3.13)
+ EPYTEST_DESELECT+=(
+ # TODO
+ 'hypothesis-python/tests/cover/test_reflection.py::test_clean_source[case-5]'
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -p rerunfailures --reruns=5 \
+ tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index d3cf27d0ad4f..7db2c60e30a4 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -10,6 +10,7 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAKE2B c1eacc2ed05c460f56cf83f16b982e3fa4ac530483d7cf003034239aff3b3dbffbdd3042a3f295a83ec94fcf32f802714e4937fd3761a5e03d4ed1b4093e81bf SHA512 98b7e9fa330a6fce33ca9757caf5d2e41d0b73117cb24b2aed880274c2d6f8a8c1a0028dd0e773fa42deb61dbe3b9dd4fb2f44e50814b966fcdeae8e5b417e6d
DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14
diff --git a/dev-python/lit/lit-21.0.0_pre20250317.ebuild b/dev-python/lit/lit-21.0.0_pre20250317.ebuild
new file mode 100644
index 000000000000..4230fa63b2a4
--- /dev/null
+++ b/dev-python/lit/lit-21.0.0_pre20250317.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ # flaky test
+ # https://github.com/llvm/llvm-project/issues/72022
+ rm tests/progress-bar.py || die
+
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/loky/Manifest b/dev-python/loky/Manifest
index 6f1944666588..155ee8aba772 100644
--- a/dev-python/loky/Manifest
+++ b/dev-python/loky/Manifest
@@ -1 +1,2 @@
DIST loky-3.4.1.gh.tar.gz 143933 BLAKE2B b55dc9fe431769de6bc7f8d9854c40a361566d9c0325c7037255c5ce2b9875ff071743892ec5db53be7744955558195eb40fc5467917eeba3d533c68f285a1ec SHA512 435dc24a0532e6a40a67613fd1e13a06439ffe00c28b90fa36ff02255b67e0dd99d515f5659a36aa1049a9df73b16c1088989a1379a8492ebc5dbf1e53a37a06
+DIST loky-3.5.1.gh.tar.gz 145759 BLAKE2B 3fd1a254051a25e0556c29c50d9153e6894150d0eb39094fa3b7128439889777026aea6e001b73d825b6c18c8d7e6e49e0feb6e7fb508696c0694cf5321fa6fd SHA512 9c90fda5af45a89142866a3ec4a2e77425b20f248d55a56f5e78acf09dbf3b61ba04cf4b72c416e1eb343e23ab0d73a0139804a9fd92e27044debf97b8920635
diff --git a/dev-python/loky/loky-3.5.1.ebuild b/dev-python/loky/loky-3.5.1.ebuild
new file mode 100644
index 000000000000..aa0c71082143
--- /dev/null
+++ b/dev-python/loky/loky-3.5.1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="Robust and reusable Executor for joblib"
+HOMEPAGE="
+ https://github.com/joblib/loky/
+ https://pypi.org/project/loky/
+"
+SRC_URI="
+ https://github.com/joblib/loky/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ EPYTEST_DESELECT=(
+ # docker, seriously?
+ tests/test_loky_module.py::test_cpu_count_cfs_limit
+ tests/test_loky_module.py::test_cpu_count_cgroup_limit
+ # hangs, and even pytest-timeout does not help
+ tests/test_reusable_executor.py::TestExecutorDeadLock::test_deadlock_kill
+ tests/test_reusable_executor.py::TestResizeExecutor::test_reusable_executor_resize
+ # Python 3.12 raises an additional warning due to the use of fork()
+ # in a multithreaded process, the additional warning breaks this test
+ # since the expected warning is no longer the first.
+ # This is harmless, skip test for now
+ tests/test_worker_timeout.py::TestTimeoutExecutor::test_worker_timeout_shutdown_no_deadlock
+ tests/test_reusable_executor.py::TestResizeExecutor::test_resize_after_timeout
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # high memory test needs a lot of memory + is broken on 32-bit platforms
+ epytest --skip-high-memory \
+ -p xdist -n "$(makeopts_jobs)" --dist=worksteal
+}
diff --git a/dev-python/mkdocs-material/Manifest b/dev-python/mkdocs-material/Manifest
index 6315ff5be6b9..2289e76cc4ff 100644
--- a/dev-python/mkdocs-material/Manifest
+++ b/dev-python/mkdocs-material/Manifest
@@ -1,3 +1,4 @@
DIST mkdocs-material-9.6.5.gh.tar.gz 14920108 BLAKE2B 50b7565c2a170e62e27b33fffa1bce3536d0b090162d30f113ca45101ab63f4a2f972a01962f362bd267f627e9f62a392b0bba5b21d464c9aaa94dd9580acb3b SHA512 472f07c1f4986062b785af026e5c7c7645bf16bfa172fc5813c6ba9a03ebc0c5d43f099ef7a04c5494dbe4f8a628397c4bff2a16c0e4632ebc439e77697c4785
DIST mkdocs-material-9.6.7.gh.tar.gz 14923962 BLAKE2B 52ca0a74100f0fac0722bbf030d2ea95d62e98017135f1bd29853dea7e17e3f1cd8254bc96da4c06b9498896b99b5134a816a5c686fc8e0a42afbc133dbfb2e1 SHA512 638fd9e61675378343da6f61762046d299a775932ebdf8b5a24cdef25e42ff0689d5189532adaf81987900470b85a8e5fa65557ace24c3a416e2e42ada190224
DIST mkdocs-material-9.6.8.gh.tar.gz 14926223 BLAKE2B ce5f0ccc1f19787bbf631f0e71f1b252920e32b6e99616066c18d417e5086f8f612411fb8ba41909df8ee1fc24907879ec87234c42cd8fd6088555b46b7c7d67 SHA512 26d9677d95903c4c3a7890decb11557168dbf26c1fbd7ba1406bebf29a813283ccf43c7173a69136508ff753d61fad2ee3f49a897514fb7f6fa914070d2570b6
+DIST mkdocs-material-9.6.9.gh.tar.gz 14809122 BLAKE2B 14c07f44c93de9c74ca6ee64b9be0ef2b7c06f40fa3bca95fbd935cec783ee16d02c50c77ed6b0b62fddaa9f0dcba769db1d86ca4da4363aa48c4940d5eb83f9 SHA512 166c7a5fe445e07286ccc36040a3caf4e070ad86fbcb556fa380ed91b6adfd96c881762f0cb7b96ee1f5d04ff4d65018ad119973e07920c8dd037f32c1322c46
diff --git a/dev-python/mkdocs-material/mkdocs-material-9.6.9.ebuild b/dev-python/mkdocs-material/mkdocs-material-9.6.9.ebuild
new file mode 100644
index 000000000000..7faef3c81d56
--- /dev/null
+++ b/dev-python/mkdocs-material/mkdocs-material-9.6.9.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+DOCS_BUILDER="mkdocs"
+DOCS_DEPEND="
+ dev-python/mkdocs-material-extensions
+ dev-python/mkdocs-minify-plugin
+ dev-python/mkdocs-redirects
+"
+
+inherit distutils-r1 docs
+
+DESCRIPTION="A Material Design theme for MkDocs"
+HOMEPAGE="
+ https://github.com/squidfunk/mkdocs-material/
+ https://pypi.org/project/mkdocs-material/
+"
+SRC_URI="
+ https://github.com/squidfunk/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="social"
+
+RDEPEND="
+ >=dev-python/babel-2.10.3[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.6[${PYTHON_USEDEP}]
+ >=dev-python/markdown-3.2[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-1.5.3[${PYTHON_USEDEP}]
+ >=dev-python/paginate-0.5.6[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.16[${PYTHON_USEDEP}]
+ >=dev-python/pymdown-extensions-10.2[${PYTHON_USEDEP}]
+ >=dev-python/readtime-2.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/regex-2022.4.24[${PYTHON_USEDEP}]
+ ' 'python*')
+ >=dev-python/requests-2.26[${PYTHON_USEDEP}]
+ social? (
+ >=dev-python/pillow-10.2[${PYTHON_USEDEP}]
+ >=media-gfx/cairosvg-2.5[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ >=dev-python/trove-classifiers-2023.10.18[${PYTHON_USEDEP}]
+"
+# mkdocs-material-extensions depends on mkdocs-material creating a circular dep
+PDEPEND="
+ >=dev-python/mkdocs-material-extensions-1.2[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ # simplify pyproject to remove extra deps for metadata
+ "${FILESDIR}/${PN}-8.5.7-simplify-build.patch"
+ # import backrefs only when used (i.e. never)
+ "${FILESDIR}/${PN}-9.6.7-backrefs.patch"
+)
+
+src_prepare() {
+ echo "__version__ = '${PV}'" > gentoo_version.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/multidict/Manifest b/dev-python/multidict/Manifest
index 3569e6e08262..19b71c8393c7 100644
--- a/dev-python/multidict/Manifest
+++ b/dev-python/multidict/Manifest
@@ -1 +1,2 @@
DIST multidict-6.1.0.gh.tar.gz 73800 BLAKE2B 9e3531633b0a35bbb8a97ec2dfe040080fe67efae3b3a16436b0984d6c3a4dc38df1cf5b91bd7b1f750f7a27bd2726667935fa30eefa7b070534fd70f390ee8a SHA512 48e97f442c28c2dfc0b5e19376ae9c8c46b20939ac4f72c07b650450286156dcbe03166f7d238d7a77b438a154022e9d98a38a4c0596aefab7d40fbdda0687dc
+DIST multidict-6.2.0.gh.tar.gz 82115 BLAKE2B 37b509d409278396f52e39d63b671b3b447039f2f98fa6f1b80b1ff4189105ca5a80b9027e8fcfbb95734b3c5531c1fd4a0cbfd778cdfab85ea5c127fb735717 SHA512 211dfe4900d815be1365284e18183f82f34783b777cbca929e2f8468b6748e237825febe9baa7a6d3e2a97476a8c6e061d2d7d2de94c48a2c526809224379656
diff --git a/dev-python/multidict/multidict-6.2.0.ebuild b/dev-python/multidict/multidict-6.2.0.ebuild
new file mode 100644
index 000000000000..86186dcd602d
--- /dev/null
+++ b/dev-python/multidict/multidict-6.2.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="multidict implementation"
+HOMEPAGE="
+ https://github.com/aio-libs/multidict/
+ https://pypi.org/project/multidict/
+"
+SRC_URI="
+ https://github.com/aio-libs/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.1.0[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't enable coverage or other pytest settings
+ sed -i -e '/cov/d' pytest.ini || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
+ local -x MULTIDICT_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ tests/test_multidict_benchmarks.py
+ )
+
+ rm -rf multidict || die
+
+ local cext=--c-extensions
+ if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
+ cext=--no-c-extensions
+ fi
+ epytest "${cext}"
+}
diff --git a/dev-python/patatt/patatt-0.6.3.ebuild b/dev-python/patatt/patatt-0.6.3.ebuild
index 89000ea5d912..6f405d47385d 100644
--- a/dev-python/patatt/patatt-0.6.3.ebuild
+++ b/dev-python/patatt/patatt-0.6.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Gentoo Authors
+# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pecan/Manifest b/dev-python/pecan/Manifest
index 008301ada527..173764548f6f 100644
--- a/dev-python/pecan/Manifest
+++ b/dev-python/pecan/Manifest
@@ -1 +1,2 @@
DIST pecan-1.5.1.tar.gz 124161 BLAKE2B 441c4fcc94409aef93324ab8dfb727fc09a3e0f8802ba804d3d5f52237d4f089c3eed23f55a8ad82a9d372d28d622faf8b196b59936e7fc9feb69c4f87883084 SHA512 87fff8657268accda3a53f156338332e3d23df8055cc62d77d9f1641f692c1d7e4013f564b0108541e5df69e1d3d2c8e3df87486e0b4316e437f67d010013fa9
+DIST pecan-1.6.0.tar.gz 123756 BLAKE2B 779705fed5c0832feac98469f6e873996332ce2376929ed819dfc228a0b99aaaef09e9b531698f5fed07675d1f13f0cdd9cd8a742977acf83ee3d9c963b3436e SHA512 f10878fb219086cc34109e9c4b1ce201da28c648120affbb890579e2d8f4d18231c5784ede6c465738aa2066fc54fecade41d2d4681ed1b6f376d0912afc60b4
diff --git a/dev-python/pecan/pecan-1.6.0.ebuild b/dev-python/pecan/pecan-1.6.0.ebuild
new file mode 100644
index 000000000000..3bbdf2829364
--- /dev/null
+++ b/dev-python/pecan/pecan-1.6.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A WSGI object-dispatching web framework, lean, fast, with few dependencies"
+HOMEPAGE="
+ https://github.com/pecan/pecan/
+ https://pypi.org/project/pecan/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/webob-1.4[${PYTHON_USEDEP}]
+ >=dev-python/mako-0.4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/webtest-1.3.1[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/pillow-heif/Manifest b/dev-python/pillow-heif/Manifest
index eb79d4e0a9d0..8d4ad21d222a 100644
--- a/dev-python/pillow-heif/Manifest
+++ b/dev-python/pillow-heif/Manifest
@@ -1 +1,2 @@
DIST pillow_heif-0.21.0.tar.gz 16178019 BLAKE2B 1ac057f4485331c36348f277b31d073dfe5d3aab69baaef0947449002fb095c81ffd562442f059afc29a19cafb3fa898b011c17a622963e6813a53dd2779c2f7 SHA512 9683b3eea9ea4dc0730bfab2e1163545ea31719b62cfd90a4f58aaf7ab401aef27afb7b9458c93daf9e5fa445b8f7f1ec3b3174fa9ae44513d9baaa10e777913
+DIST pillow_heif-0.22.0.tar.gz 18551571 BLAKE2B 60edcd7f1e6427651f85a2d8604b2a478646ba90cc1aeb09b768b7cf94b333d14e0d0d118d26d7ef68e6a79873d2d18f7f85ad0ae02ae81b8298e6c758ae01d0 SHA512 072de5e3afbfb373e36b51898f67e12d1abcd9a391e33b2dafe19372bb0f3ffca20ab1a7f7f8dcd0dc163a7c8aee27040613deb5d2adba0fd3b6c774cbff8c85
diff --git a/dev-python/pillow-heif/pillow-heif-0.22.0.ebuild b/dev-python/pillow-heif/pillow-heif-0.22.0.ebuild
new file mode 100644
index 000000000000..fcdac6383881
--- /dev/null
+++ b/dev-python/pillow-heif/pillow-heif-0.22.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2024-2025 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_{9,10,11,12,13} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python interface for libheif library"
+HOMEPAGE="
+ https://github.com/bigcat88/pillow_heif
+ https://pypi.org/project/pillow-heif/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ !test? (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ >=media-libs/libheif-1.17.6:=
+ )
+ test? (
+ dev-python/pillow[jpeg,lcms,webp,zlib,${PYTHON_USEDEP}]
+ >=media-libs/libheif-1.17.6:=[x265]
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ media-libs/opencv[png,python,${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-0.21.0-respect-cflags.patch" )
+
+EPYTEST_DESELECT=(
+ # only works with libeif-1.19.5
+ # https://github.com/bigcat88/pillow_heif/pull/312/commits/d740dcce7d967d025c4100611cc7a4632aa3fc3a
+ "tests/read_test.py::test_heif_read_images"
+)
+
+distutils_enable_tests pytest
diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest
index cb19b6192f51..0a0de65d558c 100644
--- a/dev-python/plotly/Manifest
+++ b/dev-python/plotly/Manifest
@@ -1,2 +1 @@
-DIST plotly.py-5.24.0.gh.tar.gz 32084853 BLAKE2B 87371902c0f654a16e0d2b97655614b99e05511a298839b244d3147bd2330b70275d1235f4b75eb3bb1dc13289e4d6dab71ec68710d59f1cec467e05e998c609 SHA512 42071af552f666dcc98efe4995a156212971ca92a6320e18861c6e804ab5cd0641c8b772958d3080780aab48e779fc02a13c327c18b36c5077cd137f59f86aff
DIST plotly.py-5.24.1.gh.tar.gz 32096988 BLAKE2B 79c1f3350bb43780f5f5f2f54955591875c2819a4b819e667e8df14ae72e42cf2939167a3425bd725e80af8823c8578a9cf286f4e4d82881578ca13f7e1cd860 SHA512 dc1484f5b0630bd4d936ab23231be7a577b887701f1f3c33d8f6501dc65718d871bee7af9f467fe130d2e7dcdded22717562352ce4ec70d25bc368faeb51d0e8
diff --git a/dev-python/plotly/plotly-5.24.0.ebuild b/dev-python/plotly/plotly-5.24.0.ebuild
deleted file mode 100644
index 2dc1e6689c42..000000000000
--- a/dev-python/plotly/plotly-5.24.0.ebuild
+++ /dev/null
@@ -1,119 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-DISTUTILS_USE_PEP517=setuptools
-
-inherit distutils-r1
-
-MY_P=plotly.py-${PV}
-DESCRIPTION="Browser-based graphing library for Python"
-HOMEPAGE="
- https://plotly.com/python/
- https://github.com/plotly/plotly.py/
- https://pypi.org/project/plotly/
-"
-SRC_URI="
- https://github.com/plotly/plotly.py/archive/refs/tags/v${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S="${WORKDIR}/${MY_P}/packages/python/plotly"
-# The tests are not included in the PyPI tarball, to use the GitHub tarball
-# we have to skip npm, which means that the resulting install will
-# unfortunately lack the jupyterlab extension.
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- dev-python/packaging[${PYTHON_USEDEP}]
- >=dev-python/tenacity-6.2.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/versioneer[${PYTHON_USEDEP}]
- test? (
- dev-python/ipykernel[${PYTHON_USEDEP}]
- dev-python/ipython[${PYTHON_USEDEP}]
- dev-python/ipywidgets[${PYTHON_USEDEP}]
- dev-python/jupyter[${PYTHON_USEDEP}]
- dev-python/jupyterlab[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pandas[${PYTHON_USEDEP}]
- dev-python/pillow[${PYTHON_USEDEP}]
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/shapely[${PYTHON_USEDEP}]
- dev-python/statsmodels[${PYTHON_USEDEP}]
- dev-python/xarray[${PYTHON_USEDEP}]
- dev-python/scikit-image[${PYTHON_USEDEP}]
- )
-"
-
-# There are sphinx docs but we are missing a bunch of dependencies.
-# distutils_enable_sphinx ../../../doc/apidoc
-distutils_enable_tests pytest
-
-# README ends up a broken symlink
-DOCS=()
-
-python_prepare_all() {
- local PATCHES=(
- # https://github.com/plotly/plotly.py/pull/4622
- "${FILESDIR}/${PN}-5.23.0-numpy-2.patch"
- )
-
- distutils-r1_python_prepare_all
-
- # unbundle versioneer
- rm versioneer.py || die
- # Do not try to fetch stuff with npm
- export SKIP_NPM=1
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # kaleido not packaged
- plotly/tests/test_optional/test_kaleido
-
- # plotly-orca not packaged
- plotly/tests/test_orca
- )
-
- local EPYTEST_DESELECT=(
- # kaleido not packaged
- plotly/tests/test_orca/test_to_image.py::test_bytesio
-
- # fails in non-isolated env
- test_init/test_dependencies_not_imported.py::test_dependencies_not_imported
- test_init/test_lazy_imports.py::test_lazy_imports
-
- # Minor matplotlib incompatibility
- plotly/matplotlylib/mplexporter/tests/test_basic.py::test_legend_dots
- plotly/matplotlylib/mplexporter/tests/test_utils.py::test_linestyle
-
- # TODO
- plotly/tests/test_io/test_to_from_plotly_json.py::test_sanitize_json
-
- # two subtests that require 'vaex' and 'polars' respectively
- plotly/tests/test_optional/test_px/test_px_input.py::test_build_df_from_vaex_and_polars
- plotly/tests/test_optional/test_px/test_px_input.py::test_build_df_with_hover_data_from_vaex_and_polars
-
- # the usual recursion problem
- plotly/tests/test_optional/test_utils/test_utils.py::test_masked_constants_example
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- mv "${ED}"/{usr/etc,etc} || die
-}
diff --git a/dev-python/pydantic/Manifest b/dev-python/pydantic/Manifest
index cf2f5c12bc62..3baef54233c8 100644
--- a/dev-python/pydantic/Manifest
+++ b/dev-python/pydantic/Manifest
@@ -1,3 +1,4 @@
DIST pydantic-2.10.6.tar.gz 761681 BLAKE2B 1ddb057cd40f50d09dc870aae937bc4d5d41529601c26b84bbd5223d75adca43e14e779ef40ef88dbeab3dc66ae960b662a3244ffa38bf8718d6f9d50b966aed SHA512 69c5cdfb9047875497cf2ac0107f0aaa8d1d91a354d514277e913cc13081e1a76f72a154b50339c95240c82d2a262f4b8dcf71c1e5762449bd344054dba449ce
DIST pydantic-2.11.0a2.tar.gz 768863 BLAKE2B 2da69490f8dc711e3835a902789cce9fac9a6eba5d827bd8efa7ea8498a5661dd31a17734408d693d78a0b0588170302c76905228aa05dd771a62f581862971c SHA512 9ad26a85c659b5b5d76c1ff7b9267c641deb91b5f3f4c6f65e1ef4035dc73599e300c03b76770ec958847f89040e38bdad87f4119c585d159e95920805c826b7
DIST pydantic-2.11.0b1.tar.gz 774826 BLAKE2B 047f4075760fa679b8e183c5450c3cd423d17672372b9c306a7e1e3e8fc4ce087c781aa905924659ca6be0cfdba6614ce04028c8715156b6fa297c323d68cef3 SHA512 0eda99f3a296a3dee7db0bd65918a97780fdb19850b6138405fb2ed320fb4efb7d484b2c1a2fa1b3199684c49917f30c6bd7abb60d594d7e760fdcf2eda7f9c7
+DIST pydantic-2.11.0b2.tar.gz 776762 BLAKE2B 6632a96d46b71519527bacffe99e07c0a548b03bfda1980dbab005bf7bc2169b89140ba894eb1fab1216b5ad9155ade13ded32606ed5a781549c59da949db6ea SHA512 8bcdf95a1a90a4b7b7c42e338f16ee3268e2bdf5d7c1c72df6ab81db82a79a273c858103068cfc13a3728b1f3c720faf4118e6ae2a4fd762f12eb7dea36b7d5f
diff --git a/dev-python/pydantic/pydantic-2.11.0_beta2.ebuild b/dev-python/pydantic/pydantic-2.11.0_beta2.ebuild
new file mode 100644
index 000000000000..7323b5e29971
--- /dev/null
+++ b/dev-python/pydantic/pydantic-2.11.0_beta2.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Data parsing and validation using Python type hints"
+HOMEPAGE="
+ https://github.com/pydantic/pydantic/
+ https://pypi.org/project/pydantic/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/annotated-types-0.6.0[${PYTHON_USEDEP}]
+ ~dev-python/pydantic-core-2.32.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-inspection-0.4.0[${PYTHON_USEDEP}]
+ dev-python/tzdata[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/cloudpickle[${PYTHON_USEDEP}]
+ ' 'python3*' pypy3)
+ dev-python/dirty-equals[${PYTHON_USEDEP}]
+ >=dev-python/email-validator-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/faker-18.13.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ sed -i -e '/benchmark/d' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # -Werror, sigh
+ tests/test_types_typeddict.py::test_readonly_qualifier_warning
+ )
+ local EPYTEST_IGNORE=(
+ # require pytest-examples
+ tests/test_docs.py
+ # benchmarks
+ tests/benchmarks
+ )
+
+ if ! has_version "dev-python/cloudpickle[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/test_pickle.py
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_mock
+}
diff --git a/dev-python/pygresql/pygresql-6.0.1.ebuild b/dev-python/pygresql/pygresql-6.0.1.ebuild
index b4ec0e8f2b3e..a9f8a2cdbb66 100644
--- a/dev-python/pygresql/pygresql-6.0.1.ebuild
+++ b/dev-python/pygresql/pygresql-6.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pypax/pypax-0.9.5-r2.ebuild b/dev-python/pypax/pypax-0.9.5-r2.ebuild
index 776fb2d5a436..e54b191f5208 100644
--- a/dev-python/pypax/pypax-0.9.5-r2.ebuild
+++ b/dev-python/pypax/pypax-0.9.5-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pypax/pypax-9999.ebuild b/dev-python/pypax/pypax-9999.ebuild
index 5d4447f066f5..5f8f6264e6e9 100644
--- a/dev-python/pypax/pypax-9999.ebuild
+++ b/dev-python/pypax/pypax-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/rich-click/Manifest b/dev-python/rich-click/Manifest
index 54995b3a3014..54778bdc462e 100644
--- a/dev-python/rich-click/Manifest
+++ b/dev-python/rich-click/Manifest
@@ -1,2 +1,2 @@
-DIST rich-click-1.8.6.gh.tar.gz 8140359 BLAKE2B ab5ddbad68cae208797a7893fdd8092035d8b4a428926fd55ffb01ebdd1ea83a510c1bf0622f01fd9f84da791425d1ac5647febc16bc55781c28d3fac96c70d3 SHA512 922c0c133104cb1aba9aca439aa81835202bf055c0b652339f3eb0c66bf71e7cb201881e03eb585f3eb1c0dedf1aa943df18917ce86f0d8d607ea7f9208ab0e2
DIST rich-click-1.8.7.gh.tar.gz 8140585 BLAKE2B f9d05ff78b4daad478cf9c7dad8ee66f4d970a80943e1ae5740d67c2a8c0f3e34ac2d06c8a50e39284782d801eb9435f9ef4b6037ba65fcde173e2da4dc4c702 SHA512 130787a0ae19363463d32e40e7b53513a1be919afcf3cfc7fec90ce2f3a75b948be4584ad7efda89161044ec0e3ee3a69cca255d4b41fdcda11a665508d9f65e
+DIST rich-click-1.8.8.gh.tar.gz 8141426 BLAKE2B 9288f7818849b82e65c4c589597dbf0493e37d18f4cbbb81469a0b43ca611c091b4fce5df968d428c4733ce213d52cffddbb2d0516051275544b7e865771d3ff SHA512 45b954bb2f402fc4d9b837750250d92d0fd547f83bd893df75f5a2cb350177ae65f665112e8727c47c5ad31d974b66a685641574d7aa88a52a93098cbae9ff94
diff --git a/dev-python/rich-click/rich-click-1.8.6.ebuild b/dev-python/rich-click/rich-click-1.8.8.ebuild
index d52764d97ac3..d52764d97ac3 100644
--- a/dev-python/rich-click/rich-click-1.8.6.ebuild
+++ b/dev-python/rich-click/rich-click-1.8.8.ebuild
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
index 8a9a2a399bc4..8c5b6f19c9ee 100644
--- a/dev-python/setuptools/Manifest
+++ b/dev-python/setuptools/Manifest
@@ -1,2 +1,3 @@
DIST setuptools-75.8.2.tar.gz 1344083 BLAKE2B 7d4dff2c0948bb411ef5f70e5f5f91bc0e230b155a97419d263f88e54a94390fd7dcadad14105f4d886a25024bf4c95e776ae7b25e4b1d6f17e45e6060b99da2 SHA512 adf7f5d2eab7621b03c86e3f96857b176631108dc8a0eba2b16b87e394bff0b607998bc24cc074cd3f7b0ed6dbe0bd753cce5af2f108fce2473fb50b22f32913
DIST setuptools-76.0.0.tar.gz 1349387 BLAKE2B 4293d1b0719c70c17bde8b6091f394420a300175b787f0a1aa5a42cc81b4dfad186f1d0927b32124f37f78a730a049e16cfd87dbc71fa1ed5c1bb632634ece84 SHA512 8272f0f2823d8f093d24eeb12270f978dab52d1a609c08275248024decf2b47bc5b1ce352f22ea198bd93eb3375c829757e573921721e05f5269651669df9b2e
+DIST setuptools-76.1.0.tar.gz 1350273 BLAKE2B ba4a2b83b793394fdddaa1ce817b8ea65db395d9f5ef5b2293f54b56d88570bc5db307d609c1f1531d720ece5333808a38fc1788832b2d5783ffd2b498a2b7ee SHA512 3e937bbf68c313ac8fe7dedbd3f644598dca623d564a943edc53fddf6726c3d8dd1f6efcd5bc9350ee1c98e0d8005c9854eefc162baefb1aaabd7d8cff9893d9
diff --git a/dev-python/setuptools/setuptools-76.1.0.ebuild b/dev-python/setuptools/setuptools-76.1.0.ebuild
new file mode 100644
index 000000000000..85474085b864
--- /dev/null
+++ b/dev-python/setuptools/setuptools-76.1.0.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2025 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
+
+# please bump dev-python/ensurepip-setuptools along with this package!
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !<dev-python/setuptools-rust-1.8.0
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-4[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.2.2[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.44.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
+ ' 3.10)
+ !<=dev-libs/gobject-introspection-1.76.1-r0
+ !=dev-libs/gobject-introspection-1.78.1-r0
+ !=dev-libs/gobject-introspection-1.80.1-r1
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/build-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pip-run[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
+ dev-python/pytest-subprocess[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+# setuptools-scm is here because installing plugins apparently breaks stuff at
+# runtime, so let's pull it early. See bug #663324.
+#
+# trove-classifiers are optionally used in validation, if they are
+# installed. Since we really oughtn't block them, let's always enforce
+# the newest version for the time being to avoid errors.
+# https://github.com/pypa/setuptools/issues/4459
+PDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ local PATCHES=(
+ # TODO: remove this when we're 100% PEP517 mode
+ "${FILESDIR}/setuptools-62.4.0-py-compile.patch"
+ # https://github.com/abravalheri/validate-pyproject/pull/221
+ "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # breaks tests
+ sed -i -e '/--import-mode/d' pytest.ini || die
+
+ # remove bundled dependencies
+ rm -r */_vendor || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # network
+ setuptools/tests/test_build_meta.py::test_legacy_editable_install
+ setuptools/tests/test_distutils_adoption.py
+ setuptools/tests/test_editable_install.py
+ setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
+ setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ # expects bundled deps in virtualenv
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
+ # fails if python-xlib is installed
+ setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
+ # TODO, probably some random package
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
+ # broken by unbundling
+ setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
+ # fails on normalized metadata, perhaps different dep version?
+ setuptools/tests/test_build_meta.py::TestBuildMetaBackend::test_build_with_pyproject_config
+ # TODO
+ setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist
+ # relies on -Werror
+ setuptools/_static.py::setuptools._static.Dict
+ setuptools/_static.py::setuptools._static.List
+ )
+
+ local EPYTEST_XDIST=1
+ local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
+ epytest -o tmp_path_retention_policy=all \
+ -m "not uses_network" setuptools
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 5553369bace9..fdbccdb23c5b 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,2 +1,4 @@
DIST sqlglot-26.10.1-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e
DIST sqlglot-26.10.1.tar.gz 5334132 BLAKE2B 09050744362cd6096b761f97d67230e9908b88f074958b23c3c5eeae10adc5319a69134d68f41d5d181fea0e7d16aaaed224a6c786426da36a60fba5b6bbda16 SHA512 cee6ff027bbeb21d1a325f90f2d64f9d87bd221e2e5a1c0a9f11ddb3f11a898dc570b278be157ebd1050cb810338057bd6595fec322c97a98937c2c9ee008a09
+DIST sqlglot-26.11.1-crates.tar.xz 8327388 BLAKE2B 69213d11940f9d4e743b169ef831b8b52a771f012e247570cf0703580a14af435d4d033b4b3ddfca6f4022b741261a24f3b47e5137de644d863714006520f857 SHA512 5de0781c54265b369e5e46b7cfbcc04a3118aa8d1323bff14f2841c95d471f545c923eedb88dbbb81a910801c5a505ff37a25701af936c06cf55a1659cd8822e
+DIST sqlglot-26.11.1.tar.gz 5335079 BLAKE2B fad8c5cf7f9e4b092bdcb73d3ed476b9e9d8260db3fff6679d8b325529b2164cdc0ca6368f45f7e351ebd31062037e1c78c9070b84a8347caaa5968d1108a2be SHA512 b7db28026c5f28b6e23e3f517daed08158315acb5965975ecf8ce43cb3cdaeeda8799ca60606037197d09c23338d9f6a10c95a33212c1106576860b1b17974f7
diff --git a/dev-python/sqlglot/sqlglot-26.11.1.ebuild b/dev-python/sqlglot/sqlglot-26.11.1.ebuild
new file mode 100644
index 000000000000..e6d6333f80ba
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-26.11.1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES=" "
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+CARGO_OPTIONAL=1
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ https://github.com/gentoo-crate-dist/sqlglot/releases/download/v${PV}/${P}-crates.tar.xz
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016
+"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # timing, sigh
+ # https://github.com/tobymao/sqlglot/issues/3961
+ tests/test_generator.py::TestGenerator::test_generate_nested_binary
+ )
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/superqt/Manifest b/dev-python/superqt/Manifest
index 2aaa0a71596d..e120026cd89d 100644
--- a/dev-python/superqt/Manifest
+++ b/dev-python/superqt/Manifest
@@ -1,2 +1 @@
-DIST superqt-0.6.7.tar.gz 96733 BLAKE2B 3c189989c1bdbd1dd35bcb5a80951c817fefe19b61e4c8d44878fbfc7cc850b272149219b995a1a1b808e11063c8c16e4dafc7eaafa772c4912936a3708971e9 SHA512 054df016442cb72327218f4d73fbcfd2335178c10cb09f7c5e645721189403580f082ad2853527f84bf1513b1605b470b16fc08848bff077b5a5e1746df60f24
DIST superqt-0.7.0.tar.gz 97558 BLAKE2B 7210f0b96858a78d6798fbf19ff260d9954ced05f2e82902acc6c897fef64dd604282a435c2a8d06c085bbc88f286e5ac93682e7bf08c1c332646842e389f2be SHA512 3594ecff511285f7df0a44be5f6fb97128a2724c0d90053a3fa008f47237dee294ad062997053abcba6d54ddb73a0c21f9a0f51e824ebf22cad97e686d5e54c1
diff --git a/dev-python/superqt/superqt-0.6.7.ebuild b/dev-python/superqt/superqt-0.6.7.ebuild
deleted file mode 100644
index a09f8607431f..000000000000
--- a/dev-python/superqt/superqt-0.6.7.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi virtualx
-
-DESCRIPTION="Missing widgets and components for PyQt/PySide"
-HOMEPAGE="
- https://github.com/pyapp-kit/superqt
- https://pypi.org/project/superqt/
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/qtpy-1.1.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-3.7.4.3[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pytest-qt[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_IGNORE=(
- # pint and pyconify not packaged
- tests/test_quantity.py
-)
-
-EPYTEST_DESELECT=(
- # fails in the sandbox, but works outside of it
- tests/test_eliding_label.py::test_wrapped_eliding_label
-)
-
-distutils_enable_tests pytest
-
-python_test() {
- virtx distutils-r1_python_test
-}
diff --git a/dev-python/twisted/Manifest b/dev-python/twisted/Manifest
index 2552f2335940..9385862cabcd 100644
--- a/dev-python/twisted/Manifest
+++ b/dev-python/twisted/Manifest
@@ -1,4 +1,3 @@
DIST twisted-24.10.0.tar.gz 3525999 BLAKE2B 4d274a4b5989597c2789e05774bad3595ac5284f5da25fb488d46b87a4bb0e0ab311fcab228eaf070530451a28098bbefc326f6d4806378b2fe076adf5b07199 SHA512 dad7c1301c3b31f096db8c4796e064e864c2c28107c46c202b4f4b123c99a0e69f9b43afbf582997dd2c15a08e95b41213e4bc67ea1fe9fd8137c76656a20162
DIST twisted-24.11.0.tar.gz 3526722 BLAKE2B cd874da038e3cbc369283de5d598b99680e3122ed9bdd0bbb8e541793b739b88281708c618c8f0cf9b4bf13684188b0b893ec5f744ae510c1af446822652a866 SHA512 cfd17cad9573b47b43761625ab529a1a0b27ce75545d9bc277622a7ce138b5dccf554d3c8764de1baafc07192e1172e50f4c6d19dc65590b5318a603a808efb9
-DIST twisted-24.7.0.tar.gz 3516844 BLAKE2B 169347260b473ea1c50806ce50324ebd51388186098886ccaad1f94e55f6b14eb7a7fc42728dbeaf4b5649d0e6dc1e4624cd5ab6d79feeaa733e18d09cfd689f SHA512 cd5a993c8f1dfdc82597bdc095e07c1016a2a86d1ce5b011b27f9f760db428fcba4579dda5733244979827f9c772c2480d1d419d2d24ae7af8697e2b8e852f62
DIST twisted-regen-cache.gz 911 BLAKE2B ffd3fcda6c67ffe6fd3ef581c8d507548396b66ed0708e9a5c790095e579c0d5f0f71596acf05712989da2ddef2b8d437eca973bc4d80ef8a9fa852915f38305 SHA512 95a9b931c73017d16d1b5e6b41345dddffe62b6af1a8e93b5e40d06d3d15be17b0dd0181c767ffeeb791534d463764ef9e066fa6c2ee2ac4b53c86d1da8fce03
diff --git a/dev-python/twisted/files/twisted-24.3.0-skip-dsa-tests.patch b/dev-python/twisted/files/twisted-24.3.0-skip-dsa-tests.patch
deleted file mode 100644
index 9dabba43391a..000000000000
--- a/dev-python/twisted/files/twisted-24.3.0-skip-dsa-tests.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From b948467c3f01cc46b5dcda8802b913295b7c8999 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@atlas.cz>
-Date: Wed, 31 Jul 2024 18:05:01 +0200
-Subject: [PATCH] Skip tests requiring DSA if SSH does not support DSS
-
-Modern OpenSSH no longer supports DSA/DSS. We need to skip tests that
-use DSA if it is not supported by the installed SSH. The availability of
-DSA can be checked by querying `ssh -Q key`, which includes `ssh-dss` in
-the output if DSS is available, as suggested in [1].
-
-[1] https://github.com/twisted/twisted/issues/12273#issuecomment-2260799255
-
-Issue: https://github.com/twisted/twisted/issues/12273
-
-Based on upstream PR https://github.com/twisted/twisted/pull/12274
-
-diff --git a/src/twisted/conch/test/test_cftp.py b/src/twisted/conch/test/test_cftp.py
-index 40b2deaedb..51a978de4b 100644
---- a/src/twisted/conch/test/test_cftp.py
-+++ b/src/twisted/conch/test/test_cftp.py
-@@ -20,6 +20,7 @@ from zope.interface import implementer
-
- from twisted.conch import ls
- from twisted.conch.interfaces import ISFTPFile
-+from twisted.conch.test.test_conch import HAS_DSA
- from twisted.conch.test.test_filetransfer import FileTransferTestAvatar, SFTPTestBase
- from twisted.cred import portal
- from twisted.internet import defer, error, interfaces, protocol, reactor
-@@ -1436,6 +1437,7 @@ exit
- @skipIf(skipTests, "don't run w/o spawnProcess or cryptography")
- @skipIf(not which("ssh"), "no ssh command-line client available")
- @skipIf(not which("sftp"), "no sftp command-line client available")
-+@skipIf(not HAS_DSA, "needs ssh supporting dsa")
- class OurServerSftpClientTests(CFTPClientTestBase):
- """
- Test the sftp server against sftp command line client.
-diff --git a/src/twisted/conch/test/test_conch.py b/src/twisted/conch/test/test_conch.py
-index 45b357c995..9e77c9b2e9 100644
---- a/src/twisted/conch/test/test_conch.py
-+++ b/src/twisted/conch/test/test_conch.py
-@@ -59,6 +59,21 @@ except ImportError as e:
- else:
- StdioInteractingSession = _StdioInteractingSession
-
-+def _has_dsa():
-+ has_dsa = False
-+ try:
-+ output = subprocess.check_output(
-+ [which("ssh")[0], "-Q", "key"], stderr=subprocess.STDOUT, text=True
-+ )
-+ keys = output.split()
-+ if "ssh-dss" in keys:
-+ has_dsa = True
-+ except BaseException:
-+ pass
-+ return has_dsa
-+
-+HAS_DSA = _has_dsa()
-+
-
- def _has_ipv6():
- """Returns True if the system can bind an IPv6 address."""
-@@ -551,6 +566,9 @@ class OpenSSHClientMixin:
- if not which("ssh"):
- skip = "no ssh command-line client available"
-
-+ if not HAS_DSA:
-+ skip = "needs ssh supporting dsa"
-+
- def execute(self, remoteCommand, process, sshArgs=""):
- """
- Connects to the SSH server started in L{ConchServerSetupMixin.setUp} by
---
-2.44.2
-
diff --git a/dev-python/twisted/files/twisted-24.3.0_p20240628-skip-py313-test.patch b/dev-python/twisted/files/twisted-24.3.0_p20240628-skip-py313-test.patch
deleted file mode 100644
index c469f7883f71..000000000000
--- a/dev-python/twisted/files/twisted-24.3.0_p20240628-skip-py313-test.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 2f14c47947206d7f2e53af85567938601728abbd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@gentoo.org>
-Date: Fri, 28 Jun 2024 06:48:23 +0000
-Subject: [PATCH] skip failing test in py3.13
-
-Let's skip failing test for now, Fedora does it as well [1].
-
-[1] https://src.fedoraproject.org/rpms/python-twisted/blob/c8c63fe475594326f50fd748b40ae65f925c1325/f/0010-Skip-failing-tests.patch
-
-Upstream-Issue: https://github.com/twisted/twisted/issues/12099
-
-diff --git a/src/twisted/test/test_failure.py b/src/twisted/test/test_failure.py
-index 9a3daae306..a7a3ce29bd 100644
---- a/src/twisted/test/test_failure.py
-+++ b/src/twisted/test/test_failure.py
-@@ -17,7 +17,7 @@ from io import StringIO
- from traceback import FrameSummary
- from types import TracebackType
- from typing import Any, Generator, cast
--from unittest import skipIf
-+from unittest import skipIf, skip
-
- from cython_test_exception_raiser import raiser
-
-@@ -990,6 +990,7 @@ class ExtendedGeneratorTests(SynchronousTestCase):
-
- self.assertEqual(traceback.extract_tb(stuff[0][2])[-1][-1], "1 / 0")
-
-+ @skip("Fails with Python 3.13")
- def test_findFailureInGenerator(self) -> None:
- """
- Within an exception handler, it should be possible to find the
---
-2.45.2
-
diff --git a/dev-python/twisted/files/twisted-24.7.0_rc1-skip-py313-tests.patch b/dev-python/twisted/files/twisted-24.7.0_rc1-skip-py313-tests.patch
deleted file mode 100644
index 9be4283567ec..000000000000
--- a/dev-python/twisted/files/twisted-24.7.0_rc1-skip-py313-tests.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 314fb5e18cbcaa11040a129d6ffaee3c376f55e7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <arkamar@gentoo.org>
-Date: Wed, 31 Jul 2024 15:08:20 +0200
-Subject: [PATCH] skip py3.13 incompatible tests
-
-Based on upstream changes in PR https://github.com/twisted/twisted/pull/12092
-
-diff --git a/src/twisted/internet/test/test_inlinecb.py b/src/twisted/internet/test/test_inlinecb.py
-index 355572b566..11c09c6996 100644
---- a/src/twisted/internet/test/test_inlinecb.py
-+++ b/src/twisted/internet/test/test_inlinecb.py
-@@ -6,11 +6,13 @@
- Tests for L{twisted.internet.inlineCallbacks}.
- """
-
-+import sys
- import traceback
- import unittest as pyunit
- import weakref
- from enum import Enum
- from typing import Any, Generator, List, Set, Union
-+from unittest import skipIf
-
- from twisted.internet import reactor, task
- from twisted.internet.defer import (
-@@ -1122,6 +1124,9 @@ class NonLocalExitTests(TestCase):
-
-
- class ForwardTraceBackTests(SynchronousTestCase):
-+ HAVE_PY3_12_OR_OLDER = sys.version_info < (3, 13)
-+
-+ @skipIf(not HAVE_PY3_12_OR_OLDER, "Needs Python 3.12 or older")
- def test_forwardTracebacks(self):
- """
- Chained inlineCallbacks are forwarding the traceback information
-@@ -1171,6 +1176,7 @@ class ForwardTraceBackTests(SynchronousTestCase):
-
- return d
-
-+ @skipIf(not HAVE_PY3_12_OR_OLDER, "Needs Python 3.12 or older")
- def test_forwardLotsOfTracebacks(self):
- """
- Several Chained inlineCallbacks gives information about all generators.
-@@ -1218,6 +1224,7 @@ class ForwardTraceBackTests(SynchronousTestCase):
- self.assertIn("Error Marker", tb)
- self.assertIn("in erroring", f.getTraceback())
-
-+ @skipIf(not HAVE_PY3_12_OR_OLDER, "Needs Python 3.12 or older")
- def test_forwardLotsOfTracebacksCoro(self):
- """
- Several chained inlineCallbacks mixed with coroutines gives information
---
-2.44.2
-
diff --git a/dev-python/twisted/twisted-24.7.0.ebuild b/dev-python/twisted/twisted-24.7.0.ebuild
deleted file mode 100644
index 7876c6016080..000000000000
--- a/dev-python/twisted/twisted-24.7.0.ebuild
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
-PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 multiprocessing pypi virtualx
-
-DESCRIPTION="An asynchronous networking framework written in Python"
-HOMEPAGE="
- https://twisted.org/
- https://github.com/twisted/twisted/
- https://pypi.org/project/Twisted/
-"
-SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/twisted-regen-cache.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
-IUSE="conch http2 serial ssl test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
- >=dev-python/automat-0.8.0[${PYTHON_USEDEP}]
- >=dev-python/constantly-15.1[${PYTHON_USEDEP}]
- >=dev-python/hyperlink-17.1.1[${PYTHON_USEDEP}]
- >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}]
- >=dev-python/zope-interface-5[${PYTHON_USEDEP}]
- conch? (
- >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/cryptography-3.3[${PYTHON_USEDEP}]
- dev-python/pyasn1[${PYTHON_USEDEP}]
- )
- http2? (
- <dev-python/h2-5.0[${PYTHON_USEDEP}]
- >=dev-python/h2-3.0.0[${PYTHON_USEDEP}]
- <dev-python/priority-2.0[${PYTHON_USEDEP}]
- >=dev-python/priority-1.1.0[${PYTHON_USEDEP}]
- )
- serial? (
- >=dev-python/pyserial-3.0[${PYTHON_USEDEP}]
- )
- ssl? (
- >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}]
- >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}]
- >=dev-python/idna-2.4[${PYTHON_USEDEP}]
- )
-"
-IDEPEND="
- >=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
- >=dev-python/constantly-15.1[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.2.0[${PYTHON_USEDEP}]
- >=dev-python/zope-interface-5[${PYTHON_USEDEP}]
-"
-BDEPEND="
- >=dev-python/hatch-fancy-pypi-readme-22.5.0[${PYTHON_USEDEP}]
- >=dev-python/incremental-22.10.0[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- $(python_gen_cond_dep '
- >=dev-python/appdirs-1.4.0[${PYTHON_USEDEP}]
- >=dev-python/bcrypt-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/constantly-15.1.0[${PYTHON_USEDEP}]
- <dev-python/cython-test-exception-raiser-2[${PYTHON_USEDEP}]
- >=dev-python/cython-test-exception-raiser-1.0.2[${PYTHON_USEDEP}]
- >=dev-python/idna-2.4[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-6.56[${PYTHON_USEDEP}]
- dev-python/pyasn1[${PYTHON_USEDEP}]
- >=dev-python/pyhamcrest-2[${PYTHON_USEDEP}]
- >=dev-python/pyserial-3.0[${PYTHON_USEDEP}]
- virtual/openssh
- ssl? (
- >=dev-python/pyopenssl-21.0.0[${PYTHON_USEDEP}]
- >=dev-python/service-identity-18.1.0[${PYTHON_USEDEP}]
- )
- ' "${PYTHON_TESTED[@]}")
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-24.3.0-skip-dsa-tests.patch"
- "${FILESDIR}/${PN}-24.3.0_p20240628-skip-py313-test.patch"
- "${FILESDIR}/${PN}-24.7.0_rc1-skip-py313-tests.patch"
-)
-
-python_prepare_all() {
- # upstream test for making releases; not very useful and requires
- # sphinx (including on py2)
- rm src/twisted/python/test/test_release.py || die
-
- # multicast tests fail within network-sandbox
- sed -e 's:test_joinLeave:_&:' \
- -e 's:test_loopback:_&:' \
- -e 's:test_multiListen:_&:' \
- -e 's:test_multicast:_&:' \
- -i src/twisted/test/test_udp.py || die
-
- distutils-r1_python_prepare_all
-}
-
-src_test() {
- # the test suite handles missing file & failing ioctl()s gracefully
- # but not permission errors from sandbox
- addwrite /dev/net/tun
- virtx distutils-r1_src_test
-}
-
-python_test() {
- if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
- einfo "Skipping tests on ${EPYTHON} (xfail)"
- return
- fi
-
- # breaks some tests by overriding empty environment
- local -x SANDBOX_ON=0
- # for py3.13, see
- # https://github.com/twisted/twisted/pull/12092#issuecomment-2194326096
- local -x LINES=25 COLUMNS=80
- "${EPYTHON}" -m twisted.trial -j "$(makeopts_jobs)" twisted ||
- die "Tests failed with ${EPYTHON}"
-}
-
-python_install() {
- distutils-r1_python_install
-
- # own the dropin.cache so we don't leave orphans
- > "${D}$(python_get_sitedir)"/twisted/plugins/dropin.cache || die
-
- python_doscript "${WORKDIR}"/twisted-regen-cache
-}
-
-python_install_all() {
- distutils-r1_python_install_all
-
- newconfd "${FILESDIR}/twistd.conf" twistd
- newinitd "${FILESDIR}/twistd.init" twistd
-}
-
-python_postinst() {
- twisted-regen-cache || die
-}
-
-pkg_postinst() {
- if [[ -z ${ROOT} ]]; then
- python_foreach_impl python_postinst
- fi
-}
-
-python_postrm() {
- rm -f "${ROOT}$(python_get_sitedir)/twisted/plugins/dropin.cache" || die
-}
-
-pkg_postrm() {
- # if we're removing the last version, remove the cache file
- if [[ ! ${REPLACING_VERSIONS} ]]; then
- python_foreach_impl python_postrm
- fi
-}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index 27d8fff1c4ae..fa553236b551 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -7,3 +7,5 @@ DIST uv-0.6.4-crates.tar.xz 60120880 BLAKE2B 67e7cba1df7e8c18e55d7d1a5748db7995c
DIST uv-0.6.5.gh.tar.gz 3782938 BLAKE2B 82528fbd5c65cc07dd4ba647dd86d81673370afe8568690601e54faa54ad0ffa42db375b63580b0ae67f1fda67a66f54d990ce97704c614e80bf54666ed3e11e SHA512 cb1564905d56ac5873db91476b9a0a09e450c2cfaf386d9d04b1861d1e798ec43d7f28e03099d732e03cc58f79820a7f825d7d8869b40f71fab4308412e401b5
DIST uv-0.6.6-crates.tar.xz 60230976 BLAKE2B 9b0dcb0d8246fc275f5b508c48661f0844622ee9280b9000e0131e6101d548b92f983502fa21070fd41aa20854aa0931b3a5be13fc96def5bafab6d0eebe943f SHA512 b1925417eb34135e9e9d92a8d832055cd3677142ac9e7369d9e1f64ceba02632914c6ddc669257a5d75dd27b8cea4612db2bb295d2b747a74e169a8e23fc5a6b
DIST uv-0.6.6.gh.tar.gz 3767860 BLAKE2B 09bcb296f10ecebc9bda81091ea9c7f589b9b44169981676b5013088c001301d2302bab8514d4c6fb9542ba0bc0d07377e68a46c35f667a6a408f86e499a1a89 SHA512 49ad9fdb411e719b5a2aae6d48750932c8ad65bace2b0a747a54b475bcd0a40da368712d074b4b3afdf28cc8003532aca712b3714d54323f184ee1358521d7c5
+DIST uv-0.6.7-crates.tar.xz 60339544 BLAKE2B 5bde165c809ee9a66c23a1811d461502021b2038c747deaa250b2f30e947712e6ccad23f188fc93b000edaaf53b657d90971803acff94ade6c61a29684cf5601 SHA512 d339b9cc8b4b19ba802d203f476da311d060962e07cffaeedd0aed05b21125b6a959a971d3654db3e26087c15331588dd6ebba2ab9e52fcd91b1a38a2dc8e9e7
+DIST uv-0.6.7.gh.tar.gz 3791242 BLAKE2B ca24f6945d6a442c32a574b901cf47dac3ede08603255b62feded82d36179a578aada04fca402d7738d2b3b78adfe22e4d1dbded502cafb2c5d4eb0407a5b5d4 SHA512 992f8a64f3d0c8f57be6959f91242ce7420c6ee94839f067dc142f895fb2c0b9ab4161b6a51112241e30c8836eefb7e5bc747f867c28bf09b95e0aaa52de8350
diff --git a/dev-python/uv/uv-0.6.7.ebuild b/dev-python/uv/uv-0.6.7.ebuild
new file mode 100644
index 000000000000..3a051e0e30a2
--- /dev/null
+++ b/dev-python/uv/uv-0.6.7.ebuild
@@ -0,0 +1,166 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.83.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=${PV}
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+"
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}