diff --git a/parser/src/datasets/address/cohort.rs b/parser/src/datasets/address/cohort.rs index 633137799..d88020df7 100644 --- a/parser/src/datasets/address/cohort.rs +++ b/parser/src/datasets/address/cohort.rs @@ -27,22 +27,14 @@ pub struct CohortDataset { impl CohortDataset { pub fn import(parent_path: &str, id: AddressCohortId) -> color_eyre::Result { - let name = id.as_name(); + let name = id.as_name().map(|s| s.to_owned()); let split = id.as_split(); - let folder_path = { - if let Some(name) = name { - format!("{parent_path}/{name}") - } else { - parent_path.to_owned() - } - }; - let f = |s: &str| { - if let Some(name) = name { - format!("{parent_path}/{s}/{name}") + if let Some(name) = &name { + Some(format!("{s}/{name}")) } else { - format!("{parent_path}/{s}") + Some(s.to_owned()) } }; @@ -51,11 +43,11 @@ impl CohortDataset { split, - metadata: MetadataDataset::import(&folder_path)?, - all: SubDataset::import(&folder_path)?, - illiquid: SubDataset::import(&f("illiquid"))?, - liquid: SubDataset::import(&f("liquid"))?, - highly_liquid: SubDataset::import(&f("highly_liquid"))?, + metadata: MetadataDataset::import(parent_path, &name)?, + all: SubDataset::import(parent_path, &name)?, + illiquid: SubDataset::import(parent_path, &f("illiquid"))?, + liquid: SubDataset::import(parent_path, &f("liquid"))?, + highly_liquid: SubDataset::import(parent_path, &f("highly_liquid"))?, }; s.min_initial_states diff --git a/parser/src/datasets/address/cohort_metadata.rs b/parser/src/datasets/address/cohort_metadata.rs index 46e43772f..718402b64 100644 --- a/parser/src/datasets/address/cohort_metadata.rs +++ b/parser/src/datasets/address/cohort_metadata.rs @@ -18,8 +18,14 @@ pub struct MetadataDataset { } impl MetadataDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/subs/capitalization.rs b/parser/src/datasets/subs/capitalization.rs index dc7c1c036..0eed9e7e7 100644 --- a/parser/src/datasets/subs/capitalization.rs +++ b/parser/src/datasets/subs/capitalization.rs @@ -23,8 +23,14 @@ pub struct CapitalizationDataset { } impl CapitalizationDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), @@ -32,7 +38,13 @@ impl CapitalizationDataset { realized_cap: BiMap::new_bin(1, &f("realized_cap")), realized_cap_1m_net_change: BiMap::new_bin(1, &f("realized_cap_1m_net_change")), realized_price: BiMap::new_bin(1, &f("realized_price")), - realized_price_ratio: RatioDataset::import(parent_path, "realized_price")?, + realized_price_ratio: RatioDataset::import( + parent_path, + &format!( + "{}realized_price", + name.as_ref().map_or("".to_owned(), |n| format!("{n}-")) + ), + )?, }; s.min_initial_states diff --git a/parser/src/datasets/subs/input.rs b/parser/src/datasets/subs/input.rs index 662862322..cd9478f68 100644 --- a/parser/src/datasets/subs/input.rs +++ b/parser/src/datasets/subs/input.rs @@ -18,8 +18,14 @@ pub struct InputSubDataset { } impl InputSubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/subs/mod.rs b/parser/src/datasets/subs/mod.rs index 860b3e09b..9b60d4232 100644 --- a/parser/src/datasets/subs/mod.rs +++ b/parser/src/datasets/subs/mod.rs @@ -37,16 +37,16 @@ pub struct SubDataset { } impl SubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { let s = Self { - capitalization: CapitalizationDataset::import(parent_path)?, - input: InputSubDataset::import(parent_path)?, + capitalization: CapitalizationDataset::import(parent_path, name)?, + input: InputSubDataset::import(parent_path, name)?, // output: OutputSubDataset::import(parent_path)?, - price_paid: PricePaidSubDataset::import(parent_path)?, - realized: RealizedSubDataset::import(parent_path)?, - supply: SupplySubDataset::import(parent_path)?, - unrealized: UnrealizedSubDataset::import(parent_path)?, - utxo: UTXOSubDataset::import(parent_path)?, + price_paid: PricePaidSubDataset::import(parent_path, name)?, + realized: RealizedSubDataset::import(parent_path, name)?, + supply: SupplySubDataset::import(parent_path, name)?, + unrealized: UnrealizedSubDataset::import(parent_path, name)?, + utxo: UTXOSubDataset::import(parent_path, name)?, }; Ok(s) diff --git a/parser/src/datasets/subs/price_paid.rs b/parser/src/datasets/subs/price_paid.rs index 8c2292ad1..7ec003093 100644 --- a/parser/src/datasets/subs/price_paid.rs +++ b/parser/src/datasets/subs/price_paid.rs @@ -34,8 +34,14 @@ pub struct PricePaidSubDataset { } impl PricePaidSubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/subs/realized.rs b/parser/src/datasets/subs/realized.rs index 68c6ae119..65808c072 100644 --- a/parser/src/datasets/subs/realized.rs +++ b/parser/src/datasets/subs/realized.rs @@ -29,8 +29,14 @@ pub struct RealizedSubDataset { } impl RealizedSubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/subs/supply.rs b/parser/src/datasets/subs/supply.rs index 975d7596b..2e871d36d 100644 --- a/parser/src/datasets/subs/supply.rs +++ b/parser/src/datasets/subs/supply.rs @@ -20,8 +20,14 @@ pub struct SupplySubDataset { } impl SupplySubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/subs/unrealized.rs b/parser/src/datasets/subs/unrealized.rs index eb32c81b1..92661e5ac 100644 --- a/parser/src/datasets/subs/unrealized.rs +++ b/parser/src/datasets/subs/unrealized.rs @@ -27,8 +27,14 @@ pub struct UnrealizedSubDataset { } impl UnrealizedSubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/subs/utxo.rs b/parser/src/datasets/subs/utxo.rs index eaced1ffa..5139a1a20 100644 --- a/parser/src/datasets/subs/utxo.rs +++ b/parser/src/datasets/subs/utxo.rs @@ -15,8 +15,14 @@ pub struct UTXOSubDataset { } impl UTXOSubDataset { - pub fn import(parent_path: &str) -> color_eyre::Result { - let f = |s: &str| format!("{parent_path}/{s}"); + pub fn import(parent_path: &str, name: &Option) -> color_eyre::Result { + let f = |s: &str| { + if let Some(name) = name { + format!("{parent_path}/{name}/{s}") + } else { + format!("{parent_path}/{s}") + } + }; let mut s = Self { min_initial_states: MinInitialStates::default(), diff --git a/parser/src/datasets/utxo/dataset.rs b/parser/src/datasets/utxo/dataset.rs index 53b99403a..cb5706ee4 100644 --- a/parser/src/datasets/utxo/dataset.rs +++ b/parser/src/datasets/utxo/dataset.rs @@ -20,14 +20,12 @@ pub struct UTXODataset { impl UTXODataset { pub fn import(parent_path: &str, id: UTXOCohortId) -> color_eyre::Result { - let name = id.name(); - - let folder_path = format!("{parent_path}/{name}"); + let name = id.name().to_owned(); let mut s = Self { min_initial_states: MinInitialStates::default(), id, - subs: SubDataset::import(&folder_path)?, + subs: SubDataset::import(parent_path, &Some(name))?, }; s.min_initial_states