Skip to main content

rscm_components/python/
mod.rs

1use pyo3::prelude::*;
2use pyo3::{pymodule, Bound, PyResult};
3
4use rscm_core::create_component_builder;
5use rscm_core::python::PyRustComponent;
6
7use crate::components::*;
8
9create_component_builder!(CO2ERFBuilder, CO2ERF, CO2ERFParameters);
10create_component_builder!(CarbonCycleBuilder, CarbonCycle, CarbonCycleParameters);
11create_component_builder!(
12    FourBoxOceanHeatUptakeBuilder,
13    FourBoxOceanHeatUptake,
14    FourBoxOceanHeatUptakeParameters
15);
16
17#[pymodule]
18pub fn components(m: &Bound<'_, PyModule>) -> PyResult<()> {
19    m.add_class::<CO2ERFBuilder>()?;
20    m.add_class::<CarbonCycleBuilder>()?;
21    m.add_class::<FourBoxOceanHeatUptakeBuilder>()?;
22    Ok(())
23}