working...

This commit is contained in:
Palash Tyagi
2024-11-09 21:57:28 +00:00
parent 8ae35d2981
commit b7bccf342d
5 changed files with 71 additions and 27 deletions

View File

@@ -3,6 +3,7 @@ use crate::download::requester::DQRequester;
use crate::download::requester::DQTimeseriesRequestArgs;
use crate::download::timeseries::DQTimeSeriesResponse;
use crate::download::timeseries::JPMaQSIndicator;
use rayon::prelude::*;
use std::error::Error;
const DEFAULT_JPMAQS_METRICS: [&str; 4] = ["value", "grading", "eop_lag", "mop_lag"];
@@ -111,13 +112,31 @@ impl JPMaQSDownload {
assert!(all_jpmaq_expressions(expressions.clone()));
let dqts_vec = self.get_expressions(expressions)?;
println!("Retrieved {} time series", dqts_vec.len());
// println!("Retrieved {} time series", -- sum[dqts_vec.iter().map(|dqts| dqts.len())]);
println!(
"Retrieved {} time series",
dqts_vec
.iter()
.map(|dqts| dqts.list_expressions().len())
.sum::<usize>()
);
let start = std::time::Instant::now();
let indicators = dqts_vec
.iter()
.flat_map(|dqts| dqts.get_timeseries_by_ticker())
.map(|tsv| JPMaQSIndicator::new(tsv))
.collect::<Result<Vec<JPMaQSIndicator>, Box<dyn Error>>>()?;
// let indicators = dqts_vec
// .iter()
// .flat_map(|dqts| dqts.get_timeseries_by_ticker())
// .map(|tsv| JPMaQSIndicator::new(tsv))
// .collect::<Result<Vec<JPMaQSIndicator>, Box<dyn Error>>>()?;
let indicators: Vec<_> = dqts_vec
.par_iter()
.flat_map(|dqts| {
dqts.get_timeseries_by_ticker()
.into_par_iter()
.filter_map(|tsv| JPMaQSIndicator::new(tsv).ok())
})
.collect();
println!(
"Converted time series to indicators in {:?}",
start.elapsed()