mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 10:58:28 +00:00
Remove Python from available versions (#3996)
## Summary I believe this is no longer necessary. Part of the problem here is that we can't _know_ the full set of available Python versions, especially once we start resolving against a `Requires-Python` rather than a fixed set of two versions.
This commit is contained in:
parent
10cd6b94c9
commit
ef43bcb233
2 changed files with 8 additions and 25 deletions
|
@ -1,6 +1,5 @@
|
||||||
use std::collections::{BTreeMap, BTreeSet};
|
use std::collections::{BTreeMap, BTreeSet};
|
||||||
use std::fmt::Formatter;
|
use std::fmt::Formatter;
|
||||||
use std::ops::Deref;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use indexmap::IndexMap;
|
use indexmap::IndexMap;
|
||||||
|
@ -16,7 +15,7 @@ use uv_normalize::PackageName;
|
||||||
|
|
||||||
use crate::candidate_selector::CandidateSelector;
|
use crate::candidate_selector::CandidateSelector;
|
||||||
use crate::dependency_provider::UvDependencyProvider;
|
use crate::dependency_provider::UvDependencyProvider;
|
||||||
use crate::pubgrub::{PubGrubPackage, PubGrubPackageInner, PubGrubPython, PubGrubReportFormatter};
|
use crate::pubgrub::{PubGrubPackage, PubGrubPackageInner, PubGrubReportFormatter};
|
||||||
use crate::python_requirement::PythonRequirement;
|
use crate::python_requirement::PythonRequirement;
|
||||||
use crate::resolver::{
|
use crate::resolver::{
|
||||||
FxOnceMap, IncompletePackage, UnavailablePackage, UnavailableReason, VersionsResponse,
|
FxOnceMap, IncompletePackage, UnavailablePackage, UnavailableReason, VersionsResponse,
|
||||||
|
@ -225,7 +224,6 @@ impl NoSolutionError {
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub(crate) fn with_available_versions(
|
pub(crate) fn with_available_versions(
|
||||||
mut self,
|
mut self,
|
||||||
python_requirement: &PythonRequirement,
|
|
||||||
visited: &FxHashSet<PackageName>,
|
visited: &FxHashSet<PackageName>,
|
||||||
package_versions: &FxOnceMap<PackageName, Arc<VersionsResponse>>,
|
package_versions: &FxOnceMap<PackageName, Arc<VersionsResponse>>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
@ -233,18 +231,7 @@ impl NoSolutionError {
|
||||||
for package in self.derivation_tree.packages() {
|
for package in self.derivation_tree.packages() {
|
||||||
match &**package {
|
match &**package {
|
||||||
PubGrubPackageInner::Root(_) => {}
|
PubGrubPackageInner::Root(_) => {}
|
||||||
PubGrubPackageInner::Python(PubGrubPython::Installed) => {
|
PubGrubPackageInner::Python(_) => {}
|
||||||
available_versions.insert(
|
|
||||||
package.clone(),
|
|
||||||
BTreeSet::from([python_requirement.installed().deref().clone()]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
PubGrubPackageInner::Python(PubGrubPython::Target) => {
|
|
||||||
available_versions.insert(
|
|
||||||
package.clone(),
|
|
||||||
BTreeSet::from([python_requirement.target().deref().clone()]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
PubGrubPackageInner::Extra { .. } => {}
|
PubGrubPackageInner::Extra { .. } => {}
|
||||||
PubGrubPackageInner::Package { name, .. } => {
|
PubGrubPackageInner::Package { name, .. } => {
|
||||||
// Avoid including available versions for packages that exist in the derivation
|
// Avoid including available versions for packages that exist in the derivation
|
||||||
|
|
|
@ -260,16 +260,12 @@ impl<Provider: ResolverProvider, InstalledPackages: InstalledPackagesProvider>
|
||||||
// Add version information to improve unsat error messages.
|
// Add version information to improve unsat error messages.
|
||||||
Err(if let ResolveError::NoSolution(err) = err {
|
Err(if let ResolveError::NoSolution(err) = err {
|
||||||
ResolveError::NoSolution(
|
ResolveError::NoSolution(
|
||||||
err.with_available_versions(
|
err.with_available_versions(&visited, state.index.packages())
|
||||||
&state.python_requirement,
|
.with_selector(state.selector.clone())
|
||||||
&visited,
|
.with_python_requirement(&state.python_requirement)
|
||||||
state.index.packages(),
|
.with_index_locations(provider.index_locations())
|
||||||
)
|
.with_unavailable_packages(&state.unavailable_packages)
|
||||||
.with_selector(state.selector.clone())
|
.with_incomplete_packages(&state.incomplete_packages),
|
||||||
.with_python_requirement(&state.python_requirement)
|
|
||||||
.with_index_locations(provider.index_locations())
|
|
||||||
.with_unavailable_packages(&state.unavailable_packages)
|
|
||||||
.with_incomplete_packages(&state.incomplete_packages),
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
err
|
err
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue