summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/clang-python/Manifest2
-rw-r--r--dev-python/clang-python/clang-python-18.1.3.ebuild54
-rw-r--r--dev-python/contourpy/Manifest1
-rw-r--r--dev-python/contourpy/contourpy-1.2.1.ebuild52
-rw-r--r--dev-python/django-auth-ldap/Manifest1
-rw-r--r--dev-python/django-auth-ldap/django-auth-ldap-4.8.0.ebuild43
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/lit/Manifest2
-rw-r--r--dev-python/lit/lit-18.1.3.ebuild46
-rw-r--r--dev-python/matplotlib/Manifest1
-rw-r--r--dev-python/matplotlib/matplotlib-3.8.4.ebuild377
-rw-r--r--dev-python/nbformat/Manifest1
-rw-r--r--dev-python/nbformat/nbformat-5.10.4.ebuild46
-rw-r--r--dev-python/numexpr/Manifest1
-rw-r--r--dev-python/numexpr/numexpr-2.10.0.ebuild49
-rw-r--r--dev-python/path/Manifest2
-rw-r--r--dev-python/path/path-16.10.2.ebuild37
-rw-r--r--dev-python/path/path-16.12.1.ebuild37
-rw-r--r--dev-python/psycopg/Manifest2
-rw-r--r--dev-python/psycopg/files/psycopg-3.1.17-musl.patch34
-rw-r--r--dev-python/psycopg/psycopg-3.1.16.ebuild76
-rw-r--r--dev-python/psycopg/psycopg-3.1.17.ebuild114
-rw-r--r--dev-python/pytest-jupyter/Manifest1
-rw-r--r--dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild36
-rw-r--r--dev-python/scikit-image/Manifest2
-rw-r--r--dev-python/scikit-image/scikit-image-0.23.0_rc2.ebuild97
-rw-r--r--dev-python/scipy/Manifest2
-rw-r--r--dev-python/scipy/scipy-1.13.0.ebuild166
-rw-r--r--dev-python/uv/Manifest3
-rw-r--r--dev-python/uv/files/uv-0.1.28-skip-tests.patch144
-rw-r--r--dev-python/uv/uv-0.1.28.ebuild108
34 files changed, 1322 insertions, 244 deletions
diff --git a/dev-python/clang-python/Manifest b/dev-python/clang-python/Manifest
index 68777e30fb2b..4c7a1bdae9bd 100644
--- a/dev-python/clang-python/Manifest
+++ b/dev-python/clang-python/Manifest
@@ -6,6 +6,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
+DIST llvm-project-18.1.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
+DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490
DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
DIST llvm-project-f3cfe016c5d8429c0dccfa6f85442e2ea0d45a58.tar.gz 208184654 BLAKE2B abd35798f7c921866bb221cecc42aa94915271d0804acbf44dbe5640efb787ef9d928c329eacde768fac4292217ed4d3c4187fba02dd1c826059aeaa1bad33f0 SHA512 513f7278367114ba3fe3271e8a790b62adbca97d280968537e44e5df9a7afb467a5ca93480f4d4fb7c4d5c0734d00ab54559bf68c00f09a1fcff2fee492aa84f
diff --git a/dev-python/clang-python/clang-python-18.1.3.ebuild b/dev-python/clang-python/clang-python-18.1.3.ebuild
new file mode 100644
index 000000000000..2cabb464f8f7
--- /dev/null
+++ b/dev-python/clang-python/clang-python-18.1.3.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+inherit llvm.org python-r1
+
+DESCRIPTION="Python bindings for sys-devel/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+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="
+ >=sys-devel/clang-${PV}:*
+ !sys-devel/llvm:0[clang(-),python(-)]
+ !sys-devel/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? (
+ sys-devel/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/contourpy/Manifest b/dev-python/contourpy/Manifest
index 5461a6ab8210..25fde2b430b3 100644
--- a/dev-python/contourpy/Manifest
+++ b/dev-python/contourpy/Manifest
@@ -1 +1,2 @@
DIST contourpy-1.2.0.gh.tar.gz 13440145 BLAKE2B c8082f69c3c8ad2b9a2d7a8e68941f1b741b0527161df371b501a32b8f0572a012aa2184b9f3ea943f45143f218f910180e31371683826d2b9b9431537c72cbd SHA512 91084ca659f796fb49f34840fb08a1a8f2a78ce8264668f5729550b1c46f316933c1d76ed87797bf58a059f0cf63e6efc58c92e44c57787fc8ad1ca16a21aa6e
+DIST contourpy-1.2.1.gh.tar.gz 13440991 BLAKE2B 2e792ca990244f7890462b84a2f23e4fbc31fd8ce0a18bc8724767dfa4b5fc0a4271dc6989531423db58d567706a28ce95e680372dbf64bae93a09914353f3ac SHA512 2bb2ac7436cbee1ebc69e6edaf3166e294de32711cec506ce9a3132f1cf20ff8de70af27b432b81abb582c9fe30239f8724f68936908bdbf6348eb249eaae4d5
diff --git a/dev-python/contourpy/contourpy-1.2.1.ebuild b/dev-python/contourpy/contourpy-1.2.1.ebuild
new file mode 100644
index 000000000000..1a4fc0226176
--- /dev/null
+++ b/dev-python/contourpy/contourpy-1.2.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for calculating contours in 2D quadrilateral grids"
+HOMEPAGE="
+ https://pypi.org/project/contourpy/
+ https://github.com/contourpy/contourpy/
+"
+SRC_URI="
+ https://github.com/contourpy/contourpy/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pybind11-2.12.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/wurlitzer[${PYTHON_USEDEP}]
+ )
+"
+
+DISTUTILS_ARGS=(
+ -Dwerror=false
+)
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # linters
+ tests/test_codebase.py
+ )
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/django-auth-ldap/Manifest b/dev-python/django-auth-ldap/Manifest
index e4cb97b895d4..56120b690c6b 100644
--- a/dev-python/django-auth-ldap/Manifest
+++ b/dev-python/django-auth-ldap/Manifest
@@ -1,2 +1,3 @@
DIST django-auth-ldap-4.6.0.tar.gz 53845 BLAKE2B 279f7762b858330ab4b63ebb18a8609569ea4d3c7ff1af5ce89d64d8f207445e645d33c9415c4ad289adad0ea2da9674f1ad0d316f63ef42cd6b46c3ac3d7aed SHA512 fc3945fb9cece694b63661c8565d877bdc81e012e9b4e9a8f1840bd83f6effb525e36f40e5dd5018b43d2c7c72fcdd25a5c61bf35e6f0d05e70e830f69228498
DIST django-auth-ldap-4.7.0.tar.gz 53849 BLAKE2B 1c67ba30a0de7e6836fa4e1c0b057001b9b933e252880ae5da44f1ee026f813c0e9115186de3d07071e9e4d76e509b12ca7cdad7968a0ff6ae6f65e6202eb073 SHA512 c31e7e026bb13cba841015db2c7e8fb0d47e3fea968b6257802d03600a23b187e758f5b1891b60fda93a9a39e3c9d1c5b26a03678ed3a4d72c30cb42a2399bf2
+DIST django-auth-ldap-4.8.0.tar.gz 53906 BLAKE2B 76542bfb59c998a681f5e4a4ec0fcae406a672e2fea6b20ef6f59a91987626bec0186d853b789ce0006ace8d0fdbb3b8b2e5855eb84d6d6c93c7040056e4a397 SHA512 4ca16bd5d11680127d2cecfeb7d1d48175e1b9b02e13f84d6845b76a4f52be3ef6c72d5b4bef4418b4f48b441830d3b593fef6cc08a8cd4221c78cfd8464ac8a
diff --git a/dev-python/django-auth-ldap/django-auth-ldap-4.8.0.ebuild b/dev-python/django-auth-ldap/django-auth-ldap-4.8.0.ebuild
new file mode 100644
index 000000000000..82201b145a4d
--- /dev/null
+++ b/dev-python/django-auth-ldap/django-auth-ldap-4.8.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Django LDAP authentication backend"
+HOMEPAGE="
+ https://github.com/django-auth-ldap/django-auth-ldap/
+ https://pypi.org/project/django-auth-ldap/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/django-2.2[${PYTHON_USEDEP}]
+ >=dev-python/python-ldap-3.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ $(python_gen_impl_dep sqlite)
+ net-nds/openldap[-minimal]
+ )
+"
+
+distutils_enable_sphinx docs --no-autodoc
+
+python_test() {
+ # for slapd and slapdtest
+ local -x SBIN=/usr/sbin:/usr/$(get_libdir)/openldap
+ "${EPYTHON}" -m django test -v 2 --settings tests.settings ||
+ die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..e9da2ac43cac 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 493 BLAKE2B 0df8bce19bc80f79f8e76bcef5a4c2caf333365fe0cb9a3c076b7858bceded5a3e58921474f866a2709dd657b7ed330c1ec4a7f9d7bab0fcf1bc92d77cabc32d SHA512 ea2a1adcb133ac5fc951ba1aa90ef1ce3dfcc424e59727591763d4875aa044a74188be2d15fd89c6b2e83ed6ea04ec3d9851ed584ae79d2c2c127bde7d994b48
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
deleted file mode 100644
index 637368d2f237..000000000000
--- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
-
---- a/setup.py
-+++ b/setup.py
-@@ -18,7 +18,7 @@ setup(
- author_email='michal.danilak@gmail.com',
- url='https://github.com/Mimino666/langdetect',
- keywords='language detection library',
-- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
-+ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
- include_package_data=True,
- install_requires=['six'],
- license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 630fe63c6f53..c09b7356f549 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,6 +19,4 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
-PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
-
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 736a1167c898..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
-
- <origin>gentoo-guru-overlay</origin>
+ <maintainer type="person">
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index 68777e30fb2b..4c7a1bdae9bd 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -6,6 +6,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
+DIST llvm-project-18.1.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
+DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490
DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
DIST llvm-project-f3cfe016c5d8429c0dccfa6f85442e2ea0d45a58.tar.gz 208184654 BLAKE2B abd35798f7c921866bb221cecc42aa94915271d0804acbf44dbe5640efb787ef9d928c329eacde768fac4292217ed4d3c4187fba02dd1c826059aeaa1bad33f0 SHA512 513f7278367114ba3fe3271e8a790b62adbca97d280968537e44e5df9a7afb467a5ca93480f4d4fb7c4d5c0734d00ab54559bf68c00f09a1fcff2fee492aa84f
diff --git a/dev-python/lit/lit-18.1.3.ebuild b/dev-python/lit/lit-18.1.3.ebuild
new file mode 100644
index 000000000000..abca2aee2cc4
--- /dev/null
+++ b/dev-python/lit/lit-18.1.3.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ sys-devel/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from sys-devel/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/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index 9731b9c78a3b..9f9c5973261c 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -1,3 +1,4 @@
DIST freetype-2.6.1.tar.gz 2302080 BLAKE2B 6a5fb98e5fa6cf4b7d7533ad44e364227d8c2f7dded4c552d6e22e204c32b7858f20d41d1e809ecdad6e5353d6cec81bea0e0b06a4533363a41ecab83ce3f7ca SHA512 ff2daed64d712737085924c50e75862fafbcbb24eef6d72dac9eaae63bb656d7245397fd828f5d3e47ac847f7ff83d73dedfdd61fde1f7d6e0f0cdeb49bcf83b
DIST matplotlib-3.8.2.tar.gz 35866957 BLAKE2B 17b3de0101c4e9d76cddc7fa5e44507f1dd628fa70ac0d3c55fb83ca5d36156904bfab50212aaeb0fb89d17615799fe22082ecc1ababd172e39a069b38519064 SHA512 4336ca9799bb03fc2f885e35889ad1c62412f7d7b6aa8e284049f75d1166d2f6753c27cf827f0e7f0bb461d3707ccf63a3172ed82f26ec413c0a6578791f957b
DIST matplotlib-3.8.3.tar.gz 35879872 BLAKE2B 2b4b819975a8386bfe2c3af8b1068512b106068c057ca62344f6636c0708327feafc75210a8b87b837779c9a57dede3b4ea2a8b7b673432d7732851d5601f4c6 SHA512 457d1d62b76752938a24780c697461949de00d779df55df122d789f9ebef154edda037f2a804241880a0b442c5fa8139b8ab13054898b8e08fd17a56bdc23312
+DIST matplotlib-3.8.4.tar.gz 35934425 BLAKE2B e449f1d71a3152a9cf34cf13c70489d2664c8734c8e8ae0ed5dec2ed5111e0210d679f7e6a1e0b707499d9968b945a7f91573186b82c6d036238aadb5c9da006 SHA512 d4c6a5b3484927dbae1b1203e9984b67d08c958c4a5136abaa805f1eb221146fb1211e5f20456e281d41fc09c94917a796ffacfdb185c58eeeb6d19e60c78b1a
diff --git a/dev-python/matplotlib/matplotlib-3.8.4.ebuild b/dev-python/matplotlib/matplotlib-3.8.4.ebuild
new file mode 100644
index 000000000000..b70793ec063e
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-3.8.4.ebuild
@@ -0,0 +1,377 @@
+# Copyright 1999-2024 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_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 flag-o-matic prefix pypi toolchain-funcs virtualx
+
+FT_PV=2.6.1
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="
+ https://matplotlib.org/
+ https://github.com/matplotlib/matplotlib/
+ https://pypi.org/project/matplotlib/
+"
+SRC_URI+="
+ test? (
+ https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
+ )
+"
+
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="cairo doc excel gtk3 latex qt5 tk webagg wxwidgets"
+
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+RDEPEND="
+ >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.25[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ media-fonts/stix-fonts
+ media-libs/freetype:2
+ media-libs/libpng:0
+ >=media-libs/qhull-2013:=
+ virtual/imagemagick-tools[jpeg,tiff]
+ cairo? (
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ excel? (
+ dev-python/xlwt[${PYTHON_USEDEP}]
+ )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ latex? (
+ virtual/latex-base
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/poppler[utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ dev-texlive/texlive-xetex
+ )
+ qt5? (
+ $(python_gen_cond_dep '
+ dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+ ' 'python3*')
+ )
+ webagg? (
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ )
+ wxwidgets? (
+ $(python_gen_cond_dep '
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ ' python3_{10..11})
+ )
+"
+
+BDEPEND="
+ ${RDEPEND}
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=app-text/dvipng-1.15-r1
+ >=dev-python/colorspacious-1.1.2[${PYTHON_USEDEP}]
+ >=dev-python/ipython-1.18.2[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.4.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-gallery-0.3.1-r1[${PYTHON_USEDEP}]
+ >=dev-python/xlwt-1.3.0-r1[${PYTHON_USEDEP}]
+ virtual/latex-base
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-luatex
+ dev-texlive/texlive-xetex
+ >=media-gfx/graphviz-2.42.3[cairo]
+ )
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ !hppa? ( !s390? (
+ || (
+ media-video/ffmpeg[openh264]
+ media-video/ffmpeg[x264]
+ )
+ ) )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+use_setup() {
+ local uword="${2:-${1}}"
+ if use "${1}"; then
+ echo "${uword} = True"
+ echo "${uword}agg = True"
+ else
+ echo "${uword} = False"
+ echo "${uword}agg = False"
+ fi
+}
+
+python_prepare_all() {
+# Generates test failures, but fedora does it
+# local PATCHES=(
+# "${FILESDIR}"/${P}-unbundle-pycxx.patch
+# "${FILESDIR}"/${P}-unbundle-agg.patch
+# )
+# rm -r agg24 CXX || die
+# rm -r agg24 || die
+
+ # Affects installed _version.py, bug #854600
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
+
+ local PATCHES=(
+ "${FILESDIR}"/matplotlib-3.3.3-disable-lto.patch
+ "${FILESDIR}"/matplotlib-3.8.0-test.patch
+ )
+
+ # increase lock timeout to 30 s
+ sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
+
+ hprefixify setupext.py
+
+ rm -rf libqhull || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ append-flags -fno-strict-aliasing
+ append-cppflags -DNDEBUG # or get old trying to do triangulation
+ tc-export PKG_CONFIG
+
+ unset DISPLAY # bug #278524
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+}
+
+python_configure() {
+ mkdir -p "${BUILD_DIR}" || die
+
+ # create setup.cfg (see setup.cfg.template for any changes).
+
+ # common switches.
+ cat > "${BUILD_DIR}"/setup.cfg <<- EOF || die
+ [directories]
+ basedirlist = ${EPREFIX}/usr
+ [provide_packages]
+ pytz = False
+ dateutil = False
+ [libs]
+ system_freetype = True
+ system_qhull = True
+ [packages]
+ tests = True
+ [gui_support]
+ agg = True
+ gtk = False
+ gtkagg = False
+ macosx = False
+ pyside = False
+ pysideagg = False
+ qt4 = False
+ qt4agg = False
+ $(use_setup cairo)
+ $(use_setup gtk3)
+ $(use_setup qt5)
+ $(use_setup tk)
+ $(use_setup wxwidgets wx)
+ EOF
+
+ if use gtk3 && use cairo; then
+ echo "gtk3cairo = True" >> "${BUILD_DIR}"/setup.cfg || die
+ else
+ echo "gtk3cairo = False" >> "${BUILD_DIR}"/setup.cfg || die
+ fi
+}
+
+wrap_setup() {
+ local MAKEOPTS=-j1
+ local -x MPLSETUPCFG="${BUILD_DIR}"/setup.cfg
+ "$@"
+}
+
+python_compile() {
+ wrap_setup distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
+
+python_compile_all() {
+ if use doc; then
+ cd doc || die
+
+ VARTEXFONTS="${T}"/fonts \
+ emake SPHINXOPTS= O=-Dplot_formats=png:100 html
+ fi
+}
+
+src_test() {
+ mkdir build || die
+ ln -s "${WORKDIR}/freetype-${FT_PV}" build/ || die
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by -Wdefault
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
+ "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
+ tests/test_testing.py::test_warn_to_fail
+ # TODO?
+ tests/test_backend_qt.py::test_fig_sigint_override
+ # leak tests are fragile
+ tests/test_backends_interactive.py::test_figure_leak_20490
+ # major "images not close", new texlive perhaps
+ tests/test_contour.py::test_all_algorithms
+ # "no warnings"
+ tests/test_backend_pdf.py::test_invalid_metadata
+ tests/test_figure.py::test_too_many_figures
+ )
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # TODO: warning isn't passed through
+ tests/test_image.py::test_large_image
+ # TODO
+ tests/test_pickle.py::test_complete
+ tests/test_pickle.py::test_no_pyplot
+ tests/test_pickle.py::test_pickle_load_from_subprocess
+ tests/test_pickle.py::test_simple
+ tests/test_texmanager.py::test_openin_any_paranoid
+ tests/test_widgets.py::test_check_buttons
+ tests/test_widgets.py::test_check_buttons_lines
+ tests/test_widgets.py::test_check_radio_buttons_image
+ tests/test_widgets.py::test_radio_buttons
+ )
+ if has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
+ has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
+ then
+ EPYTEST_DESELECT+=(
+ # TypeError is raised when exception is raised in a starred
+ # expression referencing a generator that uses "yield from"
+ # and raises -- non-critical, since some exception is raised
+ # after all
+ # https://foss.heptapod.net/pypy/pypy/-/issues/4032
+ tests/test_axes.py::test_bad_plot_args
+ tests/test_axes.py::test_plot_errors
+ tests/test_axes.py::test_plot_format_errors
+ )
+ fi
+ ;;
+ python3.11)
+ EPYTEST_DESELECT+=(
+ # https://github.com/matplotlib/matplotlib/issues/23384
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
+ "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
+ )
+ ;;
+ python3.12)
+ EPYTEST_DESELECT+=(
+ tests/test_constrainedlayout.py::test_compressed1
+ )
+ ;;
+ esac
+
+ case "${ABI}" in
+ alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86)
+ EPYTEST_DESELECT+=(
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ if use hppa ; then
+ EPYTEST_DESELECT+=(
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_quiver.py::test_barbs_pivot[png]'
+ 'tests/test_quiver.py::test_barbs_flip[png]'
+ 'tests/test_text.py::test_parse_math'
+ 'tests/test_text.py::test_parse_math_rcparams'
+ )
+ fi
+
+ # we need to rebuild mpl against bundled freetype, otherwise
+ # over 1000 tests will fail because of mismatched font rendering
+ grep -v system_freetype "${BUILD_DIR}"/setup.cfg \
+ > "${BUILD_DIR}"/test-setup.cfg || die
+ local -x MPLSETUPCFG="${BUILD_DIR}"/test-setup.cfg
+
+ esetup.py build -j1 --build-lib="${BUILD_DIR}"/test-lib
+ local -x PYTHONPATH=${BUILD_DIR}/test-lib:${PYTHONPATH}
+
+ # speed tests up
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # pretend we're on CI to increase timeouts
+ local -x CI=1
+ nonfatal epytest --pyargs matplotlib -m "not network" \
+ -p rerunfailures --reruns=3 \
+ -o tmp_path_retention_policy=all || die
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( doc/build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/nbformat/Manifest b/dev-python/nbformat/Manifest
index 6dde4121be5e..801b196148ab 100644
--- a/dev-python/nbformat/Manifest
+++ b/dev-python/nbformat/Manifest
@@ -1 +1,2 @@
DIST nbformat-5.10.3.tar.gz 142678 BLAKE2B 7de9dab29ca69fe89fb8c080f1e336a22acdc7d9a0daaf69dd03c61f7a01853895bd2302ee90787c3a7a555a27cf5cc1bab6ca0c898c60326ff3870820a00fbe SHA512 9baed15fed4bf05c2c97f7634ce1440149bf5e44a7fd330aa40f7c3954a6f16fc755e1d643a01a4d9ee62fb7a0f24299b83d9a4cf753e7c3495319ee052ae5e8
+DIST nbformat-5.10.4.tar.gz 142749 BLAKE2B 88121046cce0e473597f26cb597b3ae9865849cf05bcb64070b48d8bcf3661a6c7b7b7e6845752ca1467e31dd9da939f208e99f51b873ea12e62b3a605bf375b SHA512 cacec6bca3177958863e7ed860c55498a91507634098adc08b49a3bb43f1158a32b0c029262d44d0f1beb1e795ba7d03753b522120a9aec14514ed8d961d5baa
diff --git a/dev-python/nbformat/nbformat-5.10.4.ebuild b/dev-python/nbformat/nbformat-5.10.4.ebuild
new file mode 100644
index 000000000000..17da563c7967
--- /dev/null
+++ b/dev-python/nbformat/nbformat-5.10.4.ebuild
@@ -0,0 +1,46 @@
+# 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_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Reference implementation of the Jupyter Notebook format"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/nbformat/
+ https://pypi.org/project/nbformat/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/fastjsonschema-2.15[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.6[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-nodejs-version[${PYTHON_USEDEP}]
+ test? (
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/myst-parser \
+ dev-python/pydata-sphinx-theme \
+ dev-python/sphinxcontrib-github-alt \
+ dev-python/sphinxcontrib-spelling
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # requires pep440 package, which is not really relevant for us
+ tests/test_api.py
+)
diff --git a/dev-python/numexpr/Manifest b/dev-python/numexpr/Manifest
index b7c9611fcf4f..e2be3861ed5b 100644
--- a/dev-python/numexpr/Manifest
+++ b/dev-python/numexpr/Manifest
@@ -1 +1,2 @@
+DIST numexpr-2.10.0.gh.tar.gz 119045 BLAKE2B b049ca51ef2fbdac4965d750d88c33b8c912280ac0e8b8039dea69e08f4bb4fde3003400fa64872b9145d7dfac98970d3ffbd05318d40399d4d9436480b50cfd SHA512 dfbad48a3e71dc1c6a618e7b62e9f8efe30b547935934e614df98c3134cbe00dee4f4515c6090d2f1a563f57b200ad806b861751ba1043aff43b07a0450baa11
DIST numexpr-2.9.0.gh.tar.gz 118463 BLAKE2B 04904a6faaff713b9775dc3601fcfc963b9bea5bc24e1d2ca21f0123d7dca8d088abef9b8da09195e9bf9fb6a4ff3b2bee0f75dbc5b40e174803cb726d8b1f31 SHA512 9d7319a872228faea845fbc8c2b85b5f9e941eb2e1308711835bdba37fce65543a23ad483b92e28c33b3eb341f2f7d75b760a0827ae63782fac573a65efdedb0
diff --git a/dev-python/numexpr/numexpr-2.10.0.ebuild b/dev-python/numexpr/numexpr-2.10.0.ebuild
new file mode 100644
index 000000000000..a4e590060a3a
--- /dev/null
+++ b/dev-python/numexpr/numexpr-2.10.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 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_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="Fast numerical array expression evaluator for Python and NumPy"
+HOMEPAGE="
+ https://github.com/pydata/numexpr/
+ https://pypi.org/project/numexpr/
+"
+SRC_URI="https://github.com/pydata/numexpr/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+
+DEPEND="
+ >=dev-python/numpy-1.19.0[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/packaging[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ # broken with > 8 CPU threads?
+ # https://github.com/pydata/numexpr/issues/479
+ sed -e 's:test_numexpr_max_threads_empty_string:_&:' \
+ -e 's:test_omp_num_threads_empty_string:_&:' \
+ -i numexpr/tests/test_numexpr.py || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)" >/dev/null || die
+ "${EPYTHON}" - <<-EOF || die "Tests failed with ${EPYTHON}"
+ import sys,numexpr
+ sys.exit(0 if numexpr.test(verbosity=2).wasSuccessful() else 1)
+ EOF
+ pushd >/dev/null || die
+}
diff --git a/dev-python/path/Manifest b/dev-python/path/Manifest
index 564b6f662076..965d42d959b2 100644
--- a/dev-python/path/Manifest
+++ b/dev-python/path/Manifest
@@ -1 +1,3 @@
DIST path-16.10.0.tar.gz 49271 BLAKE2B 36762e0b50d74b07db14ca01c6d94577f24b36c007eda58de4b63197cd91f869efbdc5ac1ceb270f1fc5e5a07c4c87f6cabd10cbac5fac74681f73451a3f73e1 SHA512 a5dfa964f5ffd4c2aa27733716b67437f02fd6dedc8c574bb87a9a3ac64eb60d27c3a05217aa4859293ebd96bdd17cdb1a04ea21c6ad35b7b22f05725826c057
+DIST path-16.10.2.tar.gz 49415 BLAKE2B 3784b557bc31b17523a0fe37ebc646f932edd2427c6cae6d3544db29a689026b1e828d0d105234af10787f494ff1afce95e7935a36f01477a9434ce8994113d9 SHA512 df698a44b7c3f0b0dac1f5a3668c3a76f0b473921696bba2e4a66d4b7c7379bcda5938a9800a628dbaa487b6a35920266edee13ea829ee0f4cabb3ec1c30dca1
+DIST path-16.12.1.tar.gz 49685 BLAKE2B 2e2fca5db8ed82764686f4cb9a3de0ce18ce92e6e70999ffd93f13638a061cb2b3624d96f91740cba3efc9fcb8d80c37b55ab9595138e90764093901ab05c111 SHA512 144710438a0ed6f433094f9c27c0f9a3de02e6ee3fad337092a3b8d3c969746f330d4380924ba2ef17f99dc2757cde47115e392f6ee393bcd9f650e0f214d145
diff --git a/dev-python/path/path-16.10.2.ebuild b/dev-python/path/path-16.10.2.ebuild
new file mode 100644
index 000000000000..b9e1eec7bd99
--- /dev/null
+++ b/dev-python/path/path-16.10.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A module wrapper for os.path"
+HOMEPAGE="
+ https://github.com/jaraco/path/
+ https://pypi.org/project/path/
+"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-python/appdirs[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # unreliable, not really meaningful for end users
+ test_path.py::TestPerformance
+)
diff --git a/dev-python/path/path-16.12.1.ebuild b/dev-python/path/path-16.12.1.ebuild
new file mode 100644
index 000000000000..b9e1eec7bd99
--- /dev/null
+++ b/dev-python/path/path-16.12.1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A module wrapper for os.path"
+HOMEPAGE="
+ https://github.com/jaraco/path/
+ https://pypi.org/project/path/
+"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ dev-python/appdirs[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # unreliable, not really meaningful for end users
+ test_path.py::TestPerformance
+)
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index fa4f90338f52..dc92e609ee66 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -1,5 +1,3 @@
-DIST psycopg-3.1.16.gh.tar.gz 502759 BLAKE2B 6c0b912c2a93425ddbed842a437e042b58ec859b3cf163aa7cd45a0db21084fea58945b40028e0491460b7d4da6648cfc361e1434d43ec7ab71af91f1a0c4c86 SHA512 d6cfcc848c089ef79c817bf271bcbad7078cdacacef4ab26e882fdbe55c90ac12644e7ee0af22f4cf1fa759033e94ee54c812bca7b517b84cda77276557e8ca8
-DIST psycopg-3.1.17.gh.tar.gz 503318 BLAKE2B 43c0c5ef0be20c9415c7dbe3b2ff242f30341d055bcf00ff4f9d9926c5c95df3bf10735e338c37f9e805562544637e75fd9edd5dbf71d67b42d04eea19e5c82e SHA512 d9f0ce05be71d67dbd7d1abad548befcdc229b53de93d5c08a52cae287d6f5293de6ede380c9ffc25ffa4d935782e90e9b04783f1c4c1fb88cb9ffd7016aabd5
DIST psycopg-3.1.18.gh.tar.gz 503513 BLAKE2B 35e5e4cb4e5355189b387fd17e1b51d4baf08f130cc5418f9f3cb58d6baf097953b4f6a7df31579a1d87e5269e110c4476d865fe12416e2fe62abbb52e0c141c SHA512 1e27eec49f3ae99f1fec68816dff3974aa9b1f526df45ccca295c7c6703cc309ca4f8f65d7e3450b628906a938c65f8cbd1a1f3cb6a41b6e51dc5e220985af39
DIST psycopg2-2.9.4.tar.gz 384017 BLAKE2B 4bc0afcc890c8a257c1ccd5c6e4e5301857a80f8b1428aa46c1473c9e18f5d2914a2e592c13336b06106217bb334d9b0321835bdd123f1627cbeb29dedf97bf7 SHA512 259088e42e0ab0d8a1a0ccf04f5e560f32c6179b4a0a0059e91bcf269baa8f4b0f1f949c332c640a2438c927a29b2c144078a861f8e18ba9c764da7c93c73b8d
DIST psycopg2-2.9.9.tar.gz 384926 BLAKE2B 8418fca1329703cedfc86be74d85cae5133a0604bb8a21fa43e5359a46626d38ef227d0cd8fbbeb497e2db517a469d7f3e86b74ef9163617a547e999073a6b4c SHA512 a691fd09762221e854861dedce37b05e5354e0701feea470a6d5046960056ef02a8c9ecfa751adeba485271ea7d5834643b7d3a3c3f3270087f5ed9c68509f5f
diff --git a/dev-python/psycopg/files/psycopg-3.1.17-musl.patch b/dev-python/psycopg/files/psycopg-3.1.17-musl.patch
deleted file mode 100644
index ca1689931ed8..000000000000
--- a/dev-python/psycopg/files/psycopg-3.1.17-musl.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From eeb662bf89e9ffdb3e6fc40eb30d0b53e0b4bece Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Sat, 27 Jan 2024 15:28:34 +0100
-Subject: [PATCH] fix: add `libc.so` fallback for musl systems to the ctypes
- impl
-
-Add a fallback to `libc.so` library name to fix loading the ctypes
-implementation on musl systems. On musl, `find_library("c")` does
-not work (the problem has been reported to CPython in 2014, and has not
-been resolved yet), causing the module to fail on `assert libcname`.
-Instead, add a fallback to using `libc.so` and let ctypes raise
-an exception if such a library does not exist.
----
- psycopg/psycopg/pq/_pq_ctypes.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py
-index 9d4dd181..3ecff080 100644
---- a/psycopg/psycopg/pq/_pq_ctypes.py
-+++ b/psycopg/psycopg/pq/_pq_ctypes.py
-@@ -28,8 +28,8 @@ class FILE(Structure):
- FILE_ptr = POINTER(FILE)
-
- if sys.platform == "linux":
-- libcname = ctypes.util.find_library("c")
-- assert libcname
-+ # find_library("c") does not work on musl, fall back to libc.so instead
-+ libcname = ctypes.util.find_library("c") or "libc.so"
- libc = ctypes.cdll.LoadLibrary(libcname)
-
- fdopen = libc.fdopen
---
-2.43.0
-
diff --git a/dev-python/psycopg/psycopg-3.1.16.ebuild b/dev-python/psycopg/psycopg-3.1.16.ebuild
deleted file mode 100644
index 293b60c5a2f5..000000000000
--- a/dev-python/psycopg/psycopg-3.1.16.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="PostgreSQL database adapter for Python"
-HOMEPAGE="
- https://www.psycopg.org/psycopg3/
- https://github.com/psycopg/psycopg/
- https://pypi.org/project/psycopg/
-"
-SRC_URI="
- https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/${P}/psycopg
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-
-DEPEND="
- >=dev-db/postgresql-8.1:*
-"
-RDEPEND="
- ${DEPEND}
- >=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- >=dev-db/postgresql-8.1[server]
- dev-python/anyio[${PYTHON_USEDEP}]
- dev-python/dnspython[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_test() {
- # tests are lurking in top-level directory
- cd .. || die
-
- initdb -D "${T}"/pgsql || die
- # TODO: random port
- pg_ctl -w -D "${T}"/pgsql start \
- -o "-h '' -k '${T}'" || die
- createdb -h "${T}" test || die
-
- local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
- distutils-r1_src_test
-
- pg_ctl -w -D "${T}"/pgsql stop || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # tests for the psycopg_pool package
- tests/pool
- # some broken mypy magic
- tests/test_module.py::test_version
- tests/test_module.py::test_version_c
- tests/test_typing.py
- tests/crdb/test_typing.py
- # TODO, relying on undefined ordering in Python?
- tests/test_dns_srv.py::test_srv
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # leak and timing tests are fragile whereas slow tests are slow
- epytest -p anyio -k "not leak" -m "not timing and not slow"
-}
diff --git a/dev-python/psycopg/psycopg-3.1.17.ebuild b/dev-python/psycopg/psycopg-3.1.17.ebuild
deleted file mode 100644
index 68148e58613f..000000000000
--- a/dev-python/psycopg/psycopg-3.1.17.ebuild
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright 1999-2024 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_{8,9,10,11,12} pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="PostgreSQL database adapter for Python"
-HOMEPAGE="
- https://www.psycopg.org/psycopg3/
- https://github.com/psycopg/psycopg/
- https://pypi.org/project/psycopg/
-"
-SRC_URI="
- https://github.com/psycopg/psycopg/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="LGPL-3+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-IUSE="+native-extensions"
-
-DEPEND="
- native-extensions? (
- >=dev-db/postgresql-8.1:=
- )
- !native-extensions? (
- >=dev-db/postgresql-8.1:*
- )
-"
-RDEPEND="
- ${DEPEND}
- >=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}]
-"
-BDEPEND="
- native-extensions? (
- dev-python/cython[${PYTHON_USEDEP}]
- dev-python/tomli[${PYTHON_USEDEP}]
- )
- test? (
- >=dev-db/postgresql-8.1[server]
- dev-python/anyio[${PYTHON_USEDEP}]
- dev-python/dnspython[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-PATCHES=(
- # https://github.com/psycopg/psycopg/pull/725
- "${FILESDIR}/${P}-musl.patch"
-)
-
-python_compile() {
- # Python code + ctypes backend
- cd psycopg || die
- distutils-r1_python_compile
-
- # optional C backend
- if use native-extensions && [[ ${EPYTHON} != pypy3 ]]; then
- local DISTUTILS_USE_PEP517=standalone
- cd ../psycopg_c || die
- distutils-r1_python_compile
- fi
- cd .. || die
-}
-
-src_test() {
- rm -r psycopg{,_c} || die
-
- initdb -D "${T}"/pgsql || die
- # TODO: random port
- pg_ctl -w -D "${T}"/pgsql start \
- -o "-h '' -k '${T}'" || die
- createdb -h "${T}" test || die
-
- local -x PSYCOPG_TEST_DSN="host=${T} dbname=test"
- distutils-r1_src_test
-
- pg_ctl -w -D "${T}"/pgsql stop || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # tests for the psycopg_pool package
- tests/pool
- # some broken mypy magic
- tests/test_module.py::test_version
- tests/test_module.py::test_version_c
- tests/test_typing.py
- tests/crdb/test_typing.py
- # TODO, relying on undefined ordering in Python?
- tests/test_dns_srv.py::test_srv
- )
-
- local impls=( python )
- if use native-extensions && [[ ${EPYTHON} != pypy3 ]]; then
- impls+=( c )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x PSYCOPG_IMPL
- for PSYCOPG_IMPL in "${impls[@]}"; do
- einfo "Testing with ${PSYCOPG_IMPL} implementation ..."
- # leak and timing tests are fragile whereas slow tests are slow
- epytest -p anyio -k "not leak" \
- -m "not timing and not slow and not flakey"
- done
-}
diff --git a/dev-python/pytest-jupyter/Manifest b/dev-python/pytest-jupyter/Manifest
index 772578259dac..fb1c97271ffd 100644
--- a/dev-python/pytest-jupyter/Manifest
+++ b/dev-python/pytest-jupyter/Manifest
@@ -1,2 +1,3 @@
DIST pytest_jupyter-0.10.0.tar.gz 15514 BLAKE2B 668ac112374834684a3321d935d214c2eacf9bfa8d7a1e3915a882db5fa76a713acc673b3ed605326efaa39fadadb0211c529f94c9607870217ec6eafc86f08a SHA512 7d8e35ff5643703479aa116cac9b1b6d757319088b43fa3ae08a2865fc2bcf08cc25dd117edacc4695dfb2a18548d51658535984c5b0c10be14fb66e3e8cfc75
+DIST pytest_jupyter-0.10.1.tar.gz 15580 BLAKE2B 931045927f14973162d45ccdff3a28b0e1d955c276ccf73fa91cae46af8d697368edc10bb3a8042885aae8309dd901201ef147967eae13bca453bc3c144de1fc SHA512 ca380f3b4550388606053db97666d3e191e2b4c030b98fed8b88cee53aac0451faf63d1300c50af4313f20b38937558c390c7f9113ef6b9d20fa0c8f0b41e118
DIST pytest_jupyter-0.9.1.tar.gz 15519 BLAKE2B 58262222fec8c57bb979a66de83429dd9ed261506aa11f4737bb3e1ab2c00a81337b279b6052d4fc6996b02cfb40062d9707ec4ca5472f5a603b83a3602ecd0d SHA512 bb513b4560fb4edcebfe3bef5f62544ec241de235a23cb644a6c9830d8284b7b22ac448e48ad48350dc17fa35a9117bcceabfdbeaa578a97be3db34fa3a5a1f8
diff --git a/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild b/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild
new file mode 100644
index 000000000000..2d36517fafd4
--- /dev/null
+++ b/dev-python/pytest-jupyter/pytest-jupyter-0.10.1.ebuild
@@ -0,0 +1,36 @@
+# 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_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pytest plugin for testing Jupyter libraries and extensions"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/pytest-jupyter/
+ https://pypi.org/project/pytest-jupyter/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/ipykernel-6.14[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.7[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-1.21[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3[${PYTHON_USEDEP}]
+ >=dev-python/pytest-7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/scikit-image/Manifest b/dev-python/scikit-image/Manifest
index 2fb1346b2e37..ecdbdaba9105 100644
--- a/dev-python/scikit-image/Manifest
+++ b/dev-python/scikit-image/Manifest
@@ -1 +1,3 @@
+DIST scikit-image-data-15735b54e85c02427f07c71e6456723495034805.tar.bz2 143900901 BLAKE2B c1352e76337250fe1a9d6e07f08b6c9b1e0aed922ab8e0a3a4a1ea175f593b3375522e59550d30a22d392c34fef26d638c007c2af3d991887e02e7c68e56ebbb SHA512 d113dd258b35be710d841f9900cfbfe7103d1190b042489de88dd504b56277edac9a98fed5517e57725c5292fe26528267a06ff313bf6500b669d872c4481146
DIST scikit_image-0.22.0.tar.gz 22685018 BLAKE2B 7d0a65f75f5a58211e21501d6cc6a638f1d36e9a2198a3ad9ff2f230890496c41d5e6cdaed02bbaa62f26aa57fd24fc993656cbdfc2c9c9750147d0f325e56f1 SHA512 4b8c097cd5465f57b1c0879363fe3bdc0941decf2d1f8a881f13f2b7f3207c425f3a0cdcb4be0eed7b33d3ac2f3f8b1835d1cfa69cd3fa2ff5e0be11385fef48
+DIST scikit_image-0.23.0rc2.tar.gz 22677632 BLAKE2B b663065650e25a33ffec80ddd05df622bc62b1c1d3d0a831488d4dd23291b4f125458ae335782762b1d4dc1efa8cbedd5fcd7e6bbe62003967209e4ca4179bca SHA512 aa5f27d571ea49276aba8443a691b30a576d52145a17f13b8ea080a2abf0ed01c57fe50324c05e72bb4662a9ddbb480be94be6784ac3220ed6853b12d94ae06b
diff --git a/dev-python/scikit-image/scikit-image-0.23.0_rc2.ebuild b/dev-python/scikit-image/scikit-image-0.23.0_rc2.ebuild
new file mode 100644
index 000000000000..12be7f42a21c
--- /dev/null
+++ b/dev-python/scikit-image/scikit-image-0.23.0_rc2.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=meson-python
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 optfeature pypi
+
+TEST_DATA_COMMIT=15735b54e85c02427f07c71e6456723495034805
+DESCRIPTION="Image processing routines for SciPy"
+HOMEPAGE="
+ https://scikit-image.org/
+ https://github.com/scikit-image/scikit-image/
+ https://pypi.org/project/scikit-image/
+"
+SRC_URI+="
+ test? (
+ https://gitlab.com/scikit-image/data/-/archive/${TEST_DATA_COMMIT}/scikit-image-data-${TEST_DATA_COMMIT}.tar.bz2
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/imageio-2.33[${PYTHON_USEDEP}]
+ >=dev-python/lazy_loader-0.3[${PYTHON_USEDEP}]
+ >=dev-python/networkx-2.8[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.23[${PYTHON_USEDEP}]
+ >=dev-python/pillow-9.1[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.9[sparse(+),${PYTHON_USEDEP}]
+ >=dev-python/tifffile-2022.8.12[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-python/cython-3.0.4[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( CONTRIBUTORS.txt RELEASE.txt )
+
+# xdist does not work with this test suite
+distutils_enable_tests pytest
+# There is a programmable error in your configuration file:
+#distutils_enable_sphinx doc/source dev-python/numpydoc dev-python/myst-parser
+
+src_test() {
+ # for some reason, upstream refetches data that's already in the tarball
+ # sigh
+ mkdir -p "${HOME}/.cache/scikit-image" || die
+ mv skimage "${HOME}/.cache/scikit-image/${PV/_/}" || die
+
+ # This is a true horror, sigh
+ local cache_dir=${HOME}/.cache/scikit-image/${PV/_/}/data
+ pushd "${WORKDIR}/data-${TEST_DATA_COMMIT}" >/dev/null || die
+ cp Tests_besides_Equalize_Otsu/add18_entropy/rank_filters_tests_3d.npz \
+ Tests_besides_Equalize_Otsu/gray_morph_output.npz \
+ brain.tiff cells3d.tif eagle.png \
+ "${cache_dir}/" || die
+ cp Normal_Epidermis_and_Dermis_with_Intradermal_Nevus_10x.JPG "${cache_dir}"/skin.jpg || die
+ cp pivchallenge/B/B001_1.tif "${cache_dir}"/pivchallenge-B-B001_1.tif || die
+ cp pivchallenge/B/B001_2.tif "${cache_dir}"/pivchallenge-B-B001_2.tif || die
+ cp kidney-tissue-fluorescence.tif "${cache_dir}"/kidney.tif || die
+ cp lily-of-the-valley-fluorescence.tif "${cache_dir}"/lily.tif || die
+ cp astronaut_rl.npy "${cache_dir}/../restoration/tests/" || die
+ popd > /dev/null || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # tests for downloading all data files, including these not needed
+ # by any actual tests
+ data/tests/test_data.py::test_download_all_with_pooch
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest --pyargs skimage -p localserver -o xfail_strict=False
+}
+
+pkg_postinst() {
+ optfeature "FITS io capability" dev-python/astropy
+ optfeature "GTK" dev-python/pygtk
+ optfeature "Parallel computation" dev-python/dask
+ optfeature "io plugin providing most standard formats" dev-python/imread
+ optfeature "plotting" dev-python/matplotlib
+ optfeature "wavelet transformations" dev-python/pywavelets
+ optfeature "io plugin providing a wide variety of formats, including specialized formats using in medical imaging." dev-python/simpleitk
+}
diff --git a/dev-python/scipy/Manifest b/dev-python/scipy/Manifest
index b4d0a815a2b8..bb6e121a9ffd 100644
--- a/dev-python/scipy/Manifest
+++ b/dev-python/scipy/Manifest
@@ -1,6 +1,8 @@
DIST scipy-1.11.3.tar.gz 56335652 BLAKE2B 2b35c24522b2bd498b4ebe84a854c8ec1e62917e7b899b3e3526abb9780c1e56f8e776a3bb1eab1bedb17a273fac881e5ffdaac808084a4f5a5f97428bff1029 SHA512 6491c4e479d9f4f02e677396a25ddca947a0dc6c009fc2ec34c658012a6224c0b535f14045bb011fbde9973ea987d184574ed64e6760c31798ec860eb0896fcf
DIST scipy-1.11.4.tar.gz 56336202 BLAKE2B a2091a1edb54eb73c2de6ed8c62a7e571f37b247c9af50947aa97b739342c96b87b20a82b1a238c859fa532c84249cbadde228366dcea3555e9a506c1ae55031 SHA512 2eb403f6de9723b411d948b8e1b5457078704c605b8e760d42362c82d802e167eaaf701ddb8b480af2bdf2efe4dbf66fcc4e97321519bb8dab19b0e2a8976beb
DIST scipy-1.12.0.tar.gz 56811768 BLAKE2B 03c142274f1466747935fa54fab427f3a48c1642406211fa1a0f8ad5e0f194baecf76182e0448a0fb647063871483239cd876ce431cd9406e396e6170912ab64 SHA512 376ed94c4caaf782814bb07047fff0b363f7b608a0399697c6e862432333cbe6d3abb351730a574a3f077b3cdd9cb7474090a460baffcfbd5546bcfee309b6e7
+DIST scipy-1.13.0.tar.gz 57204550 BLAKE2B cfbb4e76efae952854e9ff4ed254e9819b58d224906e1ded3c6a914b1e28b5fad15f8bbbb4a9c413969d6e4b1faf4e0038a36729171ff06e640b241a9dd4af94 SHA512 9bd6fd3f76742a07e5bb003edf4c0e3a82edf749077502fbce3d16fe595d455846edcf57db12ec0a9d4792803e974355362d919047414badfcaededf1e4343f7
DIST scipy-1.13.0rc1.tar.gz 57201979 BLAKE2B 0e257dbe3707b373045eef21384f64847017ffd281e41acb4358e90fec7be5983462849fb199e0bf2ae7944d2a1511c181bd4b1d0ba01f8691062fb9fdebd689 SHA512 de03fdd61bde610bebe7ede8ef22c72e2f65f68e3584b70069b59539a1453a0f1b34baa065ff3cbcb109d3e9a02c705a964116ca11d85700c58ad094772962e2
DIST scipy-html-1.11.0.zip 50421508 BLAKE2B cb5e4a4f8817a80f54ae73b4a47ba22d2438df46ebfe27ef5fdc2695fdd983226f4ccae925bf82b15d01ced4f4b6807384ecadac5e1aa7700aa887ad06b7d065 SHA512 33718bbd5e828687d93fccc441a53b6a2e8f54ac4952d3b69d4c4668f55cb6ef5aba33df9acda20b2400effa5ae71767b2a5602a365ad2045a6edd24ff89c253
DIST scipy-html-1.11.2.zip 50435722 BLAKE2B 460c67509a8bf50986f866ee2f90e634af21ddd71508efeef5681c2ee2130c3f79b4b428bc21277bfb310bb45ccad1fb38221ada43620055377cdc4839b9d1e5 SHA512 986a6e37f9e01dc4925ef22af6ff660bae1e4b66e57270262974c207dfb70285e3f8f548774d6e81d5f457b9198c0ba1c06e6d689fe5d54fdea878c1e5a7f797
+DIST scipy-html-1.13.0.zip 65327245 BLAKE2B 5e5ffbf4ff4a28c5a003da0e5170ef5eef1b430ecca0284a89aed5f96f7afc549db001beb2e56b3debbd3527c57b773b25c35579b32d8a6d8e5e97a75db4d38b SHA512 792c32f077d76d47e42d02c5047990a6afdcdc9c31dcc7e9987e7a5aa62c56aec44dcf7d14e3f94ae59f8fb718ce89a2835b87d2aef7a16ce9a534361b7329d7
diff --git a/dev-python/scipy/scipy-1.13.0.ebuild b/dev-python/scipy/scipy-1.13.0.ebuild
new file mode 100644
index 000000000000..2c9b7670b428
--- /dev/null
+++ b/dev-python/scipy/scipy-1.13.0.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_NEEDED=fortran
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit fortran-2 distutils-r1
+
+DESCRIPTION="Scientific algorithms library for Python"
+HOMEPAGE="
+ https://scipy.org/
+ https://github.com/scipy/scipy/
+ https://pypi.org/project/scipy/
+"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ # Need submodules, so git for now.
+ EGIT_REPO_URI="https://github.com/scipy/scipy"
+ EGIT_BRANCH="maintenance/$(ver_cut 1-2).x"
+ EGIT_SUBMODULES=( '*' )
+else
+ inherit pypi
+
+ # Upstream is often behind with doc updates
+ DOC_PV=${PV}
+
+ SRC_URI+="
+ doc? (
+ https://docs.scipy.org/doc/${PN}-${DOC_PV}/${PN}-html-${DOC_PV}.zip
+ )"
+
+ if [[ ${PV} != *rc* ]] ; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ fi
+fi
+
+LICENSE="BSD LGPL-2"
+SLOT="0"
+IUSE="doc +fortran test-rust"
+
+# umfpack is technically optional but it's preferred to have it available.
+DEPEND="
+ >=dev-python/numpy-1.22.4:=[lapack,${PYTHON_USEDEP}]
+ sci-libs/arpack:=
+ sci-libs/umfpack
+ virtual/cblas
+ >=virtual/lapack-3.8
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/pillow[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-lang/swig
+ >=dev-python/cython-3.0.8[${PYTHON_USEDEP}]
+ >=dev-python/meson-python-0.15.0[${PYTHON_USEDEP}]
+ >=dev-python/pybind11-2.12.0[${PYTHON_USEDEP}]
+ >=dev-build/meson-1.1.0
+ !kernel_Darwin? ( dev-util/patchelf )
+ virtual/pkgconfig
+ doc? ( app-arch/unzip )
+ fortran? ( >=dev-python/pythran-0.14.0[${PYTHON_USEDEP}] )
+ test? (
+ >=dev-python/hypothesis-6.30[${PYTHON_USEDEP}]
+ )
+ test-rust? (
+ dev-python/pooch[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+
+ if use doc; then
+ unzip -qo "${DISTDIR}"/${PN}-html-${DOC_PV}.zip -d html || die
+ fi
+}
+
+python_configure_all() {
+ DISTUTILS_ARGS=(
+ -Dblas=blas
+ -Dlapack=lapack
+ -Duse-pythran=$(usex fortran true false)
+ )
+
+ # hide real scipy, to prevent pythran crashing when scipy is being
+ # rebuilt for new numpy ABI
+ # https://github.com/serge-sans-paille/pythran/issues/2194
+ cat >> "${T}/scipy.py" <<-EOF || die
+ raise ImportError("hide real scipy")
+ EOF
+}
+
+python_compile() {
+ local -x PYTHONPATH="${T}${PYTHONPATH+:${PYTHONPATH}}"
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+
+ local EPYTEST_DESELECT=(
+ # Network
+ scipy/datasets/tests/test_data.py::TestDatasets::test_existence_all
+ scipy/datasets/tests/test_data.py::TestDatasets::test_ascent
+ scipy/datasets/tests/test_data.py::TestDatasets::test_face
+ scipy/datasets/tests/test_data.py::TestDatasets::test_electrocardiogram
+
+ # Precision issue with diff. blas?
+ scipy/optimize/tests/test__basinhopping.py::Test_Metropolis::test_gh7799
+
+ # Crashes with assertion, not a regression
+ # https://github.com/scipy/scipy/issues/19321
+ scipy/signal/tests/test_signaltools.py::test_lfilter_bad_object
+
+ # timeouts
+ scipy/sparse/linalg/tests/test_propack.py::test_examples
+ # hang or incredibly slow
+ scipy/optimize/tests/test_lsq_linear.py::TestBVLS::test_large_rank_deficient
+ scipy/optimize/tests/test_lsq_linear.py::TestTRF::test_large_rank_deficient
+
+ # TODO
+ scipy/optimize/tests/test_minimize_constrained.py::TestTrustRegionConstr::test_list_of_problems
+ )
+ local EPYTEST_IGNORE=()
+
+ if ! has_version -b "dev-python/pooch[${PYTHON_USEDEP}]" ; then
+ EPYTEST_IGNORE+=(
+ scipy/datasets/tests/test_data.py
+ )
+ fi
+
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # fd leaks in tests
+ # https://github.com/scipy/scipy/issues/19553
+ scipy/fft/_pocketfft/tests/test_real_transforms.py
+ # TODO
+ 'scipy/special/tests/test_data.py::test_boost[<Data for expi: expinti_data_long_ipp-expinti_data_long>]'
+ # missing dict.__ror__
+ # https://github.com/pypy/pypy/issues/4934
+ 'scipy/sparse/tests/test_dok.py::test_dunder_ror[dok_matrix]'
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest scipy
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( "${WORKDIR}"/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index fb0c308b83a3..0d910430f3b8 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,7 +1,10 @@
DIST pubgrub-aab132a3d4d444dd8dd41d8c4e605abd69dacfe1.gh.tar.gz 73856 BLAKE2B 9e30babd5159de0f80a69de082e990cade3768a4f62c64ecec46253b1c8a3da56a61d096f0cd2e74da436cbabb444c5acbfe27cc55160a5c0c99205c0317612a SHA512 f49c63df7394fcd4ce6a616e3c8d7893274f4bbe4d451f3fb46eed80a3e03eb345818c5ff87e9d3ac23c80ea7ffee5de01237a5dfff40f740f88a6d61eab5f81
+DIST pubgrub-c26e485213e39582c6f2e4d45c0328422670e7a7.gh.tar.gz 86123 BLAKE2B 743bb61460903d276f467b23bb001313598b50cb54fd1a56bcadbc732dd606bafd48a2d9960add3424bd03222450b455f9f1bc8716a80933e5ed0cfb76dcc50a SHA512 9f9c8b58dd2ddeb3ed89abcd790641bd9b7b2cf4fc66dcc4d964a1b69d879adcdaf2775545631ca20f06a8ab5d6bc1df6b2eb272207d2642584c269b358f4d76
DIST pubgrub-e981e4dfe315582e84e2fd724832fb0e0c50b7aa.gh.tar.gz 76914 BLAKE2B e7039f3b2fdc2a702f4824ff99acba9549e916c211290b79ec710060369b2c76e518c210c109103bf5ba50cbb373d0a4e3185df09935d7e47241ec25da259776 SHA512 94cfc88b6736ffd78bcbcc3f4cd9940d27c902bf2dfca38dddb470b8a6a0bb3a8e4a61dd1b2654e49327c9386c3ac2a7f090f9a6c2426b19ecf00d9f9716d400
DIST rs-async-zip-d76801da0943de985254fc6255c0e476b57c5836.gh.tar.gz 95906 BLAKE2B a5a0e4d20926d637cbfa25cb486580de6682365c588a9653c873622424ec28ac8c7380d1c99ec260cd342b214aacd5124b51fc5e5646f15f76db4148aada2f41 SHA512 dd5b61bfc913a94822d74f1dac3b30f7a3979a641c3b08ccb5fa84cfbb2bfd8c0f807a30cc4ae0abfe5df7079011c20e1f8a642fd439ce6ba2c404ddee06baf5
DIST uv-0.1.13-crates.tar.xz 47903460 BLAKE2B da7a2f023054197820cd1bcd13c6e4ff6d4c4bc4780fa109b2c5b796830333f21bc4c7f426052f7ed31a6c02f4e28694cfd94b1aa9d3044ebde49570e565c04b SHA512 cce73590c12a082fed36092bada42b878437cc44137f47c47b4e0e6fae214295867fbda90576d8ed47b025d873dc5655ab74c9914d6ccbaf6cea994b793800d5
DIST uv-0.1.13.gh.tar.gz 1860446 BLAKE2B e5c209e11ea10a0aa8a88d4d40b40fe84cdd764cab1e852b49a52d8ff8749aac59d62234626fa768e6b1c304ee7b7a54cf99f5af4ecf21b368a1b521a8f903df SHA512 dc00cc26bc3b8e30edcc619bd49ff44962180623be8d1e2d7dc7c2b1c29969c8b393eda31b1392d90f0d72c15f2cb19af489e1e44f857225e461393c4b4b96c1
DIST uv-0.1.24-crates.tar.xz 64420840 BLAKE2B 7324461092a07c86aadaddf051aaa7454ec08085940f34d07d8a8dc7171abcbf94409df5cd8afd71f1022adb2e76c0aeb1eabe9190598cad4d06e390ccd612f4 SHA512 6701a768a8a1d48ac43038e5161b578b684abed1c2055cc4b7fb5656ec40118287893ee2674b7161292ce7c3e4c062c32ff0038f1548c8f79f4df473d8d26f30
DIST uv-0.1.24.gh.tar.gz 899637 BLAKE2B fab26ba9934fc5f586505b5ac1fa386c11f07e51ca2bb2a79f46d5dec9475ba8d75ad8587223d5149df5f2a225146d020a49b7ff81ed26b949cff55892738c2d SHA512 520b47a096b50fce9e7b7af5bca203df9bf4c2d0aafbe28a3dcfe0592d8ddcaa7b58d52300c67454f6aeecfd196f1592be18e45c95b7c67257361917cdb0154d
+DIST uv-0.1.28-crates.tar.xz 64374368 BLAKE2B 6eceb9eba6d746007eb983ae704fc96496e29e86d219af19af01cafdb230bf2e5f572d07fac2ee5cdb42e5e553dbc266233425084acd98d73039a761c5e2907e SHA512 0966ece30f0ac1111ac6eb0d3f5aeea3a3a443962e0a477c66b62dae09374f1dccf1a0ac355d5c684e76759f64b6921ed192de8d0363682d0aafe1de31c019be
+DIST uv-0.1.28.gh.tar.gz 925800 BLAKE2B 5e30573a198057261fe7716dc6dc5d8b7bd8700fabc4f061129d5e15475eeee96ea6424fc7321425348103796a2a6278118cc1c3399f8c3858c3816450e068c7 SHA512 3de0df5ca3c69bedc30d20c199251060a35d82ede8fa9f7f4907eee8e0bd55c7f10fbee0e870e1145c88c8526ab4729af4be393bc2a6508fa008050691ccf06a
diff --git a/dev-python/uv/files/uv-0.1.28-skip-tests.patch b/dev-python/uv/files/uv-0.1.28-skip-tests.patch
new file mode 100644
index 000000000000..037ac6addb99
--- /dev/null
+++ b/dev-python/uv/files/uv-0.1.28-skip-tests.patch
@@ -0,0 +1,144 @@
+diff --git a/crates/uv/tests/pip_compile.rs b/crates/uv/tests/pip_compile.rs
+index 281c8b7f..19df83c2 100644
+--- a/crates/uv/tests/pip_compile.rs
++++ b/crates/uv/tests/pip_compile.rs
+@@ -5509,3 +5509,2 @@ fn expand_env_var_requirements_txt() -> Result<()> {
+ /// Raise an error when an editable's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_editable() -> Result<()> {
+@@ -5763,3 +5762,2 @@ fn no_stream() -> Result<()> {
+ /// Raise an error when a direct URL dependency's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_direct_url() -> Result<()> {
+diff --git a/crates/uv/tests/pip_install.rs b/crates/uv/tests/pip_install.rs
+index ee987fb0..a73e2f25 100644
+--- a/crates/uv/tests/pip_install.rs
++++ b/crates/uv/tests/pip_install.rs
+@@ -952,3 +952,2 @@ fn install_no_index_version() {
+ /// Ref: <https://github.com/astral-sh/uv/issues/1600>
+-#[test]
+ fn install_extra_index_url_has_priority() {
+@@ -2362,3 +2361,2 @@ requires-python = ">=3.11,<3.13"
+ /// Raise an error when an editable's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_editable() -> Result<()> {
+@@ -2811,3 +2809,2 @@ fn dry_run_install_then_upgrade() -> std::result::Result<(), Box<dyn std::error:
+ /// Raise an error when a direct URL's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_direct_url() -> Result<()> {
+diff --git a/crates/uv/tests/pip_install_scenarios.rs b/crates/uv/tests/pip_install_scenarios.rs
+index e9e85a94..353b3c62 100644
+--- a/crates/uv/tests/pip_install_scenarios.rs
++++ b/crates/uv/tests/pip_install_scenarios.rs
+@@ -2246,3 +2246,2 @@ fn post_greater_than_or_equal_post() {
+ /// ```
+-#[test]
+ fn post_less_than_or_equal() {
+@@ -2285,3 +2284,2 @@ fn post_less_than_or_equal() {
+ /// ```
+-#[test]
+ fn post_less_than() {
+@@ -2322,3 +2320,2 @@ fn post_less_than() {
+ /// ```
+-#[test]
+ fn post_local_greater_than() {
+@@ -2363,3 +2360,2 @@ fn post_local_greater_than() {
+ /// ```
+-#[test]
+ fn post_local_greater_than_post() {
+@@ -2531,3 +2527,2 @@ fn post_greater_than_post_not_available() {
+ /// ```
+-#[test]
+ fn package_only_prereleases() {
+@@ -3654,3 +3649,2 @@ fn package_prereleases_specifier_boundary() {
+ /// ```
+-#[test]
+ fn python_version_does_not_exist() {
+@@ -3696,3 +3690,2 @@ fn python_version_does_not_exist() {
+ /// ```
+-#[test]
+ fn python_less_than_current() {
+@@ -3738,3 +3731,2 @@ fn python_less_than_current() {
+ /// ```
+-#[test]
+ fn python_greater_than_current() {
+@@ -3780,3 +3772,2 @@ fn python_greater_than_current() {
+ /// ```
+-#[test]
+ fn python_greater_than_current_patch() {
+@@ -3944,3 +3935,2 @@ fn python_greater_than_current_backtrack() {
+ /// ```
+-#[test]
+ fn python_greater_than_current_excluded() {
+diff --git a/crates/uv/tests/pip_list.rs b/crates/uv/tests/pip_list.rs
+index 9b545ee2..5b202b9c 100644
+--- a/crates/uv/tests/pip_list.rs
++++ b/crates/uv/tests/pip_list.rs
+@@ -101,3 +101,2 @@ fn list_single_no_editable() -> Result<()> {
+
+-#[test]
+ fn list_editable() {
+@@ -153,3 +152,2 @@ fn list_editable() {
+
+-#[test]
+ fn list_editable_only() {
+@@ -241,3 +239,2 @@ fn list_editable_only() {
+
+-#[test]
+ fn list_exclude() {
+diff --git a/crates/uv/tests/pip_sync.rs b/crates/uv/tests/pip_sync.rs
+index 7964d2cc..e0a14a91 100644
+--- a/crates/uv/tests/pip_sync.rs
++++ b/crates/uv/tests/pip_sync.rs
+@@ -1423,3 +1423,2 @@ fn install_git_source_dist_cached() -> Result<()> {
+ /// Check that we show the right messages on cached, registry source distribution installs.
+-#[test]
+ fn install_registry_source_dist_cached() -> Result<()> {
+@@ -2920,3 +2919,2 @@ fn compile_invalid_pyc_invalidation_mode() -> Result<()> {
+ /// Raise an error when an editable's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_editable() -> Result<()> {
+@@ -2988,3 +2986,2 @@ fn no_stream() -> Result<()> {
+ /// Raise an error when a direct URL dependency's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_direct_url() -> Result<()> {
+diff --git a/crates/uv/tests/venv.rs b/crates/uv/tests/venv.rs
+index 94e79ae7..f79ea4e6 100644
+--- a/crates/uv/tests/venv.rs
++++ b/crates/uv/tests/venv.rs
+@@ -76,3 +76,2 @@ impl VenvTestContext {
+
+-#[test]
+ fn create_venv() {
+@@ -118,3 +117,2 @@ fn create_venv() {
+
+-#[test]
+ fn create_venv_defaults_to_cwd() {
+@@ -139,3 +137,2 @@ fn create_venv_defaults_to_cwd() {
+
+-#[test]
+ fn seed() {
+@@ -163,3 +160,2 @@ fn seed() {
+
+-#[test]
+ fn seed_older_python_version() {
+@@ -255,3 +251,2 @@ fn create_venv_unknown_python_patch() {
+
+-#[test]
+ fn create_venv_python_patch() {
+@@ -278,3 +273,2 @@ fn create_venv_python_patch() {
+
+-#[test]
+ fn file_exists() -> Result<()> {
+@@ -307,3 +301,2 @@ fn file_exists() -> Result<()> {
+
+-#[test]
+ fn empty_dir_exists() -> Result<()> {
+@@ -334,3 +327,2 @@ fn empty_dir_exists() -> Result<()> {
+
+-#[test]
+ fn non_empty_dir_exists() -> Result<()> {
+@@ -408,3 +400,2 @@ fn windows_shims() -> Result<()> {
+
+-#[test]
+ fn virtualenv_compatibility() {
diff --git a/dev-python/uv/uv-0.1.28.ebuild b/dev-python/uv/uv-0.1.28.ebuild
new file mode 100644
index 000000000000..5a2ad8fdce77
--- /dev/null
+++ b/dev-python/uv/uv-0.1.28.ebuild
@@ -0,0 +1,108 @@
+# Copyright 2024 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;d76801da0943de985254fc6255c0e476b57c5836;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;c26e485213e39582c6f2e4d45c0328422670e7a7;pubgrub-%commit%'
+)
+
+inherit cargo check-reqs
+
+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/${P}-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-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ dev-libs/libgit2:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=virtual/rust-1.77
+ 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
+ )
+"
+
+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
+}
+
+src_prepare() {
+ local PATCHES=(
+ # skip broken tests:
+ # - requiring pinned CPython versions (3.8.12, 3.11.7, 3.12.1)
+ # - requiring specific terminal width (COLUMNS don't seem to work)
+ # - other (perhaps failing because of other skipped tests?)
+ "${FILESDIR}/uv-0.1.28-skip-tests.patch"
+ )
+
+ rm crates/uv/tests/pip_compile_scenarios.rs || die
+ default
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}