#[cfg(feature = "python")]
use crate::bindings::python;
#[cfg(feature = "python")]
use crate::exporters::Templates;
#[cfg(feature = "python")]
use pyo3::prelude::*;
pub mod attribute;
pub mod datamodel;
pub mod error;
pub mod exporters;
#[cfg(not(target_arch = "wasm32"))]
pub mod git;
pub mod object;
pub mod option;
pub mod pipeline;
pub mod tree;
pub mod validation;
pub mod xmltype;
pub mod prelude {
pub use crate::datamodel::DataModel;
pub use crate::exporters::Templates;
pub use crate::validation::Validator;
}
pub mod json {
pub mod export;
pub mod import;
pub mod schema;
pub mod validation;
}
pub mod jsonld {
pub mod export;
pub mod schema;
}
pub(crate) mod markdown {
pub mod frontmatter;
pub(crate) mod parser;
pub(crate) mod position;
}
#[cfg(feature = "openai")]
pub mod llm {
pub mod extraction;
pub mod input;
}
pub mod bindings {
#[cfg(feature = "python")]
pub(crate) mod python;
#[cfg(feature = "wasm")]
pub(crate) mod wasm;
}
pub mod linkml {
pub mod export;
pub mod import;
pub mod schema;
}
#[cfg(feature = "python")]
#[pymodule(name = "mdmodels_core")]
fn mdmodels_core(m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add("__version__", env!("CARGO_PKG_VERSION"))?;
m.add("__all__", ["DataModel", "Templates"])?;
m.add_class::<python::DataModel>()?;
m.add_class::<Templates>()?;
Ok(())
}