#![doc = include_str!("README.md")]
mod collator;
mod dataloader;
mod dataset;
mod iterator;
mod pool;
mod sampler;
use dataloader::PyDataloader;
use dataset::PyDatasetBase;
use iterator::PyDataloaderIter;
use pyo3::{exceptions::PyRuntimeError, prelude::*};
pub(crate) fn into_py_err(err: crate::error::Error) -> PyErr {
match err.downcast::<PyErr>() {
Ok(err) => *err,
Err(err) => PyRuntimeError::new_err(err.to_string()),
}
}
#[pymodule(gil_used = false)]
fn dataloader_rs(m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add_class::<PyDataloader>()?;
m.add_class::<PyDataloaderIter>()?;
m.add_class::<PyDatasetBase>()?;
m.add_function(wrap_pyfunction!(pool::keep_pools_alive, m)?)?;
Ok(())
}