Check dependency groups for credentials (#8393)

## Summary

We have to iterate over all user-defined dependencies here. We were
missing the new `[dependency-groups]` section.

Part of https://github.com/astral-sh/uv/pull/8272.
This commit is contained in:
Charlie Marsh
2024-10-20 20:18:53 -04:00
committed by Zanie Blue
parent 1bee82329c
commit 384f4459a1
+17 -1
View File
@@ -23,7 +23,7 @@ use uv_python::{PythonDownloads, PythonEnvironment, PythonPreference, PythonRequ
use uv_resolver::{FlatIndex, Lock};
use uv_types::{BuildIsolation, HashStrategy};
use uv_warnings::warn_user;
use uv_workspace::pyproject::{Source, Sources, ToolUvSources};
use uv_workspace::pyproject::{DependencyGroupSpecifier, Source, Sources, ToolUvSources};
use uv_workspace::{DiscoveryOptions, InstallTarget, MemberDiscovery, VirtualProject, Workspace};
use crate::commands::pip::loggers::{DefaultInstallLogger, DefaultResolveLogger, InstallLogger};
@@ -480,6 +480,21 @@ fn store_credentials_from_workspace(workspace: &Workspace) {
.into_iter()
.flat_map(|optional| optional.values())
.flatten();
let dependency_groups = member
.pyproject_toml()
.dependency_groups
.as_ref()
.into_iter()
.flatten()
.flat_map(|(_, dependencies)| {
dependencies.iter().filter_map(|specifier| {
if let DependencyGroupSpecifier::Requirement(requirement) = specifier {
Some(requirement)
} else {
None
}
})
});
let dev_dependencies = member
.pyproject_toml()
.tool
@@ -491,6 +506,7 @@ fn store_credentials_from_workspace(workspace: &Workspace) {
for requirement in dependencies
.chain(optional_dependencies)
.chain(dependency_groups)
.filter_map(|requires_dist| {
LenientRequirement::<VerbatimParsedUrl>::from_str(requires_dist)
.map(Requirement::from)