1pub mod dictionary;
2pub mod error;
3pub mod metadata;
4pub mod mode;
5pub mod schema;
6pub mod tokenizer;
7pub mod util;
8
9use pyo3::prelude::*;
10
11use crate::dictionary::{PyDictionary, PyUserDictionary};
12use crate::error::PyLinderaError;
13use crate::metadata::{PyCompressionAlgorithm, PyMetadata};
14use crate::mode::{PyMode, PyPenalty};
15use crate::schema::{PyFieldDefinition, PyFieldType, PySchema};
16use crate::tokenizer::{PyTokenizer, PyTokenizerBuilder};
17
18#[pyfunction]
19pub fn version() -> String {
20 env!("CARGO_PKG_VERSION").to_string()
21}
22
23#[pymodule]
24fn lindera(module: &Bound<'_, PyModule>) -> PyResult<()> {
25 module.add_class::<PyDictionary>()?;
26 module.add_class::<PyUserDictionary>()?;
27 module.add_class::<PyTokenizerBuilder>()?;
28 module.add_class::<PyTokenizer>()?;
29 module.add_class::<PyLinderaError>()?;
30 module.add_class::<PyMode>()?;
31 module.add_class::<PyPenalty>()?;
32 module.add_class::<PyMetadata>()?;
33 module.add_class::<PySchema>()?;
34 module.add_class::<PyFieldDefinition>()?;
35 module.add_class::<PyFieldType>()?;
36 module.add_class::<PyCompressionAlgorithm>()?;
37
38 module.add_function(wrap_pyfunction!(
40 crate::dictionary::build_dictionary,
41 module
42 )?)?;
43 module.add_function(wrap_pyfunction!(
44 crate::dictionary::build_user_dictionary,
45 module
46 )?)?;
47 module.add_function(wrap_pyfunction!(
48 crate::dictionary::load_dictionary,
49 module
50 )?)?;
51 module.add_function(wrap_pyfunction!(
52 crate::dictionary::load_user_dictionary,
53 module
54 )?)?;
55
56 module.add_function(wrap_pyfunction!(version, module)?)?;
57 Ok(())
58}