Skip to content

Commit

Permalink
Fix display of requirements on the development package
Browse files Browse the repository at this point in the history
  • Loading branch information
zanieb committed Aug 15, 2024
1 parent 5810385 commit 94d8020
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
29 changes: 25 additions & 4 deletions crates/uv-resolver/src/pubgrub/package.rs
Original file line number Diff line number Diff line change
Expand Up @@ -196,33 +196,54 @@ impl std::fmt::Display for PubGrubPackageInner {
name,
extra: None,
marker: None,
..
dev: None,
} => write!(f, "{name}"),
Self::Package {
name,
extra: Some(extra),
marker: None,
..
dev: None,
} => {
write!(f, "{name}[{extra}]")
}
Self::Package {
name,
extra: None,
marker: Some(marker),
..
dev: None,
} => write!(f, "{name}{{{marker}}}"),
Self::Package {
name,
extra: Some(extra),
marker: Some(marker),
..
dev: None,
} => {
write!(f, "{name}[{extra}]{{{marker}}}")
}
Self::Package {
name,
extra: None,
marker: None,
dev: Some(dev),
} => write!(f, "{name}:{dev}"),
Self::Package {
name,
extra: None,
marker: Some(marker),
dev: Some(dev),
} => {
write!(f, "{name}[{dev}]{{{marker}}}")
}
Self::Marker { name, marker, .. } => write!(f, "{name}{{{marker}}}"),
Self::Extra { name, extra, .. } => write!(f, "{name}[{extra}]"),
Self::Dev { name, dev, .. } => write!(f, "{name}:{dev}"),
// It is guaranteed that `extra` and `dev` are never set at the same time.
Self::Package {
name: _,
extra: Some(_),
marker: _,
dev: Some(_),
} => unreachable!(),
}
}
}
2 changes: 1 addition & 1 deletion crates/uv/tests/workspace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1439,7 +1439,7 @@ fn workspace_unsatisfiable_member_dependencies_conflicting_dev() -> Result<()> {
----- stderr -----
Using Python 3.12.[X] interpreter at: [PYTHON-3.12]
× No solution found when resolving dependencies:
╰─▶ Because bar depends on bar:dev and bar depends on anyio==4.2.0, we can conclude that bar depends on anyio==4.2.0.
╰─▶ Because bar depends on bar:dev and bar:dev depends on anyio==4.2.0, we can conclude that bar depends on anyio==4.2.0.
And because foo depends on anyio==4.1.0, we can conclude that bar and foo are incompatible.
And because your workspace requires bar and foo, we can conclude that your workspace's requirements are unsatisfiable.
"###
Expand Down

0 comments on commit 94d8020

Please sign in to comment.