use pyo3::prelude::*;
mod callback;
mod config;
mod config_path;
mod config_source;
mod config_store;
mod core;
mod defaults;
mod defaults_list;
mod env;
mod glob;
mod interpolation;
mod job;
mod job_runner;
mod launcher;
mod merge;
mod omegaconf;
mod override_types;
mod package;
mod parser;
mod search_path;
mod sweep;
mod sweeper;
mod utils;
mod validation;
#[pymodule]
fn lerna(_py: Python, m: &Bound<PyModule>) -> PyResult<()> {
m.add_class::<core::PyObjectType>()?;
m.add_class::<override_types::PyQuote>()?;
m.add_class::<override_types::PyQuotedString>()?;
m.add_class::<override_types::PyOverrideType>()?;
m.add_class::<override_types::PyValueType>()?;
m.add_class::<override_types::PyKey>()?;
m.add_class::<parser::PyOverride>()?;
m.add_class::<parser::PyOverrideParser>()?;
defaults::register(m)?;
glob::register(m)?;
config::register(m)?;
sweep::register(m)?;
defaults_list::register(m)?;
validation::register(m)?;
job::register(m)?;
interpolation::register(m)?;
package::register(m)?;
merge::register(m)?;
search_path::register(m)?;
env::register(m)?;
config_store::register(m)?;
job_runner::register(m)?;
m.add_function(wrap_pyfunction!(utils::escape_special_characters, m)?)?;
m.add_function(wrap_pyfunction!(utils::unescape_string, m)?)?;
m.add_function(wrap_pyfunction!(utils::is_valid_key, m)?)?;
m.add_function(wrap_pyfunction!(utils::split_key, m)?)?;
m.add_function(wrap_pyfunction!(utils::join_key, m)?)?;
m.add_function(wrap_pyfunction!(utils::normalize_file_name, m)?)?;
m.add_function(wrap_pyfunction!(utils::get_valid_filename, m)?)?;
m.add_function(wrap_pyfunction!(utils::sanitize_path_component, m)?)?;
m.add_function(wrap_pyfunction!(config_path::normalize_config_path, m)?)?;
m.add_function(wrap_pyfunction!(config_path::get_parent_path, m)?)?;
m.add_function(wrap_pyfunction!(config_path::get_basename, m)?)?;
m.add_function(wrap_pyfunction!(config_path::join_config_paths, m)?)?;
m.add_function(wrap_pyfunction!(config_path::is_absolute_config_path, m)?)?;
m.add_function(wrap_pyfunction!(config_path::strip_scheme, m)?)?;
m.add_function(wrap_pyfunction!(config_path::get_scheme, m)?)?;
m.add_function(wrap_pyfunction!(config_path::is_valid_group_name, m)?)?;
m.add_function(wrap_pyfunction!(config_path::is_valid_config_name, m)?)?;
omegaconf::register(m)?;
callback::register(m)?;
config_source::register(m)?;
launcher::register(m)?;
sweeper::register(m)?;
Ok(())
}