use std::env;
use polars::prelude::{
DataFrame,
LazyFrame,
PolarsError,
IntoLazy
};
#[allow(dead_code)]
pub struct Helpers {
dataframe: DataFrame
}
pub enum ColumnNames {
Time,
Close
}
impl ColumnNames {
fn as_str(&self) -> String {
match self {
ColumnNames::Time => env::var("TIME_COLUMN_NAME").unwrap_or_else(|_| "time".to_string()),
ColumnNames::Close => env::var("CLOSE_COLUMN_NAME").unwrap_or_else(|_| "close".to_string()),
}
}
}
impl Helpers {
pub fn new(
dataframe: DataFrame
) -> Self {
Self {
dataframe
}
}
pub fn normalize_dataframe(
dataframe: DataFrame
) -> DataFrame {
let time_column_name: String = ColumnNames::Time.as_str();
let close_column_name: String = ColumnNames::Close.as_str();
let dataframe_normalized: DataFrame = dataframe
.select(vec![
time_column_name,
close_column_name
])
.unwrap();
dataframe_normalized
}
pub fn convert_dataframe_to_lazyframe(
dataframe: DataFrame
) -> Result<LazyFrame, PolarsError> {
Ok(dataframe.lazy())
}
}