mirror of https://github.com/astral-sh/uv
Support empty requires
This commit is contained in:
parent
371fa662e3
commit
7e69f62093
|
|
@ -695,7 +695,7 @@ impl<'a, Context: BuildContext> DistributionDatabase<'a, Context> {
|
|||
} else {
|
||||
Err(Error::VariantLockMissing {
|
||||
variant_lock: PathBuf::from(variant_lock_path),
|
||||
requires: provider.requires.clone(),
|
||||
requires: provider.requires.clone().unwrap_or_default(),
|
||||
plugin_api: provider.plugin_api.clone().unwrap_or_default().clone(),
|
||||
})
|
||||
}
|
||||
|
|
@ -1548,7 +1548,10 @@ fn satisfies_provider_requires(
|
|||
{
|
||||
return false;
|
||||
}
|
||||
requested_provider.requires.iter().all(|requested| {
|
||||
let Some(requires) = &requested_provider.requires else {
|
||||
return true;
|
||||
};
|
||||
requires.iter().all(|requested| {
|
||||
static_provider.resolved.iter().any(|resolved| {
|
||||
// We ignore extras for simplicity.
|
||||
&requested.name == resolved.name()
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ pub enum Error {
|
|||
RequirementsInstall(&'static str, #[source] AnyErrorBuild),
|
||||
#[error("Failed to create temporary virtualenv")]
|
||||
Virtualenv(#[from] uv_virtualenv::Error),
|
||||
#[error("Provider plugin `{0}` is missing `requires`")]
|
||||
MissingRequires(String),
|
||||
#[error("Failed to run `{0}`")]
|
||||
CommandFailed(PathBuf, #[source] io::Error),
|
||||
#[error("The build backend returned an error")]
|
||||
|
|
|
|||
|
|
@ -85,6 +85,8 @@ impl VariantBuild {
|
|||
// Resolve and install the provider requirements.
|
||||
let requirements = backend
|
||||
.requires
|
||||
.as_ref()
|
||||
.ok_or_else(|| Error::MissingRequires(backend_name.clone()))?
|
||||
.iter()
|
||||
.cloned()
|
||||
.map(Requirement::from)
|
||||
|
|
@ -158,6 +160,8 @@ impl VariantBuild {
|
|||
let requires = self
|
||||
.backend
|
||||
.requires
|
||||
.as_ref()
|
||||
.ok_or_else(|| Error::MissingRequires(self.backend_name.clone()))?
|
||||
.iter()
|
||||
.filter(|requirement| {
|
||||
requirement.evaluate_markers(
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ pub struct Provider {
|
|||
)]
|
||||
pub enable_if: MarkerTree,
|
||||
/// Dependency specifiers for how to install the plugin
|
||||
pub requires: Vec<Requirement<VerbatimParsedUrl>>,
|
||||
pub requires: Option<Vec<Requirement<VerbatimParsedUrl>>>,
|
||||
/// Whether this plugin is run at install time.
|
||||
pub plugin_use: Option<PluginUse>,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue