From 9516442ac6662eb3aff5c30836f0ddcd4cf913f9 Mon Sep 17 00:00:00 2001 From: Parker Norton Date: Tue, 10 Mar 2026 09:29:23 -0600 Subject: [PATCH 1/4] Update python versions to include through 3.14 --- .github/workflows/ci.yaml | 2 +- pyproject.toml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index aad7e12..cca732c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -98,7 +98,7 @@ jobs: fail-fast: false matrix: os: [ "ubuntu-latest", "macos-latest", "windows-latest" ] - python-version: ["3.10", "3.11"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: diff --git a/pyproject.toml b/pyproject.toml index 29402ce..971ec53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "pyPRMS" description = "Python library for Precipitation-Runoff Modeling System" readme = "README.md" dynamic = ["version"] -requires-python = ">=3.10,<3.13" +requires-python = ">=3.10,<3.15" license = {file = "LICENSE"} authors = [{name = "Parker Norton", email = "pnorton@usgs.gov"}, ] maintainers = [{name = "Parker Norton", email = "pnorton@usgs.gov"}, ] @@ -30,7 +30,8 @@ dependencies = ["cartopy", "sphinx", "sphinx-autodoc-typehints", "sphinx-book-theme", - "xarray", ] + "xarray", + "zarr<3"] [project.optional-dependencies] dev = ["mypy", From 1b8f39d0552a1eb1461e8304e3383f546f154927 Mon Sep 17 00:00:00 2001 From: Parker Norton Date: Tue, 10 Mar 2026 10:03:20 -0600 Subject: [PATCH 2/4] refactor: replace deprecated distutils.dir_util.copytree() with shutil.copytree() --- tests/func/test_Cbh.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/func/test_Cbh.py b/tests/func/test_Cbh.py index 2ba15f6..1fea6a2 100644 --- a/tests/func/test_Cbh.py +++ b/tests/func/test_Cbh.py @@ -1,7 +1,7 @@ import pytest import os from pathlib import Path -from distutils import dir_util +import shutil from pyPRMS import Cbh from pyPRMS import ControlFile @@ -22,7 +22,7 @@ def datadir(tmpdir, request): test_dir, _ = os.path.splitext(filename) if os.path.isdir(test_dir): - dir_util.copy_tree(test_dir, str(tmpdir)) + shutil.copytree(test_dir, str(tmpdir), dirs_exist_ok=True) return tmpdir From 3a7e397096b31385910e74e2267dcfbac3459ce1 Mon Sep 17 00:00:00 2001 From: Parker Norton Date: Tue, 10 Mar 2026 11:02:18 -0600 Subject: [PATCH 3/4] update CI to use node v24 and update actions --- .github/workflows/ci.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cca732c..a413720 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -29,10 +29,10 @@ jobs: shell: bash steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.10" @@ -115,12 +115,12 @@ jobs: # swap-storage: true - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{matrix.python-version}} - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install pyPRMS run: | From b45a8b284cc4a8ea335ee3e1188cb66591382d2c Mon Sep 17 00:00:00 2001 From: Parker Norton Date: Tue, 10 Mar 2026 11:18:07 -0600 Subject: [PATCH 4/4] Restrict CI to python 3.10 and 3.13 --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a413720..0108662 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -98,7 +98,7 @@ jobs: fail-fast: false matrix: os: [ "ubuntu-latest", "macos-latest", "windows-latest" ] - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.13"] steps: