1pub mod dictionary;
2pub mod segmenter;
3pub mod token;
4pub mod tokenizer;
5pub mod util;
6
7use pyo3::prelude::*;
8
9use crate::dictionary::{
10 PyDictionary, PyUserDictionary, build_dictionary, build_user_dictionary, load_dictionary,
11 load_user_dictionary,
12};
13use crate::segmenter::PySegmenter;
14use crate::token::PyToken;
15use crate::tokenizer::{PyTokenizer, PyTokenizerBuilder};
16
17#[pyfunction]
18pub fn version() -> String {
19 env!("CARGO_PKG_VERSION").to_string()
20}
21
22#[pymodule]
23fn lindera_py(module: &Bound<'_, PyModule>) -> PyResult<()> {
24 module.add_class::<PyToken>()?;
25 module.add_class::<PyDictionary>()?;
26 module.add_class::<PyUserDictionary>()?;
27 module.add_class::<PyTokenizerBuilder>()?;
28 module.add_class::<PyTokenizer>()?;
29 module.add_class::<PySegmenter>()?;
30
31 module.add_function(wrap_pyfunction!(build_dictionary, module)?)?;
32 module.add_function(wrap_pyfunction!(build_user_dictionary, module)?)?;
33 module.add_function(wrap_pyfunction!(load_dictionary, module)?)?;
34 module.add_function(wrap_pyfunction!(load_user_dictionary, module)?)?;
35
36 module.add_function(wrap_pyfunction!(version, module)?)?;
37 Ok(())
38}