Avoid showing dev hints for Python requirements (#4111)

Closes https://github.com/astral-sh/uv/issues/4096.
This commit is contained in:
Charlie Marsh 2024-06-06 15:58:30 -04:00 committed by GitHub
parent e4e2590076
commit 677a7f157b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -407,18 +407,11 @@ impl PubGrubReportFormatter<'_> {
unavailable_packages: &FxHashMap<PackageName, UnavailablePackage>,
incomplete_packages: &FxHashMap<PackageName, BTreeMap<Version, IncompletePackage>>,
) -> IndexSet<PubGrubHint> {
/// Returns `true` if pre-releases were allowed for a package.
fn allowed_prerelease(package: &PubGrubPackage, selector: &CandidateSelector) -> bool {
let PubGrubPackageInner::Package { name, .. } = &**package else {
return false;
};
selector.prerelease_strategy().allows(name)
}
let mut hints = IndexSet::default();
match derivation_tree {
DerivationTree::External(external) => match external {
External::Custom(package, set, _) | External::NoVersions(package, set) => {
if let PubGrubPackageInner::Package { name, .. } = &**package {
// Check for no versions due to pre-release options
if let Some(selector) = selector {
let any_prerelease = set.iter().any(|(start, end)| {
@ -437,7 +430,7 @@ impl PubGrubReportFormatter<'_> {
if any_prerelease {
// A pre-release marker appeared in the version requirements.
if !allowed_prerelease(package, selector) {
if !selector.prerelease_strategy().allows(name) {
hints.insert(PubGrubHint::PreReleaseRequested {
package: package.clone(),
range: self.simplify_set(set, package).into_owned(),
@ -453,7 +446,7 @@ impl PubGrubReportFormatter<'_> {
})
{
// There are pre-release versions available for the package.
if !allowed_prerelease(package, selector) {
if !selector.prerelease_strategy().allows(name) {
hints.insert(PubGrubHint::PreReleaseAvailable {
package: package.clone(),
version: version.clone(),
@ -467,7 +460,6 @@ impl PubGrubReportFormatter<'_> {
let no_find_links =
index_locations.flat_index().peekable().peek().is_none();
if let PubGrubPackageInner::Package { name, .. } = &**package {
// Add hints due to the package being entirely unavailable.
match unavailable_packages.get(name) {
Some(UnavailablePackage::NoIndex) => {