I don't understand what this code is supposed to be doing, but it doesn't seem right.
When parsing an SDistType::Zip, parse_zip is called with "PKG-INFO":
|
SDistType::Zip => Self::parse_zip(path, "PKG-INFO"), |
All other code paths pass a different string that doesn't satisfy the conditions for this behavior.
parse_zip finds all the contained file paths that end with "PKG-INFO":
|
let metadata_files: Vec<_> = archive |
|
.file_names() |
|
.filter(|name| name.ends_with(metadata_file_suffix)) |
|
.map(ToString::to_string) |
|
.collect(); |
If there is one path ending with "PKG-INFO", it is used:
|
[metadata_file] => { |
|
let mut buf = Vec::new(); |
|
archive.by_name(metadata_file)?.read_to_end(&mut buf)?; |
|
Metadata::parse(&buf) |
|
} |
This seems right.
If there are two paths ending with "PKG-INFO" and either of them ends with ".egg-info/PKG-INFO", the first one is used:
|
[file1, file2] |
|
if file1.ends_with(".egg-info/PKG-INFO") |
|
|| file2.ends_with(".egg-info/PKG-INFO") => |
|
{ |
|
let mut buf = Vec::new(); |
|
archive.by_name(file1)?.read_to_end(&mut buf)?; |
|
Metadata::parse(&buf) |
|
} |
I don't understand in what cases there would be two paths that end with "PKG-INFO", but it seems like if the code is checking that one of them ends with ".egg-info/PKG-INFO", the path that gets used should be related to the result of that check. It also seems like there is a problem if both of the paths end with ".egg-info/PKG-INFO".
I don't understand what this code is supposed to be doing, but it doesn't seem right.
When parsing an
SDistType::Zip,parse_zipis called with"PKG-INFO":python-pkginfo-rs/src/distribution.rs
Line 154 in dc97929
parse_zipfinds all the contained file paths that end with"PKG-INFO":python-pkginfo-rs/src/distribution.rs
Lines 206 to 210 in dc97929
If there is one path ending with
"PKG-INFO", it is used:python-pkginfo-rs/src/distribution.rs
Lines 213 to 217 in dc97929
If there are two paths ending with
"PKG-INFO"and either of them ends with".egg-info/PKG-INFO", the first one is used:python-pkginfo-rs/src/distribution.rs
Lines 218 to 225 in dc97929
I don't understand in what cases there would be two paths that end with
"PKG-INFO", but it seems like if the code is checking that one of them ends with".egg-info/PKG-INFO", the path that gets used should be related to the result of that check. It also seems like there is a problem if both of the paths end with".egg-info/PKG-INFO".