From f465c345f1de63e1834dc7a8f6ae303e736be85c Mon Sep 17 00:00:00 2001 From: nidichaogequ Date: Mon, 3 Aug 2026 01:48:47 +0800 Subject: [PATCH 1/3] updated v0.2.18 --- recipe/meta.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 24e0a64..a8aff38 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "gdptools" %} -{% set version = "0.2.17" %} +{% set version = "0.2.18" %} {% set python_min = "3.9" %} package: @@ -8,7 +8,7 @@ package: source: url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/gdptools-{{ version }}.tar.gz - sha256: 021d18613365538ba1a4a0d6075124e36ee9cdd42b5447957d9880f13288c3d9 + sha256: f6d28869342447fee02fceebf48847367a1adfe32b74a61095a45b76656f98d6 build: entry_points: @@ -27,16 +27,16 @@ requirements: # - bump2version >=1.0.1,<2.0.0 - geoviews >=1.12.0,<2.0.0 - pystac >=1.10.0,<2.0.0 - - s3fs >=2024.3.1,<2025.0.0 + - s3fs >=2025.2.0,<2026.0.0 - urllib3 >=1.26.0,<2.0.0 - xpystac >=0.1.3,<0.2.0 - tqdm >=4.66.2,<5.0.0 - statsmodels >=0.14.0,<0.15.0 - - dask-core >=2024.7.1,<2025.0.0 + - dask-core >2024.8.0 - python >={{ python_min }} - fastparquet >=2024.2.0 - pyarrow <18.1.1 - - dask-geopandas 0.4.1 + - dask-geopandas >0.4.1 - pandas >=2.0.0 - numpy >2.0 - geopandas >=0.13.0 @@ -46,12 +46,12 @@ requirements: - metpy >=1.2.0 # - attrs >=20.3,<22 - pydantic >=1.10.5,<2.0.0 - - xarray >=2024.3.0 + - xarray 2024.7.0 - netcdf4 >=1.5.8 - scipy >=1.13.0,<2.0.0 - pydap >=3.2.2,<4.0.0 - zarr >=2.12.0 - - rasterio >=1.2.9,<1.4.0 + - rasterio >=1.2.9,<1.5.0 - bottleneck >=1.3.3 - dask >=2022.0.0 - joblib >=1.4.0 From 392a0e1957b89f71c7450993e3b72c23400a6fc8 Mon Sep 17 00:00:00 2001 From: nidichaogequ Date: Thu, 13 Aug 2026 04:56:07 +0800 Subject: [PATCH 2/3] MNT: Re-rendered with conda-build 25.4.2, conda-smithy 3.47.2, and conda-forge-pinning 2025.04.28.17.55.25 --- .gitignore | 2 ++ .scripts/run_docker_build.sh | 2 +- build-locally.py | 47 +++++++++++++++++++++++++----------- 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index bb38536..47b5408 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ # Rattler-build's artifacts are in `output` when not specifying anything. /output +# Pixi's configuration +.pixi diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 00f377a..6ee04aa 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -12,7 +12,7 @@ source .scripts/logging_utils.sh set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" +PROVIDER_DIR="$(basename "$THISDIR")" FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" diff --git a/build-locally.py b/build-locally.py index c4a56c6..02c2374 100755 --- a/build-locally.py +++ b/build-locally.py @@ -10,6 +10,7 @@ import glob import os import platform import subprocess +import sys from argparse import ArgumentParser @@ -44,10 +45,19 @@ def run_osx_build(ns): subprocess.check_call([script]) +def run_win_build(ns): + script = ".scripts/run_win_build.bat" + subprocess.check_call(["cmd", "/D", "/Q", "/C", f"CALL {script}"]) + + def verify_config(ns): + choices_filter = ns.filter or "*" valid_configs = { - os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") + os.path.basename(f)[:-5] + for f in glob.glob(f".ci_support/{choices_filter}.yaml") } + if choices_filter != "*": + print(f"filtering for '{choices_filter}.yaml' configs") print(f"valid configs are {valid_configs}") if ns.config in valid_configs: print("Using " + ns.config + " configuration") @@ -60,30 +70,37 @@ def verify_config(ns): selections = list(enumerate(sorted(valid_configs), 1)) for i, c in selections: print(f"{i}. {c}") - s = input("\n> ") + try: + s = input("\n> ") + except KeyboardInterrupt: + print("\nno option selected, bye!", file=sys.stderr) + sys.exit(1) idx = int(s) - 1 ns.config = selections[idx][1] print(f"selected {ns.config}") else: raise ValueError("config " + ns.config + " is not valid") - # Remove the following, as implemented - if ns.config.startswith("win"): - raise ValueError( - f"only Linux/macOS configs currently supported, got {ns.config}" + if ( + ns.config.startswith("osx") + and platform.system() == "Darwin" + and not os.environ.get("OSX_SDK_DIR") + ): + raise RuntimeError( + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " + "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " + "Note: OSX_SDK_DIR must be set to an absolute path. " + "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) - elif ns.config.startswith("osx"): - if "OSX_SDK_DIR" not in os.environ: - raise RuntimeError( - "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " - "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " - "Note: OSX_SDK_DIR must be set to an absolute path. " - "Setting this variable implies agreement to the licensing terms of the SDK by Apple." - ) def main(args=None): p = ArgumentParser("build-locally") p.add_argument("config", default=None, nargs="?") + p.add_argument( + "--filter", + default=None, + help="Glob string to filter which build choices are presented in interactive mode.", + ) p.add_argument( "--debug", action="store_true", @@ -104,6 +121,8 @@ def main(args=None): run_docker_build(ns) elif ns.config.startswith("osx"): run_osx_build(ns) + elif ns.config.startswith("win"): + run_win_build(ns) finally: recipe_license_file = os.path.join( "recipe", "recipe-scripts-license.txt" From df29823df2cdae6c8d2130f1efb97ff75b12ff90 Mon Sep 17 00:00:00 2001 From: nidichaogequ Date: Tue, 18 Aug 2026 22:14:47 +0800 Subject: [PATCH 3/3] regenerate with grayskull --- recipe/meta.yaml | 69 ++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index a8aff38..edd174a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,6 @@ {% set name = "gdptools" %} {% set version = "0.2.18" %} -{% set python_min = "3.9" %} +{% set python_min = "3.10" %} package: name: {{ name|lower }} @@ -14,7 +14,7 @@ build: entry_points: - gdptools = gdptools.__main__:main noarch: python - script: {{ PYTHON }} -m pip install . -vv + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation number: 0 requirements: @@ -23,44 +23,44 @@ requirements: - pip - poetry-core >=1.0.0 run: - # - certifi <2023.7.22 - # - bump2version >=1.0.1,<2.0.0 - - geoviews >=1.12.0,<2.0.0 - - pystac >=1.10.0,<2.0.0 - - s3fs >=2025.2.0,<2026.0.0 - - urllib3 >=1.26.0,<2.0.0 - - xpystac >=0.1.3,<0.2.0 - - tqdm >=4.66.2,<5.0.0 - - statsmodels >=0.14.0,<0.15.0 - - dask-core >2024.8.0 - python >={{ python_min }} - - fastparquet >=2024.2.0 - - pyarrow <18.1.1 - - dask-geopandas >0.4.1 - - pandas >=2.0.0 - - numpy >2.0 - - geopandas >=0.13.0 - - shapely >=2.0 - # - pygeos >=0.14.0,<0.15.0 - - pyproj >=3.3.0 - - metpy >=1.2.0 - # - attrs >=20.3,<22 - - pydantic >=1.10.5,<2.0.0 - - xarray 2024.7.0 - - netcdf4 >=1.5.8 - - scipy >=1.13.0,<2.0.0 - - pydap >=3.2.2,<4.0.0 - - zarr >=2.12.0 - - rasterio >=1.2.9,<1.5.0 - bottleneck >=1.3.3 - dask >=2022.0.0 + - dask-core >2024.8.0 + - dask-geopandas >0.4.1 + - fastparquet >=2024.2.0 + - geopandas >=0.13.0 + - geoviews >=1.12.0,<2.0.0 - joblib >=1.4.0 + - metpy >=1.2.0 + - netcdf4 >=1.5.8 + - numpy >2.0 + - pandas >=2.0.0 + - pyarrow <18.1.1 + - pydantic >=1.10.5,<2.0.0 + - pydap >=3.2.2,<4.0.0 + - pyproj >=3.3.0 + - pystac >=1.10.0,<2.0.0 + - rasterio >=1.2.9,<1.5.0 - rioxarray >=0.13.0 + - s3fs >=2025.2.0,<2026.0.0 + - scipy >=1.13.0,<2.0.0 + - shapely >=2.0 + - statsmodels >=0.14.0,<0.15.0 + - tqdm >=4.66.2,<5.0.0 + - urllib3 >=1.26.0,<2.0.0 + - xarray 2024.7.0 + - xpystac >=0.1.3,<0.2.0 + - zarr >=2.12.0 + # - attrs >=20.3,<22 + # - bump2version >=1.0.1,<2.0.0 + # - certifi <2023.7.22 + # - pygeos >=0.14.0,<0.15.0 # xarray[io] - - h5netcdf - - fsspec - - cftime - cfgrib + - cftime + - fsspec + - h5netcdf # - pooch # xarray[accel] # - flox @@ -69,8 +69,7 @@ test: imports: - gdptools commands: - # Should work with shapely 1.8.5, we can remove this when there is a next release with revised pins. - # - pip check + - pip check - gdptools --help requires: - python {{ python_min }}