mod analytic;
mod fee;
use pyo3::create_exception;
use pyo3::prelude::*;
use crate::analytic::AnalyticBeamError;
use crate::fee::{FEEBeamError, InitFEEBeamError};
#[pymodule]
fn mwa_hyperbeam(py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
py.import_bound("numpy")?;
m.add_class::<fee::FEEBeam>()?;
m.add_class::<analytic::AnalyticBeam>()?;
m.add("HyperbeamError", py.get_type_bound::<HyperbeamError>())?;
m.add("__version__", env!("CARGO_PKG_VERSION"))?;
Ok(())
}
create_exception!(mwa_hyperbeam, HyperbeamError, pyo3::exceptions::PyException);
impl std::convert::From<FEEBeamError> for PyErr {
fn from(err: FEEBeamError) -> PyErr {
HyperbeamError::new_err(err.to_string())
}
}
impl std::convert::From<InitFEEBeamError> for PyErr {
fn from(err: InitFEEBeamError) -> PyErr {
HyperbeamError::new_err(err.to_string())
}
}
impl std::convert::From<AnalyticBeamError> for PyErr {
fn from(err: AnalyticBeamError) -> PyErr {
HyperbeamError::new_err(err.to_string())
}
}