use super::*;
use pyo3::prelude::*;
#[pyfunction(name = "force_load_blas_lapack")]
fn force_load_blas_lapack_py() {
#[cfg(sdp_pyblas)]
crate::python::pyblas::force_load();
}
#[pyfunction(name = "get_infinity")]
fn get_infinity_py() -> f64 {
crate::get_infinity()
}
#[pyfunction(name = "set_infinity")]
fn set_infinity_py(v: f64) {
crate::set_infinity(v);
}
#[pyfunction(name = "default_infinity")]
fn default_infinity_py() {
crate::default_infinity();
}
#[pyfunction(name = "buildinfo")]
fn buildinfo_py() {
crate::buildinfo();
}
#[pymodule]
fn clarabel(_py: Python, m: &Bound<PyModule>) -> PyResult<()> {
m.add("__version__", env!("CARGO_PKG_VERSION"))?;
m.add_function(wrap_pyfunction!(force_load_blas_lapack_py, m)?)
.unwrap();
m.add_function(wrap_pyfunction!(get_infinity_py, m)?)
.unwrap();
m.add_function(wrap_pyfunction!(set_infinity_py, m)?)
.unwrap();
m.add_function(wrap_pyfunction!(default_infinity_py, m)?)
.unwrap();
m.add_function(wrap_pyfunction!(buildinfo_py, m)?).unwrap();
m.add_function(wrap_pyfunction!(load_from_file_py, m)?)
.unwrap();
m.add_class::<PyZeroConeT>()?;
m.add_class::<PyNonnegativeConeT>()?;
m.add_class::<PySecondOrderConeT>()?;
m.add_class::<PyExponentialConeT>()?;
m.add_class::<PyPowerConeT>()?;
m.add_class::<PyGenPowerConeT>()?;
m.add_class::<PyPSDTriangleConeT>()?;
m.add_class::<PySolverStatus>()?;
m.add_class::<PyDefaultSolution>()?;
m.add_class::<PyDefaultSettings>()?;
m.add_class::<PyDefaultInfo>()?;
m.add_class::<PyLinearSolverInfo>()?;
m.add_class::<PyDefaultSolver>()?;
Ok(())
}