1use pyo3::exceptions::PyRuntimeError;
2use pyo3::PyErr;
3use thiserror::Error;
4use tracing::error;
5
6#[derive(Error, Debug)]
7pub enum TypeError {
8 #[error("Error: {0}")]
9 Error(String),
10
11 #[error("Unknown provider: {0}")]
12 UnknownProviderError(String),
13
14 #[error("Unknown model: {0}")]
15 UnknownModelError(String),
16}
17
18impl From<TypeError> for PyErr {
19 fn from(err: TypeError) -> PyErr {
20 let msg = err.to_string();
21 error!("{}", msg);
22 PyRuntimeError::new_err(msg)
23 }
24}
25
26impl From<PyErr> for TypeError {
27 fn from(err: PyErr) -> Self {
28 TypeError::Error(err.to_string())
29 }
30}