Add a warn_user_once! macro (#442)

Closes https://github.com/astral-sh/puffin/issues/429.
This commit is contained in:
Charlie Marsh 2023-11-16 18:34:06 -08:00 committed by GitHub
parent 25fcee0d9f
commit 2094680cdd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 68 additions and 13 deletions

View file

@ -5,6 +5,7 @@ use tracing::warn;
use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl};
use puffin_cache::CanonicalUrl;
use puffin_macros::warn_once;
use puffin_normalize::{ExtraName, PackageName};
use crate::pubgrub::specifier::PubGrubSpecifier;
@ -30,8 +31,7 @@ impl PubGrubDependencies {
for requirement in requirements {
// Avoid self-dependencies.
if source.is_some_and(|source| source == &requirement.name) {
// TODO(konstin): Warn only once here
warn!("{} depends on itself", requirement.name);
warn_once!("{} has a dependency on itself", requirement.name);
continue;
}
@ -78,8 +78,7 @@ impl PubGrubDependencies {
for constraint in constraints {
// Avoid self-dependencies.
if source.is_some_and(|source| source == &constraint.name) {
// TODO(konstin): Warn only once here
warn!("{} depends on itself", constraint.name);
warn_once!("{} has a dependency on itself", constraint.name);
continue;
}

View file

@ -8,6 +8,7 @@ use tracing::warn;
use distribution_filename::{SourceDistFilename, WheelFilename};
use pep440_rs::Version;
use platform_tags::{TagPriority, Tags};
use puffin_macros::warn_once;
use puffin_normalize::PackageName;
use pypi_types::{SimpleJson, Yanked};
@ -55,10 +56,10 @@ impl VersionMap {
continue;
}
None => {
// TODO(konstin): Implement and use `warn_once` here.
warn!(
warn_once!(
"{} is missing an upload date, but user provided {}",
file.filename, exclude_newer,
file.filename,
exclude_newer,
);
continue;
}