finance-query 3.0.0

A Rust library for querying financial data
Documentation
// @generated by `cargo soothfast docs gen-tests`
// source: docs/library/dataframe.md line 552
#[cfg(feature = "dataframe")]
mod soothfast_capture_body {
    use finance_query::{Interval, Ticker, TimeRange};
    use polars::prelude::*;

    #[tokio::main]
    pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
        let aapl = Ticker::new("AAPL").await?;
        let msft = Ticker::new("MSFT").await?;
        let nvda = Ticker::new("NVDA").await?;

        let aapl_chart = aapl.chart(Interval::OneDay, TimeRange::OneMonth).await?;
        let msft_chart = msft.chart(Interval::OneDay, TimeRange::OneMonth).await?;
        let nvda_chart = nvda.chart(Interval::OneDay, TimeRange::OneMonth).await?;

        // Convert to DataFrames
        let mut aapl_df = aapl_chart.to_dataframe()?;
        let mut msft_df = msft_chart.to_dataframe()?;
        let mut nvda_df = nvda_chart.to_dataframe()?;

        // Add symbol column to each
        aapl_df.with_column(Series::new("symbol".into(), vec!["AAPL"; aapl_df.height()]).into())?;
        msft_df.with_column(Series::new("symbol".into(), vec!["MSFT"; msft_df.height()]).into())?;
        nvda_df.with_column(Series::new("symbol".into(), vec!["NVDA"; nvda_df.height()]).into())?;

        // Combine into single DataFrame
        let combined = concat(
            [aapl_df.lazy(), msft_df.lazy(), nvda_df.lazy()],
            UnionArgs::default(),
        )?
        .collect()?;

        println!("Combined data: {} rows", combined.height());
        Ok(())
    }
}
#[cfg(feature = "dataframe")]
pub use soothfast_capture_body::main;

#[cfg(not(feature = "dataframe"))]
fn main() {}