diff --git a/examples/maturin-starter/maturin_starter/__init__.py b/examples/maturin-starter/maturin_starter/__init__.py index 44ed5e113fb..5fe00cb5454 100644 --- a/examples/maturin-starter/maturin_starter/__init__.py +++ b/examples/maturin-starter/maturin_starter/__init__.py @@ -1,5 +1,9 @@ # import the contents of the Rust library into the Python extension +# optional: include the documentation from the Rust module from .maturin_starter import * +from .maturin_starter import __all__, __doc__ + +__all__ = __all__ + ["PythonClass"] class PythonClass: diff --git a/examples/maturin-starter/src/lib.rs b/examples/maturin-starter/src/lib.rs index 164a9b8a76f..3a79ca51661 100644 --- a/examples/maturin-starter/src/lib.rs +++ b/examples/maturin-starter/src/lib.rs @@ -19,6 +19,7 @@ impl ExampleClass { } } +/// An example module implemented in Rust using PyO3. #[pymodule] fn maturin_starter(py: Python, m: &PyModule) -> PyResult<()> { m.add_class::()?; diff --git a/examples/maturin-starter/tests/test_maturin_starter.py b/examples/maturin-starter/tests/test_maturin_starter.py index 961d2d54f32..1f3e8d9f7f4 100644 --- a/examples/maturin-starter/tests/test_maturin_starter.py +++ b/examples/maturin-starter/tests/test_maturin_starter.py @@ -1,4 +1,4 @@ -from maturin_starter import PythonClass, ExampleClass +from maturin_starter import ExampleClass, PythonClass def test_python_class() -> None: @@ -9,3 +9,11 @@ def test_python_class() -> None: def test_example_class() -> None: example = ExampleClass(value=11) assert example.value == 11 + + +def test_doc() -> None: + import maturin_starter + + assert ( + maturin_starter.__doc__ == "An example module implemented in Rust using PyO3." + ) diff --git a/examples/setuptools-rust-starter/setuptools_rust_starter/__init__.py b/examples/setuptools-rust-starter/setuptools_rust_starter/__init__.py index 074483e5203..1dcb91e00e2 100644 --- a/examples/setuptools-rust-starter/setuptools_rust_starter/__init__.py +++ b/examples/setuptools-rust-starter/setuptools_rust_starter/__init__.py @@ -1,5 +1,9 @@ # import the contents of the Rust library into the Python extension +# optional: include the documentation from the Rust module from ._setuptools_rust_starter import * +from ._setuptools_rust_starter import __all__, __doc__ + +__all__ = __all__ + ["PythonClass"] class PythonClass: diff --git a/examples/setuptools-rust-starter/src/lib.rs b/examples/setuptools-rust-starter/src/lib.rs index 0f28e6eeacd..6f09f43ab39 100644 --- a/examples/setuptools-rust-starter/src/lib.rs +++ b/examples/setuptools-rust-starter/src/lib.rs @@ -19,6 +19,7 @@ impl ExampleClass { } } +/// An example module implemented in Rust using PyO3. #[pymodule] fn _setuptools_rust_starter(py: Python, m: &PyModule) -> PyResult<()> { m.add_class::()?; diff --git a/examples/setuptools-rust-starter/tests/test_setuptools_rust_starter.py b/examples/setuptools-rust-starter/tests/test_setuptools_rust_starter.py index 7ca33bba047..07ca6c5e80a 100644 --- a/examples/setuptools-rust-starter/tests/test_setuptools_rust_starter.py +++ b/examples/setuptools-rust-starter/tests/test_setuptools_rust_starter.py @@ -1,4 +1,4 @@ -from setuptools_rust_starter import PythonClass, ExampleClass +from setuptools_rust_starter import ExampleClass, PythonClass def test_python_class() -> None: @@ -9,3 +9,12 @@ def test_python_class() -> None: def test_example_class() -> None: example = ExampleClass(value=11) assert example.value == 11 + + +def test_doc() -> None: + import setuptools_rust_starter + + assert ( + setuptools_rust_starter.__doc__ + == "An example module implemented in Rust using PyO3." + )