summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-01-12 06:54:02 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-01-12 06:54:02 +0000
commit53a3576672ba88c5621995fb8993bb7706732ee3 (patch)
treea8c1056ad60852cf11757c7f598e87876bf708ac /dev-python
parent021f8953d2136b08bfbabe7496540b7194853503 (diff)
downloadbaldeagleos-repo-53a3576672ba88c5621995fb8993bb7706732ee3.tar.gz
baldeagleos-repo-53a3576672ba88c5621995fb8993bb7706732ee3.tar.xz
baldeagleos-repo-53a3576672ba88c5621995fb8993bb7706732ee3.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/clang/Manifest1
-rw-r--r--dev-python/clang/clang-20.0.0_pre20250111.ebuild53
-rw-r--r--dev-python/cypari2/Manifest2
-rw-r--r--dev-python/cypari2/cypari2-2.2.1.ebuild (renamed from dev-python/cypari2/cypari2-2.1.4-r1.ebuild)15
-rw-r--r--dev-python/cypari2/files/cypari2-2.1.4-regen-bindings-for-each-python.patch40
-rw-r--r--dev-python/dirty-equals/Manifest1
-rw-r--r--dev-python/dirty-equals/dirty-equals-0.9.0.ebuild51
-rw-r--r--dev-python/django-timezone-field/Manifest1
-rw-r--r--dev-python/django-timezone-field/django-timezone-field-7.1.ebuild43
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.123.15.ebuild104
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-20.0.0_pre20250111.ebuild45
-rw-r--r--dev-python/marshmallow/Manifest1
-rw-r--r--dev-python/marshmallow/marshmallow-3.25.1.ebuild32
-rw-r--r--dev-python/poetry-core/Manifest1
-rw-r--r--dev-python/poetry-core/poetry-core-2.0.1.ebuild69
-rw-r--r--dev-python/pytest-flask/metadata.xml2
-rw-r--r--dev-python/pytools/Manifest1
-rw-r--r--dev-python/pytools/pytools-2025.1.ebuild31
-rw-r--r--dev-python/uv/Manifest1
-rw-r--r--dev-python/uv/uv-0.5.18.ebuild170
22 files changed, 614 insertions, 52 deletions
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index e960d60a57bd..f83a59fdc6ff 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -11,4 +11,5 @@ DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e2
DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
DIST llvm-project-2529a8df53af9bc6cecfd6c83404ffa5e89e3370.tar.gz 224493461 BLAKE2B 0d3c757a8f34a9bf6b2ac0ad394cc1f8125cfee534c8bd0c5875eba56fe0171892586ec05b6f1e859e5962f81c76c9a315f60bcda012df73a3bd66709b265038 SHA512 a49fa1da2fd398b279a90292704e30d8ff7163219bfd91c4a80fa5123d957cdef52d2ee41710a8bcbfea3d9a5eec269dfc756584fcc27a495f7f381176de4e69
+DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1
diff --git a/dev-python/clang/clang-20.0.0_pre20250111.ebuild b/dev-python/clang/clang-20.0.0_pre20250111.ebuild
new file mode 100644
index 000000000000..a99c5601e047
--- /dev/null
+++ b/dev-python/clang/clang-20.0.0_pre20250111.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/cypari2/Manifest b/dev-python/cypari2/Manifest
index 379839a9eefc..54b933892f6c 100644
--- a/dev-python/cypari2/Manifest
+++ b/dev-python/cypari2/Manifest
@@ -1,2 +1,2 @@
-DIST cypari2-2.1.4.gh.tar.gz 127038 BLAKE2B 0d4998841a9a630ea062d7096845771a9a250ed66b68f99988ded6442724559089e8dbbce13ef5c6ad467705c65b2ac9fc5889fa9c40b9665083af558280b81a SHA512 b5926281037aebb899c1a433a0ca106cdfafcb8cb7abb863268ff8151dbc52ee21dbe1d09dde632de1640a4cc4d37f59bebb0e379d61ac2fbdf9fffcf3ba4775
DIST cypari2-2.2.0.tar.gz 127530 BLAKE2B 0ce2e3f157d63c20a257b3b7eaf9a06bf241893193bd561c8980ecb38e698b2ca6679a74958a2398944753e6445c1ab5b063b14e408ef0395a9eaf9e0d7cc8db SHA512 5ba237feb1910bd7182a3c3e8e1409209d4f6e68c9f8966c3bd0ad2f6e66193b4dc3006f26fcb507cac7e6d1ee32ec6d5dda612290d8bd3b3350c8243dd89616
+DIST cypari2-2.2.1.tar.gz 127323 BLAKE2B 8dc382c54516482516388cdb98ff026938f87fb0b93cddc32ddc0bd6feca2dfd7983cabd0a2c9730bbe5f8eb189a23f4386bbe6325916e505fedfc10052e56e1 SHA512 b5b5c32a321cc8c58f44f9aecabf0a2ece5332596903a98bc6299c3598a247d994b4368318e57ae52e6768dcb1bdb95f152d31f1df378088d3412e22e979341b
diff --git a/dev-python/cypari2/cypari2-2.1.4-r1.ebuild b/dev-python/cypari2/cypari2-2.2.1.ebuild
index b7a9c909a7a5..2e4b6922070a 100644
--- a/dev-python/cypari2/cypari2-2.1.4-r1.ebuild
+++ b/dev-python/cypari2/cypari2-2.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,26 +7,21 @@ PYTHON_COMPAT=( python3_{9,10,11,12,13} )
DISTUTILS_USE_PEP517=standalone
DISTUTILS_EXT=1
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="Cython interface to PARI"
HOMEPAGE="https://github.com/sagemath/cypari2"
-# We're only using Github for v2.1.4 because PyPI is lagging:
-# https://github.com/sagemath/cypari2/issues/143
-SRC_URI="https://github.com/sagemath/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz"
-
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64"
-IUSE=""
+KEYWORDS="~amd64 ~riscv"
-DEPEND="sci-mathematics/pari[gmp,doc]
+DEPEND=">=sci-mathematics/pari-2.17.1:=[gmp,doc]
dev-python/cysignals[${PYTHON_USEDEP}]"
RDEPEND="${DEPEND}"
BDEPEND=">=dev-python/cython-3[${PYTHON_USEDEP}]"
-PATCHES=( "${FILESDIR}/${P}-regen-bindings-for-each-python.patch" )
+PATCHES=( "${FILESDIR}/cypari2-2.2.0-regen-bindings-for-each-python.patch" )
python_test(){
cd "${S}"/tests || die
diff --git a/dev-python/cypari2/files/cypari2-2.1.4-regen-bindings-for-each-python.patch b/dev-python/cypari2/files/cypari2-2.1.4-regen-bindings-for-each-python.patch
deleted file mode 100644
index cb9ba55fdd29..000000000000
--- a/dev-python/cypari2/files/cypari2-2.1.4-regen-bindings-for-each-python.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Ensure that the file auto_paridecl.pxd is both (re)generated with and
-installed for each python implementation.
-
-From 248d26e3e6b1c02fdd3391f033e29d7012189d9e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= <frp.bissey@gmail.com>
-Date: Tue, 28 Apr 2020 09:42:39 +1200
-Subject: [PATCH] move rebuild out of build_ext so it is run before everything
-
----
- setup.py | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 099ed3b..473fe12 100755
---- a/setup.py
-+++ b/setup.py
-@@ -13,6 +13,10 @@ from autogen.paths import include_dirs, library_dirs
-
- ext_kwds = dict(include_dirs=include_dirs(), library_dirs=library_dirs())
-
-+# Generate auto-generated sources from pari.desc
-+# This needs to be done before build/build_ext so the generated pxd is moved
-+# to the build directory and installed with newer setuptools.
-+rebuild()
-
- if "READTHEDOCS" in os.environ:
- # When building with readthedocs, disable optimizations to decrease
-@@ -29,9 +33,6 @@ if "READTHEDOCS" in os.environ:
- # Adapted from Cython's new_build_ext
- class build_ext(_build_ext):
- def finalize_options(self):
-- # Generate auto-generated sources from pari.desc
-- rebuild()
--
- self.directives = {
- "autotestdict.cdef": True,
- "binding": True,
---
-2.26.2
-
diff --git a/dev-python/dirty-equals/Manifest b/dev-python/dirty-equals/Manifest
index fe8aea7fde90..f31625dcf514 100644
--- a/dev-python/dirty-equals/Manifest
+++ b/dev-python/dirty-equals/Manifest
@@ -1 +1,2 @@
DIST dirty-equals-0.8.0.gh.tar.gz 50468 BLAKE2B 5d5c58807c0ef26db80895a26b5246a0305ab55389f95d7e13586cad2adc4edd17d24905fad5e462c2bafb59cad7453b55400e4576e0f845ec75d617405f67bb SHA512 8fc6ee0eefe700c89acf5b2181e502422835a89e8f0bb771b07133bda48b804f09b18e452919c8eb7d50e579b032732edad3e9ec150cd7bc7a33a4db77d9ab5c
+DIST dirty-equals-0.9.0.gh.tar.gz 50607 BLAKE2B ec569a818b067a9162d8efefffc9cfae7a7a3ee7ebf1e3659334d4123644046d5195849a9bde0c93f29d23e32657eae2bf692376a6928a8e82044b5fe54a530d SHA512 5e0a3f465c1a0bc70292ab013e5622afdfa1150e3315cfde7cc6dfb458000cc925a9ec6c54fb93bfe287b2c497dbbadc6ebe8e100819e537c7e6769a7ce61776
diff --git a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild
new file mode 100644
index 000000000000..f8001761b836
--- /dev/null
+++ b/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2022-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
+
+DESCRIPTION="Doing dirty (but extremely useful) things with equals"
+HOMEPAGE="
+ https://dirty-equals.helpmanual.io/latest/
+ https://github.com/samuelcolvin/dirty-equals/
+ https://pypi.org/project/dirty-equals/
+"
+SRC_URI="
+ https://github.com/samuelcolvin/dirty-equals/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2.4.2[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2021.3[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # require unpackaged pytest-examples
+ tests/test_docs.py
+ )
+
+ if ! has_version "dev-python/pydantic[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/test_other.py
+ )
+ fi
+
+ local -x TZ=UTC
+ epytest "${args[@]}"
+}
diff --git a/dev-python/django-timezone-field/Manifest b/dev-python/django-timezone-field/Manifest
index 385fd7e38358..7326d47b2113 100644
--- a/dev-python/django-timezone-field/Manifest
+++ b/dev-python/django-timezone-field/Manifest
@@ -1 +1,2 @@
DIST django-timezone-field-7.0.gh.tar.gz 37416 BLAKE2B a0420ccbcb9d7d834e65d0cc89fd83662bd4b3773f1443f05866381d6bbeacba86bdd2e6078a3819bdbf6c174e3ede08e4b9d307838d5082e7bef037ff751681 SHA512 9a96b65a7dce48f58c3915e835e92b8d884f6b15f8314f5d6f1a34bc75ad4bc8f0c33035a4844b5906b7d6bc468cf364be8c82843f3af714a59dc9a40e71f9af
+DIST django-timezone-field-7.1.gh.tar.gz 36680 BLAKE2B 47a754f0050967c196b9d47199bb83f87984ae66cf36578681d54722b76908c506c5ae290d81bb5e33fe3df3c79840301697d935edf8f076f89c6cda1b64e36b SHA512 e242ccebccb3942b2b681e87ebeb4546f925d270b705fa9049a350640c3888c2a9388339c5be9909645b0fa772a4dd71199450639f9fbe2cce531fa6a9bd0df0
diff --git a/dev-python/django-timezone-field/django-timezone-field-7.1.ebuild b/dev-python/django-timezone-field/django-timezone-field-7.1.ebuild
new file mode 100644
index 000000000000..2f2a7a2576fb
--- /dev/null
+++ b/dev-python/django-timezone-field/django-timezone-field-7.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="A Django app providing database and form fields for timezone objects"
+HOMEPAGE="
+ https://github.com/mfogel/django-timezone-field/
+ https://pypi.org/project/django-timezone-field/
+"
+SRC_URI="
+ https://github.com/mfogel/django-timezone-field/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ <dev-python/django-6[${PYTHON_USEDEP}]
+ >=dev-python/django-2.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/djangorestframework[${PYTHON_USEDEP}]
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+ dev-python/pytest-lazy-fixtures[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x DB_ENGINE=sqlite
+ epytest
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 7d3deec24877..ce6eb172fcf0 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,3 +1,4 @@
DIST hypothesis-6.123.13.gh.tar.gz 9510548 BLAKE2B d2656c4e76713533eb58f5cbee945bcd66be2ba50bfa1278d7e507214dcb00f067a1ef0e74e2e7240763fc7ceb9f2cd9f2036840850910134f713fe1891a924e SHA512 541172d8ffaa0a8103d7e889042b20426bfa6131c1628bce1131c83509f449b8b20bb448ed867e8a297392421d300b6e8ca8893da9d42cbf84144db705e35b5c
+DIST hypothesis-6.123.15.gh.tar.gz 9507335 BLAKE2B e4e017ecd78f702aaf02efd5df0a87d145d5a4f2650a1136dd03d240f4d0cd13ab56b39b5e863ea984c6d1db3d8124b59d48151923a0f4750726f05d92ab54dd SHA512 432457b4c556e842b7fbc8248ab094798e895e72e9f7e70fe579eca877d9ab8aec1291584eb6383d18784dacc666525f5200ebec2ee52c9a0397aa35f2114d5e
DIST hypothesis-6.123.2.gh.tar.gz 9506171 BLAKE2B a7033cf2b5d56753ce19c5b369889b62d88c86df8254c840341c599dd97f575fc84e73236e701f4303d6141146bdef24f13f8d666f30a578ff80b067976934ba SHA512 d46b3d83a14b629a39f7eb2dcb0915802ee8185b4796ea38d053e44f2e8e4025a053c99a0aea7b4b59442a24fd3600b78d5a19e1f0bbd13e8a2d9f93cdca3df6
DIST hypothesis-6.123.7.gh.tar.gz 9509012 BLAKE2B 71def0634aee97b4d64bacf9b4a09e091fb209c9de2d2ecbcbb86ad0f7bc2e330e7d7b93e1c810b864fd80ecd82eb6bf51aaf6a6de99c74c338609062ce1e90e SHA512 00b26f4e040a948aaf64554ee395fad4c9b0bb116c87d97bd3ef20be1d25068a79ed1c856c497c1d3d5122481386625c3323be77c0ec851fab823a706350b437
diff --git a/dev-python/hypothesis/hypothesis-6.123.15.ebuild b/dev-python/hypothesis/hypothesis-6.123.15.ebuild
new file mode 100644
index 000000000000..b67bbcacc7ba
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.123.15.ebuild
@@ -0,0 +1,104 @@
+# 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} )
+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
+ )
+ ;;
+ 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 e960d60a57bd..f83a59fdc6ff 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -11,4 +11,5 @@ DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e2
DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
DIST llvm-project-2529a8df53af9bc6cecfd6c83404ffa5e89e3370.tar.gz 224493461 BLAKE2B 0d3c757a8f34a9bf6b2ac0ad394cc1f8125cfee534c8bd0c5875eba56fe0171892586ec05b6f1e859e5962f81c76c9a315f60bcda012df73a3bd66709b265038 SHA512 a49fa1da2fd398b279a90292704e30d8ff7163219bfd91c4a80fa5123d957cdef52d2ee41710a8bcbfea3d9a5eec269dfc756584fcc27a495f7f381176de4e69
+DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1
diff --git a/dev-python/lit/lit-20.0.0_pre20250111.ebuild b/dev-python/lit/lit-20.0.0_pre20250111.ebuild
new file mode 100644
index 000000000000..4230fa63b2a4
--- /dev/null
+++ b/dev-python/lit/lit-20.0.0_pre20250111.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/marshmallow/Manifest b/dev-python/marshmallow/Manifest
index 9c905e452297..f4d42024eb40 100644
--- a/dev-python/marshmallow/Manifest
+++ b/dev-python/marshmallow/Manifest
@@ -1,2 +1,3 @@
DIST marshmallow-3.24.2.gh.tar.gz 184933 BLAKE2B 0b35eee9c70583875f01d9694322ade0945f1b4e9ef4858e18abffe9dcbe68a6a05eb1d9ff4a9366910ded32d6ce18bf0b948db6344fffb3f62d1e2b3cdf9983 SHA512 250497e3fb6b32f4ef103732c2231659db63fa2f7a2c8173b31bbc8a5d40a67cfabbec03af72187f99d92e6c659a6b9ee699fc2a4ff052874eb41cdfb28b7626
DIST marshmallow-3.25.0.gh.tar.gz 185182 BLAKE2B 9e560ec5b7a4f1a34d37bbf544edd3cdfdf59ce8bf3fa73a5bd15b85eaecdc59130892e42d91f668230505a7aa3d94527282e7bf2f39097389bf8aa795ee4e6e SHA512 b00e9a13a3ccf08baeb8ad85f2c68462ddecb891d76a8e91974d4cebda63c1299fc3a7bd1d41fb7b7fc73b0eee4831630bb6023b68f3f288e86d566f04d7e533
+DIST marshmallow-3.25.1.tar.gz 217295 BLAKE2B 73f6b1e7430f44bc3ea70c35ae5f5a3d219d6a89b53785ab7c32ec223714cd085822f3f41fef10e5af602ae64fab26d67ba49c2f7ef1f3ac24e8c406e3e18ff1 SHA512 7f67ec90ce4b8933d8e6b3aaac66de314d249b314cde85c2489644271426624136334daaea4aabfda638cb156bcbaf685c9a10e5fd7ecd7f008a0d4bd5a6a72d
diff --git a/dev-python/marshmallow/marshmallow-3.25.1.ebuild b/dev-python/marshmallow/marshmallow-3.25.1.ebuild
new file mode 100644
index 000000000000..1fe5c6c67a45
--- /dev/null
+++ b/dev-python/marshmallow/marshmallow-3.25.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A library for converting to and from native Python datatypes"
+HOMEPAGE="
+ https://github.com/marshmallow-code/marshmallow/
+ https://pypi.org/project/marshmallow/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-17.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/poetry-core/Manifest b/dev-python/poetry-core/Manifest
index 799f4ec7c7af..5d840579cd19 100644
--- a/dev-python/poetry-core/Manifest
+++ b/dev-python/poetry-core/Manifest
@@ -1,2 +1,3 @@
DIST poetry-core-1.9.1.gh.tar.gz 371296 BLAKE2B 0ccd041a9c5491bb9c9234ca5094162995a3959be0272d916866770d6dbc67bb183c3b1b863b24fc1906c7d4fca0f9593d3c2c7571d4c3bb37c2f8f9dd6316c5 SHA512 9ca0aa68e4e7637e78b0a02cb3946b6efd29b91e99663f26fbb09736ff2fbfa13cd683337001b2200e3037e5d4adcd745bc6ff4c91a708880238f0b78719c281
DIST poetry-core-2.0.0.gh.tar.gz 406242 BLAKE2B dd5508f8f07a909d38f289ae928502e55713f2f0c3249ec93be9b6f12d951eca68a1d014f7a364b528c9273c68f3ad3f803349c3036af57ececc0b2d9bd3b59d SHA512 7a942feef963e94d8e2661fde1058bfaee19155ee94be6892e0065d241fbda02fce60fd58f56ae7333e2c6d2b709c792ebf0bbcd378fc2513acb00f459dd2a56
+DIST poetry_core-2.0.1.tar.gz 355487 BLAKE2B 84bbeb7129c13d3ed1a06fbcbdcb8e1a1a608c35d398bdbf35ea70c467adbbe5d293945fecdf90e7795122af2a3f5d9fa64a99e56ee37a197ea022d271f10a15 SHA512 dd1d303abd034fc0341aaa5fc8d11f13ef305e93b9e9036f4040c2cb007c8b1eecbdb719d2b5692530b80ecc06d416751a45c499f373a05b7066e56785d1a8e8
diff --git a/dev-python/poetry-core/poetry-core-2.0.1.ebuild b/dev-python/poetry-core/poetry-core-2.0.1.ebuild
new file mode 100644
index 000000000000..978c4a190ead
--- /dev/null
+++ b/dev-python/poetry-core/poetry-core-2.0.1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Poetry PEP 517 Build Backend"
+HOMEPAGE="
+ https://github.com/python-poetry/poetry-core/
+ https://pypi.org/project/poetry-core/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+# check inside vendors/pyproject.toml
+# (note that some are indirect deps)
+RDEPEND="
+ >=dev-python/fastjsonschema-2.21.1[${PYTHON_USEDEP}]
+ >=dev-python/lark-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-2.2.1[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2022.5.19[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.21[${PYTHON_USEDEP}]
+ dev-vcs/git
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # remove vendoring of dependencies
+ rm -r src/poetry/core/_vendor || die
+ sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON} (unported deps)"
+ return
+ fi
+
+ # Poetry expects test to be run inside a git repository, otherwise
+ # VCS-related logic doesn't get triggered. An empty repository
+ # suffices, though.
+ git init || die
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_mock
+}
diff --git a/dev-python/pytest-flask/metadata.xml b/dev-python/pytest-flask/metadata.xml
index 245135b6fe9e..873cfd32efff 100644
--- a/dev-python/pytest-flask/metadata.xml
+++ b/dev-python/pytest-flask/metadata.xml
@@ -3,7 +3,7 @@
<pkgmetadata>
<maintainer type="person">
<email>arsen@gentoo.org</email>
- <description>Arsen Arsenović</description>
+ <name>Arsen Arsenović</name>
</maintainer>
<maintainer type="person">
<email>davidroman96@gmail.com</email>
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index 64ceb3a0ea78..decd860ba8e8 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -1,2 +1,3 @@
DIST pytools-2024.1.21.tar.gz 79853 BLAKE2B bf592feb22fa6c1c43a924cc54e7b17320705d823954f2179242b8db2ef893e306c5f671eeb63c66b5a97b18c9c3fb20b9b38516f48ea3cd51b419fa51739981 SHA512 2159d982a9b2272d7bc172a48d4cf9d7a9ce278ec99cc2cfd47cfb6162f543b774a2c717b312155c9332e7d96782914e42443cb90ebd9a1f342d54018f2c34aa
DIST pytools-2024.1.6.tar.gz 81344 BLAKE2B ff68e2606170bf54e3f609ee7f4cfe58e063f43dcfb2706d5ed7659ea2fde863e6315d0d81dff2e62a3378f195413561a927b0c1e7bedc06388cf4893c07b873 SHA512 a9e934f1cbaf0ace32420f9b74224a06ce8421ee291b837292133969c6788c4cc8bea01446cd4d1505aca9fa81e8ae0d3eacf60d3285186e66d67d5abe10ce3e
+DIST pytools-2025.1.tar.gz 80129 BLAKE2B db37d958da0cc3bef91d69028f46d193d6c06223d967990eaf4653d27a35a3b2053b3954a7abfc5c61e6979f9d4028be64bb95029e813f3bac6152669efc1854 SHA512 4a79e22f4385d86bc95f55d1b99f6146f7e9308f6108a2d32f948ed735442777a21f93ce32d0c9b3560f92dc8ac01628da6aebb81952fc3f8fa472a947fd53f5
diff --git a/dev-python/pytools/pytools-2025.1.ebuild b/dev-python/pytools/pytools-2025.1.ebuild
new file mode 100644
index 000000000000..b65b2ff280d5
--- /dev/null
+++ b/dev-python/pytools/pytools-2025.1.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=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+# NB: numpy & siphash24 are an "extra" (optional) deps
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/siphash24-1.6[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index 5b17a112c62b..5273e538fd53 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -8,5 +8,6 @@ DIST uv-0.5.16-crates.tar.xz 46968084 BLAKE2B d71602b2fbb5aab53917c893dbbf65024b
DIST uv-0.5.16.gh.tar.gz 3195545 BLAKE2B 47ed5f0ebf8c9ab5c6035a91083a665ed52066ec21025c94d889c0aaf915d080b1b827e6161ed5679763f609310bbf230c5bc7fa83b8466458da303852f919dd SHA512 78dba23b21d71037e13c00bc420db7c00435507911890985d677c396cf58a01a8c06d55887e46fbc59a200eab48fed3fab9bbe4972f146c8ca71bf57a0fb3a98
DIST uv-0.5.17-crates.tar.xz 47012000 BLAKE2B 0cfc660d087a3e5ea8fc78a5e8a7f0992d1af29050183241c19cb2b934e942ccbd0ced96f342fc797d6b16eca680a94efabeedf21f3049b6b3923b0688dc7931 SHA512 e1da8528ccd233b3a842851998f62e4ed819affc3b1a7f89f5b9cb64df9ff8b6c4025ac6b14a4587ee645e9f6d210dec34d68ee5ddf1dd9a2a559d95c2a211e3
DIST uv-0.5.17.gh.tar.gz 3229851 BLAKE2B ed463ce99e3ae32e846482cb4bc9d601bfe3953bd11e76b5803b5329eaf5a1e912a5a65fa07cbdb485839f63c0239fd657603f6954f304b48932b924b80af548 SHA512 6cab15b5c3f39844ddda0937257abd72c3878d745b0ae6a9f08dbfac64a7e35afb15e383c2b53d778a4d0dd7f28de9c9743f5b4f0d77905bac9a752db678c1bf
+DIST uv-0.5.18.gh.tar.gz 3230088 BLAKE2B 1244e352f2853dc66e8d99ce304b4b086d1f1b0c8c84fd06bb5c589e73ea0c82acbd477042a5f98da5229b6c4af81281d11b6397393001f7abe1c7218fc9af27 SHA512 3b0a709808155846a3d7d4ba1e916b93a6acc2c26a0a6fd0394f44791fbfe866adb15a1c4170893f7d9480568b87bcf3f38d1a445634376a4f7091f7eadda2b3
DIST uv-0.5.6-crates.tar.xz 46263172 BLAKE2B 73b1d2dc957f89f923dda09a8c038426041292c442ce253ff9110f996cd1e1f892a5a438d8e1c894fc0d823401cced0ddc8ad88b5e6a83199af7055a04ce85dc SHA512 c9d4f8085416bffb1e1872fd907d15a50cae0c0c5fba994d27b3acdc3c836dffd771558246573af4bb7467353a031ea56018d5ae1fbdffa4f63988462de00343
DIST uv-0.5.6.gh.tar.gz 2952255 BLAKE2B b815b60b99f959751f5839365b8b210919247ad99bff93ee4d202bc152bd06b83a62914cfbf341bfddb5b2c87d9e546c5e2a6d1baff1599d0218160ee89de504 SHA512 fc8c7f4f60a3d2ce997341450daf20ad039ef379ac5dd4575f8db0327284bd8278419b66f8f9695f2701a9579ab004b5b60476bd8dc4c27314211f795118bc5a
diff --git a/dev-python/uv/uv-0.5.18.ebuild b/dev-python/uv/uv-0.5.18.ebuild
new file mode 100644
index 000000000000..510948fb3c31
--- /dev/null
+++ b/dev-python/uv/uv-0.5.18.ebuild
@@ -0,0 +1,170 @@
+# 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;648aa343486e5529953153781fc86025c73c4a61;pubgrub-%commit%'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;648aa343486e5529953153781fc86025c73c4a61;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.83.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=0.5.17
+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}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# 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
+}