From a361ccfbb356b3d7a434bf4566c822362b1bc0bf Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Thu, 14 Dec 2023 14:45:31 -0500 Subject: [PATCH] Remove additional metadata call in `source_dist.rs` (#652) --- crates/puffin-distribution/src/source_dist.rs | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/crates/puffin-distribution/src/source_dist.rs b/crates/puffin-distribution/src/source_dist.rs index eca5fb0a4..d3fe86076 100644 --- a/crates/puffin-distribution/src/source_dist.rs +++ b/crates/puffin-distribution/src/source_dist.rs @@ -357,22 +357,26 @@ impl<'a, T: BuildContext> SourceDistCachedBuilder<'a, T> { ); let file_metadata = fs_err::metadata(&path_source_dist.path)?; - // `modified()` is infallible on windows and unix (i.e., all platforms we support). + // `modified()` is infallible on Windows and Unix (i.e., all platforms we support). let modified = if file_metadata.is_file() { file_metadata.modified()? } else { - if path_source_dist.path.join("pyproject.toml").is_file() { - path_source_dist - .path - .join("pyproject.toml") - .metadata()? - .modified()? - } else if path_source_dist.path.join("setup.py").is_file() { - path_source_dist - .path - .join("setup.py") - .metadata()? - .modified()? + if let Some(metadata) = path_source_dist + .path + .join("pyproject.toml") + .metadata() + .ok() + .filter(std::fs::Metadata::is_file) + { + metadata.modified()? + } else if let Some(metadata) = path_source_dist + .path + .join("setup.py") + .metadata() + .ok() + .filter(std::fs::Metadata::is_file) + { + metadata.modified()? } else { return Err(SourceDistError::DirWithoutEntrypoint); }