From 6927bb17706cea1792e628d57ff98e0bca0badfd Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Mon, 22 Jul 2024 13:55:34 -0400 Subject: [PATCH 1/2] Use tag error rather than requires-python error for ABI filtering --- crates/uv/tests/lock.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/uv/tests/lock.rs b/crates/uv/tests/lock.rs index ca2e06086e2e..740ea34f2ac0 100644 --- a/crates/uv/tests/lock.rs +++ b/crates/uv/tests/lock.rs @@ -4287,7 +4287,7 @@ fn lock_requires_python_no_wheels() -> Result<()> { ----- stderr ----- warning: `uv lock` is experimental and may change without warning × No solution found when resolving dependencies: - ╰─▶ Because dearpygui==1.9.1 has no wheels are available with a matching Python ABI and project==0.1.0 depends on dearpygui==1.9.1, we can conclude that project==0.1.0 cannot be used. + ╰─▶ Because dearpygui==1.9.1 has no wheels with a matching Python ABI tag and project==0.1.0 depends on dearpygui==1.9.1, we can conclude that project==0.1.0 cannot be used. And because only project==0.1.0 is available and you require project, we can conclude that the requirements are unsatisfiable. "###); From 540ba52f4abaedc73aa193bc7436da90f74e4572 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Mon, 22 Jul 2024 13:55:34 -0400 Subject: [PATCH 2/2] Use tag error rather than requires-python error for ABI filtering Fix grammar Fix tests --- .../src/prioritized_distribution.rs | 14 ++++++-------- crates/uv/tests/pip_install_scenarios.rs | 12 ++++++------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/crates/distribution-types/src/prioritized_distribution.rs b/crates/distribution-types/src/prioritized_distribution.rs index 7f0c324c1495..be9b408c8b96 100644 --- a/crates/distribution-types/src/prioritized_distribution.rs +++ b/crates/distribution-types/src/prioritized_distribution.rs @@ -75,20 +75,18 @@ impl Display for IncompatibleDist { match self { Self::Wheel(incompatibility) => match incompatibility { IncompatibleWheel::NoBinary => { - f.write_str("has no available source distribution and using wheels is disabled") + f.write_str("has no source distribution and using wheels is disabled") } IncompatibleWheel::Tag(tag) => match tag { - IncompatibleTag::Invalid => { - f.write_str("has no wheels are available with valid tags") + IncompatibleTag::Invalid => f.write_str("has no wheels with valid tags"), + IncompatibleTag::Python => { + f.write_str("has no wheels with a matching Python implementation tag") } - IncompatibleTag::Python => f.write_str( - "has no wheels are available with a matching Python implementation", - ), IncompatibleTag::Abi => { - f.write_str("has no wheels are available with a matching Python ABI") + f.write_str("has no wheels with a matching Python ABI tag") } IncompatibleTag::Platform => { - f.write_str("has no wheels are available with a matching platform") + f.write_str("has no wheels with a matching platform tag") } }, IncompatibleWheel::Yanked(yanked) => match yanked { diff --git a/crates/uv/tests/pip_install_scenarios.rs b/crates/uv/tests/pip_install_scenarios.rs index b57917cde519..ac71e18c81fe 100644 --- a/crates/uv/tests/pip_install_scenarios.rs +++ b/crates/uv/tests/pip_install_scenarios.rs @@ -1409,7 +1409,7 @@ fn local_used_without_sdist() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-a==1.2.3 has no wheels are available with a matching Python ABI and you require package-a==1.2.3, we can conclude that the requirements are unsatisfiable. + ╰─▶ Because package-a==1.2.3 has no wheels with a matching Python ABI tag and you require package-a==1.2.3, we can conclude that the requirements are unsatisfiable. "###); // The version '1.2.3+foo' satisfies the constraint '==1.2.3'. @@ -1783,7 +1783,7 @@ fn local_transitive_confounding() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because package-b==2.0.0 has no wheels are available with a matching Python ABI and package-a==1.0.0 depends on package-b==2.0.0, we can conclude that package-a==1.0.0 cannot be used. + ╰─▶ Because package-b==2.0.0 has no wheels with a matching Python ABI tag and package-a==1.0.0 depends on package-b==2.0.0, we can conclude that package-a==1.0.0 cannot be used. And because only package-a==1.0.0 is available and you require package-a, we can conclude that the requirements are unsatisfiable. "###); @@ -4194,7 +4194,7 @@ fn no_sdist_no_wheels_with_matching_platform() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels are available with a matching platform, we can conclude that all versions of package-a cannot be used. + ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching platform tag, we can conclude that all versions of package-a cannot be used. And because you require package-a, we can conclude that the requirements are unsatisfiable. "###); @@ -4235,7 +4235,7 @@ fn no_sdist_no_wheels_with_matching_python() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels are available with a matching Python implementation, we can conclude that all versions of package-a cannot be used. + ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching Python implementation tag, we can conclude that all versions of package-a cannot be used. And because you require package-a, we can conclude that the requirements are unsatisfiable. "###); @@ -4276,7 +4276,7 @@ fn no_sdist_no_wheels_with_matching_abi() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels are available with a matching Python ABI, we can conclude that all versions of package-a cannot be used. + ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no wheels with a matching Python ABI tag, we can conclude that all versions of package-a cannot be used. And because you require package-a, we can conclude that the requirements are unsatisfiable. "###); @@ -4358,7 +4358,7 @@ fn only_wheels_no_binary() { ----- stderr ----- × No solution found when resolving dependencies: - ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no available source distribution and using wheels is disabled, we can conclude that all versions of package-a cannot be used. + ╰─▶ Because only package-a==1.0.0 is available and package-a==1.0.0 has no source distribution and using wheels is disabled, we can conclude that all versions of package-a cannot be used. And because you require package-a, we can conclude that the requirements are unsatisfiable. "###);