mod context;
mod dictconfig;
mod listconfig;
mod omegaconf;
pub use context::{PyFlagOverride, PyOpenDict, PyReadWrite};
pub use dictconfig::PyDictConfig;
pub use listconfig::PyListConfig;
pub use omegaconf::{PyConfigValue, PyOmegaConf};
use pyo3::create_exception;
use pyo3::prelude::*;
create_exception!(
omegaconf,
MissingMandatoryValue,
pyo3::exceptions::PyException
);
#[pyclass(name = "Container", subclass)]
pub struct PyContainer {}
#[pymethods]
impl PyContainer {
#[new]
fn new() -> Self {
Self {}
}
}
pub fn register(m: &Bound<PyModule>) -> PyResult<()> {
let submod = PyModule::new(m.py(), "omegaconf")?;
submod.add_class::<PyContainer>()?;
submod.add_class::<PyDictConfig>()?;
submod.add_class::<PyListConfig>()?;
submod.add_class::<PyOmegaConf>()?;
submod.add_class::<PyConfigValue>()?;
submod.add_class::<PyOpenDict>()?;
submod.add_class::<PyReadWrite>()?;
submod.add_class::<PyFlagOverride>()?;
submod.add("MISSING", "???")?;
submod.add(
"MissingMandatoryValue",
m.py().get_type::<MissingMandatoryValue>(),
)?;
m.add_submodule(&submod)?;
m.add_class::<PyContainer>()?;
m.add_class::<PyDictConfig>()?;
m.add_class::<PyListConfig>()?;
m.add_class::<PyOmegaConf>()?;
m.add_class::<PyOpenDict>()?;
m.add_class::<PyReadWrite>()?;
m.add_class::<PyFlagOverride>()?;
m.add("MISSING", "???")?;
m.add(
"MissingMandatoryValue",
m.py().get_type::<MissingMandatoryValue>(),
)?;
Ok(())
}