From 3285ec6e2e85f2cc5faa49c2f48ebb4131e4ee46 Mon Sep 17 00:00:00 2001 From: Sander Willems Date: Thu, 3 Oct 2024 10:03:45 +0200 Subject: [PATCH] CHORE: added todos and changed unwraps to expects when known to not panic --- README.md | 3 +++ .../file_readers/tdf_blob_reader/tdf_blobs.rs | 4 +++- src/io/readers/metadata_reader.rs | 5 ++++- src/io/readers/quad_settings_reader.rs | 18 ++++++++++++++---- src/io/readers/spectrum_reader/tdf/dda.rs | 5 ++++- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5b0ffac..be2aef5 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,9 @@ TODO * Improve docs * Improve tests * Pase CompressionType1 +* Tarred file reader +* Clean up src (FrameReader, ...) +* Cleaner try_from conversions/readers * Make Path of TimsTOF data into special type * Single access point for all readers? * Few unchecked unwraps left diff --git a/src/io/readers/file_readers/tdf_blob_reader/tdf_blobs.rs b/src/io/readers/file_readers/tdf_blob_reader/tdf_blobs.rs index 12024c6..78c0c36 100644 --- a/src/io/readers/file_readers/tdf_blob_reader/tdf_blobs.rs +++ b/src/io/readers/file_readers/tdf_blob_reader/tdf_blobs.rs @@ -16,7 +16,9 @@ impl TdfBlob { pub fn get_all(&self) -> Vec { (0..self.len()) - .map(|index| self.get(index).unwrap()) + .map(|index| self.get(index).expect( + "When iterating over the length of a tdf blob, you cannot go out of bounds" + )) .collect() } diff --git a/src/io/readers/metadata_reader.rs b/src/io/readers/metadata_reader.rs index 8944001..cf29a9a 100644 --- a/src/io/readers/metadata_reader.rs +++ b/src/io/readers/metadata_reader.rs @@ -97,7 +97,10 @@ fn get_im_converter( ) -> Result { let scan_counts: Vec = tdf_sql_reader.read_column_from_table("NumScans", "Frames")?; - let scan_max_index = *scan_counts.iter().max().unwrap(); // SqlReader cannot return empty vecs, so always succeeds + let scan_max_index = *scan_counts + .iter() + .max() + .expect("SqlReader cannot return empty vecs, so there is always a max scan index"); let (im_min, im_max) = get_im_bounds(sql_metadata)?; Ok(Scan2ImConverter::from_boundaries( im_min, diff --git a/src/io/readers/quad_settings_reader.rs b/src/io/readers/quad_settings_reader.rs index eb67dfc..90aa4d3 100644 --- a/src/io/readers/quad_settings_reader.rs +++ b/src/io/readers/quad_settings_reader.rs @@ -37,7 +37,8 @@ impl QuadrupoleSettingsReader { .iter() .map(|x| x.window_group) .max() - .unwrap() as usize; // SqlReader cannot return empty vecs, so always succeeds + .expect("SqlReader cannot return empty vecs, so there is always a max window_group") + as usize; let quadrupole_settings = (0..window_group_count) .map(|window_group| { let mut quad = QuadrupoleSettings::default(); @@ -306,9 +307,18 @@ fn expand_window_settings( let window = window_group.window_group; let frame = window_group.frame; let group = &quadrupole_settings[window as usize - 1]; - let window_group_start = - group.scan_starts.iter().min().unwrap().clone(); // SqlReader cannot return empty vecs, so always succeeds - let window_group_end = group.scan_ends.iter().max().unwrap().clone(); // SqlReader cannot return empty vecs, so always succeeds + let window_group_start = group + .scan_starts + .iter() + .min() + .expect("SqlReader cannot return empty vecs, so there is always min window_group index") + .clone(); + let window_group_end = group + .scan_ends + .iter() + .max() + .expect("SqlReader cannot return empty vecs, so there is always max window_group index") + .clone(); for (sws, swe) in scan_range_subsplit(window_group_start, window_group_end, &strategy) { diff --git a/src/io/readers/spectrum_reader/tdf/dda.rs b/src/io/readers/spectrum_reader/tdf/dda.rs index 2434192..2e1e9c5 100644 --- a/src/io/readers/spectrum_reader/tdf/dda.rs +++ b/src/io/readers/spectrum_reader/tdf/dda.rs @@ -30,7 +30,10 @@ impl DDARawSpectrumReader { let pasef_precursors = &pasef_frames.iter().map(|x| x.precursor).collect(); let order: Vec = argsort(&pasef_precursors); - let max_precursor = pasef_precursors.iter().max().unwrap(); // SqlReader cannot return empty vecs, so always succeeds + let max_precursor = pasef_precursors + .iter() + .max() + .expect("SqlReader cannot return empty vecs, so there is always a max precursor index"); let mut offsets: Vec = Vec::with_capacity(max_precursor + 1); offsets.push(0); for (offset, &index) in order.iter().enumerate().take(order.len() - 1) {