mirror of
https://github.com/astral-sh/uv.git
synced 2025-11-25 21:37:51 +00:00
Implement uv tree --no-dev (#8109)
## Summary Allow pruning dev-dependencies in uv tree. This is not inherently in conflict with --invert, but this pruning is not yet implemented there.
This commit is contained in:
parent
a3b11dacb8
commit
e67d87301a
7 changed files with 43 additions and 3 deletions
|
|
@ -4,6 +4,7 @@ use std::collections::BTreeSet;
|
|||
use itertools::Itertools;
|
||||
use rustc_hash::{FxHashMap, FxHashSet};
|
||||
|
||||
use uv_configuration::DevMode;
|
||||
use uv_normalize::{ExtraName, GroupName, PackageName};
|
||||
use uv_pypi_types::ResolverMarkerEnvironment;
|
||||
|
||||
|
|
@ -22,8 +23,10 @@ pub struct TreeDisplay<'env> {
|
|||
optional_dependencies:
|
||||
FxHashMap<&'env PackageId, FxHashMap<ExtraName, Vec<Cow<'env, Dependency>>>>,
|
||||
dev_dependencies: FxHashMap<&'env PackageId, FxHashMap<GroupName, Vec<Cow<'env, Dependency>>>>,
|
||||
/// Maximum display depth of the dependency tree
|
||||
/// Maximum display depth of the dependency tree.
|
||||
depth: usize,
|
||||
/// Whether to include development dependencies in the display.
|
||||
dev: DevMode,
|
||||
/// Prune the given packages from the display of the dependency tree.
|
||||
prune: Vec<PackageName>,
|
||||
/// Display only the specified packages.
|
||||
|
|
@ -40,6 +43,7 @@ impl<'env> TreeDisplay<'env> {
|
|||
depth: usize,
|
||||
prune: Vec<PackageName>,
|
||||
packages: Vec<PackageName>,
|
||||
dev: DevMode,
|
||||
no_dedupe: bool,
|
||||
invert: bool,
|
||||
) -> Self {
|
||||
|
|
@ -180,6 +184,7 @@ impl<'env> TreeDisplay<'env> {
|
|||
optional_dependencies,
|
||||
dev_dependencies,
|
||||
depth,
|
||||
dev,
|
||||
prune,
|
||||
packages,
|
||||
no_dedupe,
|
||||
|
|
@ -231,12 +236,14 @@ impl<'env> TreeDisplay<'env> {
|
|||
let dependencies: Vec<Node<'env>> = self
|
||||
.dependencies
|
||||
.get(node.package_id())
|
||||
.filter(|_| self.dev != DevMode::Only)
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.map(|dep| Node::Dependency(dep.as_ref()))
|
||||
.chain(
|
||||
self.optional_dependencies
|
||||
.get(node.package_id())
|
||||
.filter(|_| self.dev != DevMode::Only)
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.flat_map(|(extra, deps)| {
|
||||
|
|
@ -247,6 +254,7 @@ impl<'env> TreeDisplay<'env> {
|
|||
.chain(
|
||||
self.dev_dependencies
|
||||
.get(node.package_id())
|
||||
.filter(|_| self.dev != DevMode::Exclude)
|
||||
.into_iter()
|
||||
.flatten()
|
||||
.flat_map(|(group, deps)| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue