mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
Avoid unnecessarily fetching non-marker-required first-party dependencies (#318)
E.g., given: ``` flask; python_version < '3.7' requests ``` We shouldn't request the metadata for Flask when on Python versions 3.7 or later.
This commit is contained in:
parent
051188dce0
commit
a53188cac7
1 changed files with 5 additions and 29 deletions
|
@ -129,35 +129,11 @@ impl<'a, Context: BuildContext + Sync> Resolver<'a, Context> {
|
||||||
let mut priorities = PubGrubPriorities::default();
|
let mut priorities = PubGrubPriorities::default();
|
||||||
|
|
||||||
// Push all the requirements into the package sink.
|
// Push all the requirements into the package sink.
|
||||||
for requirement in &self.requirements {
|
for (package, version) in
|
||||||
debug!("Adding root dependency: {requirement}");
|
iter_requirements(self.requirements.iter(), None, None, self.markers)
|
||||||
let package_name = requirement.name.clone();
|
{
|
||||||
match &requirement.version_or_url {
|
debug!("Adding root dependency: {package} {version}");
|
||||||
// If this is a registry-based package, fetch the package metadata.
|
Self::visit_package(&package, &mut priorities, &mut in_flight, request_sink)?;
|
||||||
None | Some(pep508_rs::VersionOrUrl::VersionSpecifier(_)) => {
|
|
||||||
if in_flight.insert_package(&package_name) {
|
|
||||||
priorities.add(package_name.clone());
|
|
||||||
request_sink.unbounded_send(Request::Package(package_name))?;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// If this is a URL-based package, fetch the source.
|
|
||||||
Some(pep508_rs::VersionOrUrl::Url(url)) => {
|
|
||||||
if in_flight.insert_url(url) {
|
|
||||||
priorities.add(package_name.clone());
|
|
||||||
if WheelFilename::try_from(url).is_ok() {
|
|
||||||
request_sink.unbounded_send(Request::WheelUrl(
|
|
||||||
package_name.clone(),
|
|
||||||
url.clone(),
|
|
||||||
))?;
|
|
||||||
} else {
|
|
||||||
request_sink.unbounded_send(Request::SdistUrl(
|
|
||||||
package_name.clone(),
|
|
||||||
url.clone(),
|
|
||||||
))?;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the solve.
|
// Start the solve.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue