From 0bc96a0233611f4104e6f1fb1bae5cd9c0d23f38 Mon Sep 17 00:00:00 2001 From: "Matthew T. Perry" Date: Wed, 14 Aug 2024 09:33:09 -0600 Subject: [PATCH 1/6] ci: test against python 3.12, drop 3.7 --- .github/workflows/test-rasterstats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-rasterstats.yml b/.github/workflows/test-rasterstats.yml index 56bdbc2..d7d6a11 100644 --- a/.github/workflows/test-rasterstats.yml +++ b/.github/workflows/test-rasterstats.yml @@ -10,11 +10,11 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 266e1fb275e1602ee9676d67eae18bb8999f604d Mon Sep 17 00:00:00 2001 From: "Matthew T. Perry" Date: Wed, 14 Aug 2024 09:35:45 -0600 Subject: [PATCH 2/6] classifiers --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f5bfa65..77eb34b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,11 +18,12 @@ classifiers = [ "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", - "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Topic :: Utilities", "Topic :: Scientific/Engineering :: GIS", ] From a2198c5b63455cf2ee11289a58ada306fb69a3fd Mon Sep 17 00:00:00 2001 From: "Matthew T. Perry" Date: Wed, 14 Aug 2024 10:08:21 -0600 Subject: [PATCH 3/6] fix: cast percentiles to floats --- src/rasterstats/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rasterstats/main.py b/src/rasterstats/main.py index 0dce152..bebe6fa 100644 --- a/src/rasterstats/main.py +++ b/src/rasterstats/main.py @@ -270,7 +270,7 @@ def gen_zonal_stats( for pctile in [s for s in stats if s.startswith("percentile_")]: q = get_percentile(pctile) pctarr = masked.compressed() - feature_stats[pctile] = np.percentile(pctarr, q) + feature_stats[pctile] = float(np.percentile(pctarr, q)) if "nodata" in stats or "nan" in stats: featmasked = np.ma.MaskedArray(fsrc.array, mask=(~rv_array)) @@ -286,7 +286,9 @@ def gen_zonal_stats( for stat_name, stat_func in add_stats.items(): n_params = len(inspect.signature(stat_func).parameters.keys()) if n_params == 3: - feature_stats[stat_name] = stat_func(masked, feat["properties"], rv_array) + feature_stats[stat_name] = stat_func( + masked, feat["properties"], rv_array + ) # backwards compatible with two-argument function elif n_params == 2: feature_stats[stat_name] = stat_func(masked, feat["properties"]) From bc26a0d138d87baf5478e30cfa9b0a95d2ee709f Mon Sep 17 00:00:00 2001 From: "Matthew T. Perry" Date: Wed, 14 Aug 2024 10:13:04 -0600 Subject: [PATCH 4/6] only test old packages on old pythons --- .github/workflows/test-rasterstats.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-rasterstats.yml b/.github/workflows/test-rasterstats.yml index d7d6a11..908b2e1 100644 --- a/.github/workflows/test-rasterstats.yml +++ b/.github/workflows/test-rasterstats.yml @@ -25,6 +25,7 @@ jobs: run: | pytest - name: Test with older packages + if: ${{ matrix.python-minor-version < 11 }} # only for python <=3.11 run: | python -m pip uninstall --yes geopandas python -m pip install "fiona<1.9" "shapely<2.0" From 23ae949862d73bee46d68d4e002be631a397304d Mon Sep 17 00:00:00 2001 From: "Matthew T. Perry" Date: Wed, 14 Aug 2024 10:22:11 -0600 Subject: [PATCH 5/6] try using contains --- .github/workflows/test-rasterstats.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-rasterstats.yml b/.github/workflows/test-rasterstats.yml index 908b2e1..1937a99 100644 --- a/.github/workflows/test-rasterstats.yml +++ b/.github/workflows/test-rasterstats.yml @@ -24,8 +24,9 @@ jobs: - name: Test all packages run: | pytest - - name: Test with older packages - if: ${{ matrix.python-minor-version < 11 }} # only for python <=3.11 + - name: Test with older packages and older pythons + # wheel only available for python <=3.11 + if: contains(fromJson('["3.8", "3.9", "3.10", "3.11"]'), ${{ matrix.python-version }}) run: | python -m pip uninstall --yes geopandas python -m pip install "fiona<1.9" "shapely<2.0" From 4f82d86930fb3917d620e2e9174f59a43d9cf906 Mon Sep 17 00:00:00 2001 From: "Matthew T. Perry" Date: Wed, 14 Aug 2024 10:26:40 -0600 Subject: [PATCH 6/6] remove test for older dependencies --- .github/workflows/test-rasterstats.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/test-rasterstats.yml b/.github/workflows/test-rasterstats.yml index 1937a99..e3f4081 100644 --- a/.github/workflows/test-rasterstats.yml +++ b/.github/workflows/test-rasterstats.yml @@ -20,14 +20,7 @@ jobs: - name: Install dependencies run: | python -m pip install pip --upgrade - python -m pip install -e .[dev] + python -m pip install -e ".[dev]" - name: Test all packages run: | pytest - - name: Test with older packages and older pythons - # wheel only available for python <=3.11 - if: contains(fromJson('["3.8", "3.9", "3.10", "3.11"]'), ${{ matrix.python-version }}) - run: | - python -m pip uninstall --yes geopandas - python -m pip install "fiona<1.9" "shapely<2.0" - pytest