Making error handling more comprehensive.

[?]
Jul 9, 2021, 12:56 PM
UUD3CJZLSTAVLMIXIWE4CHN5HQSFM6K3DCPWECJMKGXDOROK4G4AC

Dependencies

  • [2] A6ZAYJNB Debugging DataSelector
  • [3] GUXZCEWW Added Country enum.
  • [4] CUADTSHQ Save csv data as multiple files.
  • [5] TTR5IFSG Working on building generic TSSpec.
  • [6] SAHJYVNB Removed checking functionality.
  • [7] 2SABVMY3 Finished into_json() functionality.
  • [8] 77SIQZ3E Separating out spec generation.
  • [9] JTX5OHWH Added USA CPI.
  • [10] LVMGQJGH Finished framework for checking series specifications with data.
  • [*] 4MG5JFXT First record.

Change contents

  • replacement in src/main.rs at line 16
    [3.9637][2.95:274]()
    println!("{}", DataSelector::from_file("series_selector.keytree")
    .resume_into_data_spec(Country::UnitedKingdom, DataType::Inf)
    .unwrap()
    .keytree());
    [3.9637]
    [3.1753]
    // DataSpec::from_file("source_data.keytree").write(&root_dir);
    // let series_obs = Fred::series_observations("NORURTOTADSMEI").unwrap();
    // let () = series_obs;
    // Get series_spec using series_id
    let series_spec = SeriesSpec::from_series_id("NORURTOTADSMEI", "source_data.keytree").unwrap();
  • replacement in src/lib.rs at line 40
    [3.10580][2.1197:1288]()
    //! println!("{}", DataSpec::from_selector(`series_selector.keytree`).unwrap().keytree());
    [3.10580]
    [3.4836]
    //! println!("{}", DataSelector::from_file("series_selector.keytree")
    //! .into_data_spec()
    //! .unwrap()
    //! .keytree());
  • replacement in src/lib.rs at line 90
    [3.2060][3.2060:2140]()
    //! let data_spec = DataSpec::from_file("checked_data.keytree").into_indexed();
    [3.2060]
    [3.2140]
    //! let data_spec = DataSpec::from_file("source_data.keytree").into_indexed();
  • replacement in src/lib.rs at line 388
    [3.5971][3.5971:6075]()
    pub fn from_file(path: &str) -> Self {
    let source_spec = fs::read_to_string(path).unwrap();
    [3.5971]
    [3.6075]
    pub fn from_file(path: &str) -> Result<Self, Error> {
    let source_spec = match fs::read_to_string(path) {
    Ok(ss) => ss,
    Err(err) => { return Err(failed_to_read_file(&err.to_string())) },
    };
  • replacement in src/lib.rs at line 394
    [3.6131][3.6131:6171]()
    kt.to_ref().try_into().unwrap()
    [3.6131]
    [3.6171]
    kt.to_ref().try_into().map_err(|err: keytree::error::Error| keytree_error(&err.to_string()))
  • replacement in src/lib.rs at line 406
    [3.6545][3.6545:6750]()
    for (series_id, _) in &self.reverse {
    let series_spec = self.get_series_spec(&series_id);
    series_spec.write_data(root_path);
    series_spec.write_meta(root_path);
    [3.6545]
    [3.6750]
    for (_, series_specs) in &self.map {
    for series_spec in series_specs {
    series_spec.write_data(root_path);
    series_spec.write_meta(root_path);
    }
  • replacement in src/lib.rs at line 440
    [3.7658][3.7658:7822]()
    for (series_id, _) in &self.reverse {
    let series_spec = self.get_series_spec(series_id);
    kt.push_keytree(1, series_spec.keytree());
    [3.7658]
    [3.7822]
    for (_, series_specs) in &self.map {
    for series_spec in series_specs {
    kt.push_keytree(1, series_spec.keytree());
    }
  • edit in src/lib.rs at line 463
    [3.8091]
    [3.8091]
    /// Return `Self` given a `series_id`.
    pub fn from_series_id(series_id: &str, root_path: &str) -> Result<Self, Error> {
    let sid = SeriesId::from_str(series_id).unwrap();
    let data_spec = DataSpec::from_file(root_path)?;
    let key = match data_spec.reverse.get(&sid) {
    Some(key) => key,
    None => { return Err(series_id_not_in_dataspec(&series_id.to_string())) },
    };
    match data_spec.map.get(&key) {
    Some(series_specs) => {
    Ok(
    series_specs.iter()
    .find(|series_spec| series_spec.series_id == sid)
    .unwrap()
    .clone()
    )
    },
    None => unreachable!(),
    }
    }
  • edit in src/lib.rs at line 526
    [3.9223]
    [3.9223]