use std::path::PathBuf;
use nautilus_core::time::get_atomic_clock_realtime;
use nautilus_model::identifiers::ClientId;
use pyo3::prelude::*;
use crate::{data::DatabentoDataClient, factories::DatabentoDataClientFactory};
#[cfg(feature = "python")]
#[pymethods]
impl DatabentoDataClientFactory {
#[new]
pub fn py_new() -> Self {
Self
}
#[staticmethod]
#[pyo3(signature = (client_id, api_key, publishers_filepath, use_exchange_as_venue = true, bars_timestamp_on_close = true))]
pub fn py_create_live_data_client(
client_id: ClientId,
api_key: String,
publishers_filepath: PathBuf,
use_exchange_as_venue: bool,
bars_timestamp_on_close: bool,
) -> PyResult<DatabentoDataClient> {
DatabentoDataClientFactory::create_live_data_client(
client_id,
api_key,
publishers_filepath,
use_exchange_as_venue,
bars_timestamp_on_close,
get_atomic_clock_realtime(),
)
.map_err(|e| PyErr::new::<pyo3::exceptions::PyRuntimeError, _>(format!("{e}")))
}
}