Filter out yanked files (#413)

Implement two behaviors for yanked versions:

* During `pip-compile`, yanked versions are filtered out entirely, we
currently treat them is if they don't exist. This is leads to confusing
error messages because a version that does exist seems to have suddenly
disappeared.
* During `pip-sync`, we warn when we fetch a remote distribution and it
has been yanked. We currently don't warn on cached or installed
distributions that have been yanked.
This commit is contained in:
konsti 2023-11-13 21:58:50 +01:00 committed by GitHub
parent 28ec4e79f0
commit bacf1dc911
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 158 additions and 16 deletions

View file

@ -1,7 +1,7 @@
pub use direct_url::{ArchiveInfo, DirectUrl, VcsInfo, VcsKind};
pub use lenient_requirement::LenientVersionSpecifiers;
pub use metadata::{Error, Metadata21};
pub use simple_json::{File, SimpleJson};
pub use simple_json::{File, SimpleJson, Yanked};
mod direct_url;
mod lenient_requirement;

View file

@ -66,6 +66,15 @@ pub enum Yanked {
Reason(String),
}
impl Yanked {
pub fn is_yanked(&self) -> bool {
match self {
Yanked::Bool(is_yanked) => *is_yanked,
Yanked::Reason(_) => true,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Hashes {
pub sha256: String,