From 1f0521dfc7a8dd1e951b86d7ccdbee125a2ff5dc Mon Sep 17 00:00:00 2001 From: iosefa Date: Wed, 14 Oct 2026 16:12:38 -1000 Subject: [PATCH] Prepare v0.5.0 release --- MANIFEST.in | 2 ++ pyforestscan/calculate.py | 10 +++++----- setup.py | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..0994779 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +include pytest.ini +recursive-include tests *.py *.json *.R diff --git a/pyforestscan/calculate.py b/pyforestscan/calculate.py index 2baf652..2dddd5d 100644 --- a/pyforestscan/calculate.py +++ b/pyforestscan/calculate.py @@ -327,7 +327,7 @@ def calculate_voxel_stat( dimension: str, stat: str, z_index_range: Optional[Tuple[int, Optional[int]]] = None, -): +) -> Tuple[np.ndarray, List[float]]: """ Compute a column-wise statistic for a given dimension over a 3-D voxel grid. @@ -350,10 +350,10 @@ def calculate_voxel_stat( the first three voxels (indices 0, 1, 2). Returns: - tuple[np.ndarray, list]: (stat_array, extent) - - stat_array: 2-D array shaped (nx, ny) with the requested statistic per column. - Cells without points are NaN (except for 'count', which yields 0). - - extent: [x_min, x_max, y_min, y_max] covering the raster footprint. + tuple[np.ndarray, list]: The statistic array and raster extent. The array + has shape (nx, ny), with the requested statistic per column. Cells + without points are NaN, except for 'count', which yields 0. The + extent is [x_min, x_max, y_min, y_max], covering the raster footprint. """ if dimension not in arr.dtype.names: raise KeyError(f"Dimension '{dimension}' not found in array fields") diff --git a/setup.py b/setup.py index 575a1ba..fdf0ef1 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="pyforestscan", - version="0.4.1", + version="0.5.0", author="Joseph Emile Honour Percival", author_email="ipercival@gmail.com", description="Analyzing forest structure using aerial LiDAR data", @@ -20,7 +20,7 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], - packages=setuptools.find_packages(), + packages=setuptools.find_packages(exclude=("tests", "tests.*")), python_requires=">=3.11", install_requires=[ 'requests>=2.32.4', @@ -33,6 +33,7 @@ 'numpy>=2.3.1', 'matplotlib>=3.10.3', 'scipy>=1.16.0', + 'tqdm>=4.67.1', ], extras_require={ 'dev': [