#[cfg(feature = "dataframe")]
mod soothfast_capture_body {
use chrono::DateTime;
use finance_query::{Interval, Ticker, TimeRange};
use polars::prelude::*;
#[tokio::main]
pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
let ticker = Ticker::new("AAPL").await?;
let chart = ticker.chart(Interval::OneDay, TimeRange::OneYear).await?;
let df = chart.to_dataframe()?;
let dates: Vec<_> = df
.column("timestamp")?
.i64()?
.into_iter()
.map(|ts| ts.map(|t| DateTime::from_timestamp(t, 0).unwrap()))
.collect();
println!("{} rows", dates.len());
let start_ts = 1704067200i64; let df_filtered = df
.lazy()
.filter(col("timestamp").gt_eq(lit(start_ts)))
.collect()?;
println!("Rows since 2024-01-01: {}", df_filtered.height());
Ok(())
}
}
#[cfg(feature = "dataframe")]
pub use soothfast_capture_body::main;
#[cfg(not(feature = "dataframe"))]
fn main() {}