From 6e555bf5c16815cf0982ba5891e3bbe09444091a Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 12 Mar 2024 23:09:04 +0800 Subject: refactor(filetree): docs -> document, features -> feature, dev -> development --- src/main.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main.rs (limited to 'src') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..4c28efa --- /dev/null +++ b/src/main.rs @@ -0,0 +1,36 @@ +#![allow(unused)] +fn main() { + use pyo3::prelude::*; + + #[pymodule] + fn parent_module(py: Python<'_>, m: &PyModule) -> PyResult<()> { + register_child_module(py, m)?; + Ok(()) + } + + fn register_child_module(py: Python<'_>, parent_module: &PyModule) -> PyResult<()> { + let child_module = PyModule::new(py, "child_module")?; + child_module.add_function(wrap_pyfunction!(func, child_module)?)?; + parent_module.add_submodule(child_module)?; + Ok(()) + } + + #[pyfunction] + fn func() -> String { + "func".to_string() + } + + Python::with_gil(|py| { + use pyo3::types::IntoPyDict; + use pyo3::wrap_pymodule; + let parent_module = wrap_pymodule!(parent_module)(py); + let ctx = [("parent_module", parent_module)].into_py_dict(py); + + py.run( + "assert parent_module.child_module.func() == 'func'", + None, + Some(&ctx), + ) + .unwrap(); + }) +} -- cgit v1.2.3-70-g09d2