use msyrs::download::jpmaqsdownload::{JPMaQSDownload, JPMaQSDownloadGetIndicatorArgs}; use msyrs::utils::dftools::is_quantamental_dataframe; fn main() { println!("Authentication to DataQuery API"); let mut jpamqs_download = JPMaQSDownload::default(); println!("Checking connection to DataQuery API"); jpamqs_download.check_connection().unwrap(); println!("Retrieving catalogue of tickers"); let start = std::time::Instant::now(); let tickers = jpamqs_download.get_catalogue().unwrap(); println!( "Retrieved catalogue with {} tickers in {:?}", tickers.len(), start.elapsed() ); let num_ticks = 100; let sel_tickers: Vec = tickers .iter() .take(num_ticks) .map(|s| s.to_string()) .collect(); // let mut df_deets = Vec::new(); println!("Retrieving indicators for {} tickers", sel_tickers.len()); // start = std::time::Instant::now(); // let all_metrics: Vec = ["value", "grading", "eop_lag", "mop_lag"] // .iter() // .map(|x| x.to_string()) // .collect(); // let res = jpamqs_download.save_indicators_as_csv( // JPMaQSDownloadGetIndicatorArgs { // tickers: sel_tickers.clone(), // metrics: all_metrics, // ..Default::default() // }, // "./data/", // ); // match res { // Ok(_) => println!( // "Saved indicators for {} tickers in {:?}", // sel_tickers.len(), // start.elapsed() // ), // Err(e) => println!("Error saving indicators: {:?}", e), // } let res_df = jpamqs_download .get_indicators_qdf(JPMaQSDownloadGetIndicatorArgs { tickers: sel_tickers.clone(), start_date: "2024-11-05".to_string(), ..Default::default() }) .unwrap(); println!( "Retrieved indicators for {} tickers in {:?}", sel_tickers.len(), start.elapsed() ); if !is_quantamental_dataframe(&res_df) { println!("DataFrame is not a quantamental DataFrame"); } else { println!("DataFrame is a quantamental DataFrame"); } }