summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin271768 -> 271767 bytes
-rw-r--r--dev-python/build/Manifest2
-rw-r--r--dev-python/build/build-1.2.0.ebuild4
-rw-r--r--dev-python/dask-expr/Manifest2
-rw-r--r--dev-python/dask-expr/dask-expr-1.0.5.ebuild63
-rw-r--r--dev-python/uv/Manifest5
-rw-r--r--dev-python/uv/files/uv-0.1.24-skip-tests.patch192
-rw-r--r--dev-python/uv/uv-0.1.24.ebuild107
8 files changed, 372 insertions, 3 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index 97d8d706e217..5b9a2777bfb0 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/build/Manifest b/dev-python/build/Manifest
index 864a895598c2..2413ab550763 100644
--- a/dev-python/build/Manifest
+++ b/dev-python/build/Manifest
@@ -1,5 +1,5 @@
DIST build-1.1.1.gh.tar.gz 44605 BLAKE2B aa1d554d55007e8cb715981938bb8765230ae5ddc6c5bc29efeb52c0e18b6337a13c27f3389772a83cc0ecc9b7d3e889fbc305e91f1290424d7031a1782f683f SHA512 5fa64b07f2c22faca074d1447f5fcb12b7ad40e5fe897f034901d7932d8a9aa2c1dfa806d373503246255d7d9a2429b336384a980376f4ae7c810ae275b735da
DIST build-1.2.0.gh.tar.gz 47350 BLAKE2B 874f4871d5b8c22ce1d93a840fd00315cfa3a93b01a44e3c8c3270d2dcb66455e2c44e757d0ae15a58a35ea4ee8679a797191523254c914150d801cf3c0a5fa8 SHA512 aaa4677f8eb04c2872dc0f64287e00cd0aa47b10d3bfd67a63c22db42caef8baae9996c3a6ced3a07cce4a54d6fd52a3f15d167f804f7f518d258aa5da68419c
EBUILD build-1.1.1.ebuild 1684 BLAKE2B 0dfc43a98f0edb7693d533cd3b75570191e716e87ce00e1255f2d1a3d40fa06bc028f1895535e8eac7f38b0d3c95da057ae9e93cef1eb763043a471441bea5e7 SHA512 b65bacfcde9bc791b724a9e3d461a1398b206117bea5f3aabbfc5ea96c174ba56979903adde1d10734939685b45c2bf91b832036c21e7220186c38173fded8c1
-EBUILD build-1.2.0.ebuild 2110 BLAKE2B dcbe024a327c13a417feef4140e4c83525101d43a3e806e347490fb3acfa7edf0a77ff4470a235a999f624189d8bb636e390303c9728962cb534c87f8ace78a9 SHA512 71f2ccf8bcc7df2117ef0e66b3f6ce1993f3951b4cbef8f00c2fb861f8229db45b90512c532af20f08e45c9f60f1fcda1a2d65eb7147883c3555c4a5c55e86eb
+EBUILD build-1.2.0.ebuild 2148 BLAKE2B 5175758b124efc8e6533f47522e00dc72aaf2e10277d4b2c214fea018185fb8e0b7ceeeb2e9efb6963c04bd490df9d7e97715c1a6457dc96cf5ba3367f08075d SHA512 996ff891f39b4d0ce799b378b8639e54db071216ea046fe780d552683e90b5482165fea575509dbc5e1cc651af32d2bdb0f8a7962b3412c362bddcc239a7c5f2
MISC metadata.xml 361 BLAKE2B 1c46e1d83bec4a8aaedd932af700865009735ff75e3af63ef7c08f7c00883d5f658f86aec981cd48c8ef0ab0a287250a3a4fdfad42fb434f6c06d9f33f72f7d6 SHA512 89c86db40833c86e25f387c5bfa8952b62e983714be85af1e8ca2a6ef8a402b94cc32dfc18cda8d8850736aaabdb46c153743af9bcb027e86b2c1f085f6f2369
diff --git a/dev-python/build/build-1.2.0.ebuild b/dev-python/build/build-1.2.0.ebuild
index 9831bacb2851..92cc73481513 100644
--- a/dev-python/build/build-1.2.0.ebuild
+++ b/dev-python/build/build-1.2.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~m68k"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc64 ~sparc"
IUSE="test-rust"
RDEPEND="
@@ -39,7 +39,7 @@ BDEPEND="
>=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
>=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
test-rust? (
- dev-python/uv
+ !sparc? ( dev-python/uv )
)
)
"
diff --git a/dev-python/dask-expr/Manifest b/dev-python/dask-expr/Manifest
index 5ae26ecd0901..1e28db774b3a 100644
--- a/dev-python/dask-expr/Manifest
+++ b/dev-python/dask-expr/Manifest
@@ -1,3 +1,5 @@
DIST dask-expr-1.0.1.gh.tar.gz 233058 BLAKE2B 2e5f64b75e4786e66b6ccab73af8e4a2fa5f7a3dce9cdce801769a2d85d28a0f7657c306f7e8d3458490391dcb9ae967d344832fcd530ef25fd7ee7c747a89b4 SHA512 c779f0e8e8a7a9ed650f58f4900950b72a4915c899dffa2641f707d8db1537213ea67bafc983fb28e50d16e894e8f9d11db9ae77cee9131b273f7aa8e98e6e7c
+DIST dask-expr-1.0.5.gh.tar.gz 239409 BLAKE2B 0fae8540f40cbdead823f300a68df239bb838bb88d34c000b6d29ee451609a4cfc4422586cbf1fc3d2e10b50ffab6e8a2414c14c00635d929d92d7e40b1abff5 SHA512 3baf9e1aca78bc8158bce0e6beb323e511fa5717578bb10bfce27ec38a8f7b6e25b21edeffc669a1ac5f4a987dbbd948bba0f4375f3c5b329d13fab7093708ea
EBUILD dask-expr-1.0.1.ebuild 1349 BLAKE2B c21dea9046a676c467dbb37f7a838a9fba2414e48e4965b2e91a239b4322f86765b6937bce61f3a5551382d072344f285c3a34aebca675160dd0e178233af58d SHA512 d9c173a16dd1cadf2071eca6edc58fdd90fc5b0862ed3c31e7021595d24c84bbcb9875dc166793169d32ea59a609cd295248ca05fb1cefb5552291de7018a20d
+EBUILD dask-expr-1.0.5.ebuild 1387 BLAKE2B ae744c6f6c4203a95edcb1cf46ffa8e2c2f60b2d8211adc0de5c151cb04a92b8e8da3722df4c5f96149ecafa426f75ddc46a435a4c502642eac822f3d8ce4b68 SHA512 da6dc07139c7dc0021058a8eb80a8ad1c1ce2b99dff4cbd740fb122edb7eaad8e37ed7095a900f5141fedc8fed5d39bbf553e10d62ec1619edf5329411270533
MISC metadata.xml 369 BLAKE2B 38dfcaeb0144094d8da213fdf05186a59db6d252f0328ffb3b4030e2a4db300e4af0f1f06a868eb80c68f831fc25aaab450f951890db737924662560087dc5fb SHA512 b6ab843478467faa7561eff3282e19fcf0e4e5280c22b5cf1ae4179b75c6e58ad8e98950ae6323099e4ec867220a59bc053962ca3fcb7c38004c9fd244cc1712
diff --git a/dev-python/dask-expr/dask-expr-1.0.5.ebuild b/dev-python/dask-expr/dask-expr-1.0.5.ebuild
new file mode 100644
index 000000000000..840dbef19952
--- /dev/null
+++ b/dev-python/dask-expr/dask-expr-1.0.5.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1
+
+DESCRIPTION="High Level Expressions for Dask"
+HOMEPAGE="
+ https://github.com/dask/dask-expr/
+ https://pypi.org/project/dask-expr/
+"
+# pypi tarball removes tests, as of 1.0.1
+SRC_URI="
+ https://github.com/dask/dask-expr/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/dask-2024.3.1[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-7.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pandas-2[${PYTHON_USEDEP}]
+"
+# TODO: make pandas depend on pyarrow unconditionally? we're having
+# transitive deps here.
+BDEPEND="
+ dev-python/versioneer[${PYTHON_USEDEP}]
+ test? (
+ dev-libs/apache-arrow[parquet,snappy]
+ dev-python/pyarrow[parquet,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin
+ sed -i -e '/dask/s:==:>=:' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires distributed
+ 'dask_expr/tests/test_shuffle.py::test_respect_context_shuffle[shuffle]'
+ )
+ local EPYTEST_IGNORE=(
+ # requires distributed
+ dask_expr/io/tests/test_parquet.py
+ dask_expr/tests/test_diagnostics.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index f070e36305a0..d66220cdb31a 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,7 +1,12 @@
AUX uv-0.1.13-skip-tests.patch 2450 BLAKE2B ab33cab9edb39b4d675f219552b89d7dc4e187a3794628de88ea7274e0834193afcfdd25780f886f058cf1ac4b34311026233082018c78c1731f8a7b0203eb3a SHA512 3f0afac1a5c3aa9ae3c86a7479b458e750ab0e4ddf9179151c57cd7f8c3db9618b949a6a3371b9db0c0a0e15e4a7146468d77930be4122df0642b1ed52a9118d
+AUX uv-0.1.24-skip-tests.patch 6070 BLAKE2B 10c111a2782bc0de45317dc4b6d7f7d66474aec38d61992a63686678a70685aa030acc2b96cb5cced70cf2b290e6f69cdb3e5c42464e04b937a9ef9cb2d7f9f7 SHA512 84fa60b254b3d14fbae337aceba1f34e9f4cd35e0d8da7e90c4ef75c81ccc5268dbfe3e46967ba05899af7862331cade50dcd4a364acd51fcb04a0923cbf7688
DIST pubgrub-aab132a3d4d444dd8dd41d8c4e605abd69dacfe1.gh.tar.gz 73856 BLAKE2B 9e30babd5159de0f80a69de082e990cade3768a4f62c64ecec46253b1c8a3da56a61d096f0cd2e74da436cbabb444c5acbfe27cc55160a5c0c99205c0317612a SHA512 f49c63df7394fcd4ce6a616e3c8d7893274f4bbe4d451f3fb46eed80a3e03eb345818c5ff87e9d3ac23c80ea7ffee5de01237a5dfff40f740f88a6d61eab5f81
+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
EBUILD uv-0.1.13-r1.ebuild 2130 BLAKE2B 136f4c90c5d9efcac30138a7ac8f7a877dbbd22f2cf3934172ea6ad73e5d4965665b891f8ae077bf38bb3d021e2359f0961a5d0dfcecda66cccabe69e4ff8726 SHA512 798c04eb2d7b14f6e874e3d2108c3373acc5f8ea0a4845edbff5764056b5452de179734b90d90c21116adfc674c68470535ee30c005066c5a95658e9e7c7efdc
+EBUILD uv-0.1.24.ebuild 2152 BLAKE2B 384e1839440ef165afb10e50a201eb2eb2d3106cadebadfb2c81c9aea0a67a299cfc628bf867536b282c978ab68fc9382caa0d1d15f17e2c91b06d2a25c72882 SHA512 b52c15fd7cf4fe5107dde5f5f3f27ab2c139d156d5ef937d4767b88a35c9ea79a5867d6c6f5224de3c3198b022523c92094a60490037827ee411bfd6a0eb8a7d
MISC metadata.xml 336 BLAKE2B 4b5933e24e3e9450dde5da099185dcdf3afb5916b55cffa7c2f3f6fac77e439197cbe4ba529a87f83442d8f87d238e8abef06dc052ce9a62659060ffea9fdb47 SHA512 9910fd10ebbc395b9c330774b74798c9ffdba3bb368347658380a22e01d6dc9d1961ea50fbfb4a904c9db84b94c713c054e418a7294425b86ff41a607fd3e310
diff --git a/dev-python/uv/files/uv-0.1.24-skip-tests.patch b/dev-python/uv/files/uv-0.1.24-skip-tests.patch
new file mode 100644
index 000000000000..e9efee5e8d89
--- /dev/null
+++ b/dev-python/uv/files/uv-0.1.24-skip-tests.patch
@@ -0,0 +1,192 @@
+diff --git a/crates/uv/tests/pip_compile.rs b/crates/uv/tests/pip_compile.rs
+index 1fc08d1b..60675de4 100644
+--- a/crates/uv/tests/pip_compile.rs
++++ b/crates/uv/tests/pip_compile.rs
+@@ -5140,7 +5140,6 @@ 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<()> {
+ let context = TestContext::new("3.12");
+
+@@ -5392,7 +5391,6 @@ 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<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/pip_install.rs b/crates/uv/tests/pip_install.rs
+index 6dfbd764..ddc5f37b 100644
+--- a/crates/uv/tests/pip_install.rs
++++ b/crates/uv/tests/pip_install.rs
+@@ -912,7 +912,6 @@ fn install_no_index_version() {
+ /// package in.)
+ ///
+ /// Ref: <https://github.com/astral-sh/uv/issues/1600>
+-#[test]
+ fn install_extra_index_url_has_priority() {
+ let context = TestContext::new("3.12");
+
+@@ -2344,7 +2343,6 @@ 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<()> {
+ let context = TestContext::new("3.12");
+
+@@ -2792,7 +2790,6 @@ 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<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/pip_install_scenarios.rs b/crates/uv/tests/pip_install_scenarios.rs
+index 29ec3483..a538291d 100644
+--- a/crates/uv/tests/pip_install_scenarios.rs
++++ b/crates/uv/tests/pip_install_scenarios.rs
+@@ -2244,7 +2244,6 @@ fn post_greater_than_or_equal_post() {
+ /// └── a
+ /// └── a-1.2.3.post1
+ /// ```
+-#[test]
+ fn post_less_than_or_equal() {
+ let context = TestContext::new("3.8");
+
+@@ -2283,7 +2282,6 @@ fn post_less_than_or_equal() {
+ /// └── a
+ /// └── a-1.2.3.post1
+ /// ```
+-#[test]
+ fn post_less_than() {
+ let context = TestContext::new("3.8");
+
+@@ -2320,7 +2318,6 @@ fn post_less_than() {
+ /// ├── a-1.2.3.post1
+ /// └── a-1.2.3.post1+local
+ /// ```
+-#[test]
+ fn post_local_greater_than() {
+ let context = TestContext::new("3.8");
+
+@@ -2361,7 +2358,6 @@ fn post_local_greater_than() {
+ /// ├── a-1.2.3.post1
+ /// └── a-1.2.3.post1+local
+ /// ```
+-#[test]
+ fn post_local_greater_than_post() {
+ let context = TestContext::new("3.8");
+
+@@ -2529,7 +2525,6 @@ fn post_greater_than_post_not_available() {
+ /// └── a
+ /// └── a-1.0.0a1
+ /// ```
+-#[test]
+ fn package_only_prereleases() {
+ let context = TestContext::new("3.8");
+
+@@ -3652,7 +3647,6 @@ fn package_prereleases_specifier_boundary() {
+ /// └── a-1.0.0
+ /// └── requires python>=3.30 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_version_does_not_exist() {
+ let context = TestContext::new("3.8");
+
+@@ -3694,7 +3688,6 @@ fn python_version_does_not_exist() {
+ /// └── a-1.0.0
+ /// └── requires python<=3.8 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_less_than_current() {
+ let context = TestContext::new("3.9");
+
+@@ -3736,7 +3729,6 @@ fn python_less_than_current() {
+ /// └── a-1.0.0
+ /// └── requires python>=3.10 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_greater_than_current() {
+ let context = TestContext::new("3.9");
+
+@@ -3778,7 +3770,6 @@ fn python_greater_than_current() {
+ /// └── a-1.0.0
+ /// └── requires python>=3.8.14 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_greater_than_current_patch() {
+ let context = TestContext::new("3.8.12");
+
+@@ -3942,7 +3933,6 @@ fn python_greater_than_current_backtrack() {
+ /// └── a-4.0.0
+ /// └── requires python>=3.12 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_greater_than_current_excluded() {
+ let context = TestContext::new("3.9");
+
+diff --git a/crates/uv/tests/pip_list.rs b/crates/uv/tests/pip_list.rs
+index 15d784c1..f15f14b1 100644
+--- a/crates/uv/tests/pip_list.rs
++++ b/crates/uv/tests/pip_list.rs
+@@ -100,7 +100,6 @@ fn list_single_no_editable() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn list_editable() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -197,7 +196,6 @@ fn list_editable() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn list_editable_only() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -323,7 +321,6 @@ fn list_editable_only() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn list_exclude() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/pip_sync.rs b/crates/uv/tests/pip_sync.rs
+index af3f4946..0df9ed80 100644
+--- a/crates/uv/tests/pip_sync.rs
++++ b/crates/uv/tests/pip_sync.rs
+@@ -1447,7 +1447,6 @@ 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<()> {
+ let context = TestContext::new("3.12");
+
+@@ -2955,7 +2954,6 @@ 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<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/venv.rs b/crates/uv/tests/venv.rs
+index 067c1414..1462f6a0 100644
+--- a/crates/uv/tests/venv.rs
++++ b/crates/uv/tests/venv.rs
+@@ -327,7 +327,6 @@ fn create_venv_unknown_python_patch() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn create_venv_python_patch() -> Result<()> {
+ let temp_dir = assert_fs::TempDir::new()?;
+ let cache_dir = assert_fs::TempDir::new()?;
diff --git a/dev-python/uv/uv-0.1.24.ebuild b/dev-python/uv/uv-0.1.24.ebuild
new file mode 100644
index 000000000000..5eaf16db71da
--- /dev/null
+++ b/dev-python/uv/uv-0.1.24.ebuild
@@ -0,0 +1,107 @@
+# 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;e981e4dfe315582e84e2fd724832fb0e0c50b7aa;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"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ dev-libs/libgit2:=
+"
+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
+ )
+"
+
+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.24-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
+}