Added class field to GraphicJson.

[?]
CrEcTsRjb1hHQjHuumqRfqdbVV4X58iLEubi4noaDPFa
Jul 23, 2021, 12:37 AM
PQKGZNQGSRWMV3D6AUUBH3JUICKXXKDV4OLLDUM3YP5ESORBYKLAC

Dependencies

  • [2] EHEK63WA Cleaning up ts.rs.
  • [3] E2T2A74Y Added class field to GraphicSpec.
  • [4] 5B2HBV3J Completed first try at ts Json data-structure.
  • [5] XI5ALEH6 Take advantage of keytree FromStr functionality.
  • [6] GQVS55HI Finished generate_ts_spec() function.
  • [7] XPXYFEZM Finished code for building TSJson struct.
  • [8] 2CCG6KUP Redo time-series spec.
  • [9] TTR5IFSG Working on building generic TSSpec.
  • [10] TSY4YBBZ Changed ts Spec datastructures to new format.
  • [11] BB2T6X3X Improved documentation.
  • [12] YJXKWWM6 Added max() min() n GraphicJson and cleaned up serialization
  • [13] SPSFTMLR Completed loading ts_data from specification.
  • [14] K4CH53V4 Added GPL2 license, included missing source files.
  • [*] GUXZCEWW Added Country enum.
  • [*] 4MG5JFXT First record.

Change contents

  • replacement in src/ts.rs at line 8
    [4.7678][4.52:90](),[4.90][4.80:113](),[4.80][4.80:113]()
    use serde::{ Serialize, Serializer };
    use serde::ser::SerializeStruct;
    [4.7678]
    [4.7700]
    use serde::Serialize;
  • replacement in src/ts.rs at line 15
    [4.7908][4.226:313]()
    use crate::{ DataType, DateRange, MonthlyDate, SeriesId, SeriesMetaData, SeriesSpec };
    [4.7908]
    [4.1114]
    use crate::{ DataType, MonthlyDate, SeriesId, SeriesMetaData, SeriesSpec };
  • edit in src/ts.rs at line 65
    [4.321]
    [4.93]
    class: GraphicClass,
  • replacement in src/ts.rs at line 140
    [2.1230][2.1230:1308]()
    for (i, (series_id, series_spec)) in seriess.iter().enumerate() {
    [2.1230]
    [2.1308]
    for (i, (series_id, _)) in seriess.iter().enumerate() {
  • edit in src/ts.rs at line 171
    [4.1330]
    [3.32]
    let class = match class_opt {
    None => GraphicClass::Source,
    Some(GraphicClass::Cleaned) => GraphicClass::Cleaned,
    Some(GraphicClass::Collated) => GraphicClass::Collated,
    Some(GraphicClass::Source) => GraphicClass::Source,
    };
    // Source graphics are expected to have one series (otherwise meta will overflow
    // box).
    if let GraphicClass::Source = class { graphic_spec.assert_has_one_series()? };
  • edit in src/ts.rs at line 191
    [3.480]
    [4.1524]
  • edit in src/ts.rs at line 193
    [4.1577]
    [4.1577]
    class: class,
  • replacement in src/ts.rs at line 444
    [3.535][3.535:552]()
    #[derive(Debug)]
    [3.535]
    [3.552]
    #[derive(Debug, Serialize)]
  • replacement in src/ts.rs at line 461
    [3.949][3.949:1004]()
    "collated" => Ok(GraphicClass::Collated),
    [3.949]
    [3.1004]
    "collation" => Ok(GraphicClass::Collated),
  • replacement in src/ts.rs at line 472
    [3.1348][3.1348:1399]()
    GraphicClass::Collated => "collated",
    [3.1348]
    [3.1399]
    GraphicClass::Collated => "collation",
  • edit in src/ts.rs at line 495
    [4.3601]
    [4.10725]
    }
    impl GraphicSpec {
    pub (crate) fn assert_has_one_series(&self) -> Result<(), Error> {
    if self.series_ids.len() != 1 {
    Err(expected_graphic_has_one_series(
    file!(),
    line!(),
    ))
    } else {
    Ok(())
    }
    }
  • replacement in src/main.rs at line 60
    [4.3012][2.3434:3496]()
    ts_spec.into_json(&root_dir).unwrap().into_ts_data();
    [4.3012]
    [4.11459]
    ts_spec.into_json(&root_dir).unwrap().into_ts_data().unwrap();
  • edit in src/lib.rs at line 207
    [4.4191][4.4283:4297](),[4.4283][4.4283:4297]()
    TextSpec,
  • edit in src/error.rs at line 26
    [4.15073]
    [4.15073]
    ))
    }
    pub fn expected_graphic_has_one_series(
    code_file: &str,
    code_line: u32) -> Error
    {
    Error(format!(
    "[ui_date:02:{}:{}] Expected source graphic to have exactly one series.",
    code_file,
    code_line,
  • replacement in src/error.rs at line 49
    [4.15287][4.15287:15364]()
    "[ui_data:02:{}:{}] Expected regular time-series from [{} {} {}].",
    [4.15287]
    [4.15364]
    "[ui_data:03:{}:{}] Expected regular time-series from [{} {} {}].",
  • replacement in src/error.rs at line 64
    [4.9321][4.9321:9364]()
    "[ui_data:20:{}:{}] External: {}",
    [4.9321]
    [4.9364]
    "[ui_data:04:{}:{}] External: {}",
  • replacement in src/error.rs at line 78
    [4.15585][4.15585:15642]()
    "[ui_data:03:{}]{}] Fred request failed: [{}].",
    [4.15585]
    [4.15642]
    "[ui_data:05:{}]{}] Fred request failed: [{}].",
  • replacement in src/error.rs at line 92
    [4.15822][4.15822:15890]()
    "[ui_data::04:{}:{}] Failed to create dir with msg: [{}].",
    [4.15822]
    [4.15890]
    "[ui_data::06:{}:{}] Failed to create dir with msg: [{}].",
  • replacement in src/error.rs at line 106
    [4.16074][4.16074:16130]()
    "[ui_data:05:{}:{}] Failed to read file [{}].",
    [4.16074]
    [4.16130]
    "[ui_data:07:{}:{}] Failed to read file [{}].",
  • replacement in src/error.rs at line 119
    [4.9762][2.3569:3648]()
    "[ui_data:06:{}:{}] Could not find graphic reference [{}] in series.",
    [4.9762]
    [4.9841]
    "[ui_data:08:{}:{}] Could not find graphic reference [{}] in series.",
  • replacement in src/error.rs at line 131
    [2.3756][2.3756:3815]()
    "[ui_data:07:{}:{}] Failed to serialize to json.",
    [2.3756]
    [2.3815]
    "[ui_data:09:{}:{}] Failed to serialize to json.",
  • replacement in src/error.rs at line 143
    [4.16321][4.16321:16378]()
    "[ui_data:06:{}:{}] Failed to write file [{}].",
    [4.16321]
    [4.16378]
    "[ui_data:10:{}:{}] Failed to write file [{}].",
  • replacement in src/error.rs at line 156
    [4.16538][4.16538:16580]()
    "[ui_data:07:{}:{}] File error.",
    [4.16538]
    [4.16580]
    "[ui_data:11:{}:{}] File error.",
  • replacement in src/error.rs at line 168
    [4.16737][4.16737:16783]()
    "ui_data:08:{}:{}] Fred error [{}].",
    [4.16737]
    [4.16783]
    "ui_data:12:{}:{}] Fred error [{}].",
  • replacement in src/error.rs at line 182
    [4.16987][4.16987:17049]()
    "[ui_data:09:{}:{}] Key [({}, {})] not in dataspec.",
    [4.16987]
    [4.17049]
    "[ui_data:13:{}:{}] Key [({}, {})] not in dataspec.",
  • replacement in src/error.rs at line 197
    [4.17245][4.17245:17293]()
    "[ui_data:10:{}:{}] Keytree error: {}",
    [4.17245]
    [4.17293]
    "[ui_data:14:{}:{}] Keytree error: {}",
  • replacement in src/error.rs at line 211
    [4.17464][4.17464:17537]()
    "[ui_data:11]{}:{}] Failed to parse datatype from string [{}].",
    [4.17464]
    [4.17537]
    "[ui_data:15:{}:{}] Failed to parse datatype from string [{}].",
  • replacement in src/error.rs at line 229
    [4.17798][4.17798:17880]()
    "[ui_data:12:{}:{}] [{} {} {}] Parse Fred value [{}] failed on line {}.",
    [4.17798]
    [4.17880]
    "[ui_data:16:{}:{}] [{} {} {}] Parse Fred value [{}] failed on line {}.",
  • replacement in src/error.rs at line 247
    [4.18120][4.18120:18189]()
    "[ui_data:13:{}:{}] Failed to parse date from string [{}].",
    [4.18120]
    [4.18189]
    "[ui_data:17:{}:{}] Failed to parse date from string [{}].",
  • replacement in src/error.rs at line 261
    [4.18360][4.18360:18434]()
    "[ui_data:14:{}:{}] Failed to parse timestamp from string [{}].",
    [4.18360]
    [4.18434]
    "[ui_data:18:{}:{}] Failed to parse timestamp from string [{}].",
  • replacement in src/error.rs at line 275
    [4.18606][4.18606:18681]()
    "[ui_data:15:{}:{}] Failed to parse transform1 from string [{}].",
    [4.18606]
    [4.18681]
    "[ui_data:19:{}:{}] Failed to parse transform1 from string [{}].",
  • replacement in src/error.rs at line 289
    [4.18853][4.18853:18928]()
    "[ui_data:16:{}:{}] Failed to parse transform2 from string [{}].",
    [4.18853]
    [4.18928]
    "[ui_data:20:{}:{}] Failed to parse transform2 from string [{}].",
  • replacement in src/error.rs at line 303
    [4.19117][4.19117:19178]()
    "[ui_data:17:{}:{}] SeriesId [{}] not in DataSpec.",
    [4.19117]
    [4.19178]
    "[ui_data:21:{}:{}] SeriesId [{}] not in DataSpec.",
  • replacement in src/error.rs at line 318
    [4.19389][4.19389:19499]()
    "[ui_data:18:{}:{}] Cannot access data because specification for series [{}] has error status [{}].",
    [4.19389]
    [4.19499]
    "[ui_data:22:{}:{}] Cannot access data because specification for series [{}] has error status [{}].",
  • replacement in src/error.rs at line 334
    [4.19722][4.19722:19777]()
    "[ui_data:19:{}:{}] Series [{} {}] is empty.",
    [4.19722]
    [4.19777]
    "[ui_data:23:{}:{}] Series [{} {}] is empty.",
  • replacement in src/error.rs at line 353
    [4.20049][4.20049:20143]()
    "[ui_data:20:{}:{}] Failed to parse time-series from csv [{} {} {}] with msg: [{}].",
    [4.20049]
    [4.20143]
    "[ui_data:24:{}:{}] Failed to parse time-series from csv [{} {} {}] with msg: [{}].",