From ac80e0264db7c5a4a71fa16c46a8d189b0d0a829 Mon Sep 17 00:00:00 2001 From: Samuel Carlsson Date: Mon, 2 Feb 2026 22:13:20 +0100 Subject: [PATCH 1/2] add PEP-561 type marker This marks library as supporting type checking for tools --- mcubes/py.typed | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mcubes/py.typed diff --git a/mcubes/py.typed b/mcubes/py.typed new file mode 100644 index 0000000..e69de29 From d3122bfca5d637c71481985e2840696d33453973 Mon Sep 17 00:00:00 2001 From: Samuel Carlsson Date: Mon, 2 Feb 2026 22:13:49 +0100 Subject: [PATCH 2/2] add add proper types to C-extension functions --- MANIFEST.in | 2 ++ mcubes/_mcubes.pyi | 21 +++++++++++++++++++++ setup.py | 1 + 3 files changed, 24 insertions(+) create mode 100644 mcubes/_mcubes.pyi diff --git a/MANIFEST.in b/MANIFEST.in index d43c1a6..0c9789a 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,6 @@ include mcubes/*.py +include mcubes/*.pyi +include mcubes/py.typed exclude mcubes/numpy_smoothing.py include mcubes/src/*.h diff --git a/mcubes/_mcubes.pyi b/mcubes/_mcubes.pyi new file mode 100644 index 0000000..dffd3bc --- /dev/null +++ b/mcubes/_mcubes.pyi @@ -0,0 +1,21 @@ +from typing import Callable, Tuple + +import numpy as np +from numpy.typing import NDArray + + +def marching_cubes( + volume: NDArray[np.generic], + isovalue: float, +) -> Tuple[NDArray[np.float64], NDArray[np.uintp]]: ... + + +def marching_cubes_func( + lower: Tuple[float, float, float], + upper: Tuple[float, float, float], + numx: int, + numy: int, + numz: int, + f: Callable[[float, float, float], float], + isovalue: float, +) -> Tuple[NDArray[np.float64], NDArray[np.uintp]]: ... diff --git a/setup.py b/setup.py index ff500b6..3d426f2 100644 --- a/setup.py +++ b/setup.py @@ -67,6 +67,7 @@ def extensions(): "Topic :: Scientific/Engineering :: Image Recognition", ], packages=["mcubes"], + package_data={"mcubes": ["py.typed", "*.pyi"]}, ext_modules=extensions(), install_requires=['numpy>=1.21', 'scipy>=1.0.0'], )