Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,18 @@ on:
- main
pull_request:

concurrency:
# For a given workflow, if we push to the same branch, cancel all previous builds on that branch except on master.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
build:
name: Conda Build with Python${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.11", "3.12", "3.13"]
defaults:
run:
shell: bash -l {0}
Expand All @@ -21,7 +26,7 @@ jobs:
- name: Install packages
run: |
sudo apt-get -y install pandoc
if: matrix.python-version == 3.10
if: matrix.python-version == 3.11
- name: Setup Conda (Micromamba) with Python${{ matrix.python-version }}
uses: mamba-org/setup-micromamba@0dea6379afdaffa5d528b3d1dabc45da37f443fc # v2.0.4
with:
Expand All @@ -41,4 +46,4 @@ jobs:
python -m pytest -v tests
- name: Build docs 🏗️
run: make docs
if: matrix.python-version == 3.10
if: matrix.python-version == 3.11
23 changes: 12 additions & 11 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,46 @@ default_language_version:

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: debug-statements
- repo: https://github.com/asottile/pyupgrade
rev: v3.19.0
rev: v3.21.2
hooks:
- id: pyupgrade
args: [ '--py310-plus' ]
exclude: 'src/daops/utils/testing.py'
- repo: https://github.com/psf/black
rev: 25.1.0
rev: 25.12.0
hooks:
- id: black
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.0
rev: v0.14.9
hooks:
- id: ruff
- id: ruff-check
args: [ '--fix', '--show-fixes' ]
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
# - id: python-check-blanket-noqa
# - id: python-check-blanket-type-ignore
- id: python-check-blanket-noqa
- id: python-check-blanket-type-ignore
- id: python-no-eval
- id: python-no-log-warn
- id: python-use-type-annotations
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/keewis/blackdoc
rev: v0.3.9
rev: v0.4.6
hooks:
- id: blackdoc
additional_dependencies: [ 'black==25.1.0' ]
additional_dependencies: [ 'black==25.12.0' ]
- id: blackdoc-autoupdate-black
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.29.4
rev: 0.36.0
hooks:
- id: check-github-workflows
- id: check-readthedocs
Expand All @@ -54,10 +54,11 @@ repos:
ci:
autofix_commit_msg: |
[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
autofix_prs: true
autoupdate_branch: ''
autoupdate_commit_msg: '[pre-commit.ci] pre-commit autoupdate'
autoupdate_schedule: weekly
autoupdate_schedule: quarterly
skip: [ ]
submodules: false
13 changes: 13 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
Version History
===============

v0.16.0 (2025-12-16)
--------------------

Breaking Changes
^^^^^^^^^^^^^^^^
* ``clisops``>=0.16.2, ``numpy``>=1.26, and ``xesmf``>=0.9.2 are now required.
* Dropped support for Python3.10. Added support for Python3.13.

Fixes
^^^^^
* Addressed thousands of `DeprecationWarning` messages emitted from ``xarray`` in the testing suite.

v0.15.0 (2025-03-24)
--------------------

Expand All @@ -17,6 +29,7 @@ Breaking Changes
* ``clisops``>=0.15.0 is now required.
* ``roocs-utils`` has been rendered obsolete and removed from the dependencies (``roocs-utils`` functionality is now provided by ``clisops``).


v0.13.0 (2025-02-07)
--------------------

Expand Down
27 changes: 18 additions & 9 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,24 @@ name: daops
channels:
- conda-forge
dependencies:
- python >=3.10,<3.13
- pip >=25.0
- python >=3.11
- pip >=25.2
- flit >=3.11.0,<4.0
- cftime
- clisops >=0.16.1
- dask
- elasticsearch>=8.0.1
- netcdf4
- numpy >=1.24.0,<2.0.0
- clisops >=0.17.0
- dask >=2024.12.0
- elasticsearch >=8.0.1,<9.0
- numpy >=1.26.0
- roocs-grids >=0.1.2
- xarray >=2025.1.1,<2025.3.0
- xesmf >=0.8.2
- xarray >=2025.6.0
- xesmf >=0.9.2
# testing
- coverage >=7.6.0
- h5netcdf >=1.5.0
- pytest-loguru >=0.3.0
- pytest >=8.0.0
- pytest-cov >=6.0.0
- pytest-timeout >=2.4.0
# logging
- loguru >=0.5.3
# catalog
Expand All @@ -24,3 +31,5 @@ dependencies:
- aiohttp
- zarr >=2.13.3
- zstandard
# for versioning
- bump-my-version >=1.2.0
45 changes: 25 additions & 20 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[build-system]
requires = ["flit-core >=3.10.1,<4.0"]
requires = ["flit-core >=3.11.0,<4.0"]
build-backend = "flit_core.buildapi"

[project]
Expand All @@ -11,10 +11,11 @@ maintainers = [
{name = "Trevor James Smith", email = "smith.trevorj@ouranos.ca"},
{name = "Carsten Ehbrecht", email = "ehbrecht@dkrz.de"}
]
license = {text = "BSD"}
license = "BSD-3-Clause"
license-files = ["LICENSE"]
readme = {file = "README.rst", content-type = "text/x-rst"}
keywords = ["daops"]
requires-python = ">=3.10"
requires-python = ">=3.11"
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
Expand All @@ -23,14 +24,13 @@ classifiers = [
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Security",
"Topic :: Internet",
"Topic :: Scientific/Engineering",
Expand All @@ -41,13 +41,14 @@ classifiers = [
dynamic = ["description", "version"]
dependencies = [
"cftime",
"clisops >=0.16.1",
"dask[complete]",
"elasticsearch >=8.0.1",
"numpy >=1.24.0,<2.0.0",
"clisops >=0.17.0",
"h5netcdf",
"dask[complete] >=2024.12.0",
"elasticsearch >=8.0.1,<9.0",
"numpy >=1.26.0",
"roocs_grids >=0.1.2",
"xarray >=2025.1.1,<2025.3.0",
"xesmf >=0.8.2",
"xarray >=2025.6.0",
"xesmf >=0.9.2",
# logging
"loguru >=0.5.3",
# catalog
Expand All @@ -62,16 +63,19 @@ dependencies = [

[project.optional-dependencies]
dev = [
"black >=25.1.0",
"bump-my-version >=0.28.0",
"coverage >=7.6.0",
"black >=25.12.0",
"bump-my-version >=1.2.0",
"coverage[toml] >=7.6.0",
"h5netcdf >=1.5.0",
"jinja2",
"packaging >=24.2",
"pip >=25.2",
"pre-commit >=3.5.0",
"pytest-loguru >=0.3.0",
"pytest >=8.0.0",
"pytest-cov >=6.0.0",
"ruff >=0.9.0",
"pytest-timeout >=2.4.0",
"ruff >=0.14.9",
"tox >=4.18.1",
"watchdog >=4.0",
]
Expand Down Expand Up @@ -100,10 +104,9 @@ daops = "daops.cli:main"

[tool.black]
target-version = [
"py39",
"py310",
"py311",
"py312"
"py312",
"py313"
]

[tool.bumpversion]
Expand Down Expand Up @@ -157,6 +160,7 @@ minversion = "8.0"
addopts = [
"--verbose",
"--color=yes",
"--timeout=300",
"--strict-config",
"--strict-markers"
]
Expand All @@ -166,9 +170,10 @@ testpaths = [
"tests"
]
markers = [
"online: mark tests that require internet access (deselect with '-m \"not requires_internet\"')"
"online: mark tests that require internet access (deselect with '-m \"not requires_internet\"')",
"slow: mark tests that run quite long."
]
xfail_strict = true
xfail_strict = false

[tool.ruff]
src = ["src/daops"]
Expand Down
2 changes: 1 addition & 1 deletion src/daops/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def config_():
return cfg


from .utils.common import enable_logging # noqa
from .utils.common import enable_logging as enable_logging # noqa: E402

# Disable logging for daops and remove the logger that is instantiated on import
logger.disable("daops")
Expand Down
1 change: 0 additions & 1 deletion src/daops/ops/regrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ def regrid(
-------
List of outputs in the selected type: a list of xarray Datasets or file paths.


Examples
--------
| collection: ("cmip6.ukesm1.r1.gn.tasmax.v20200101",)
Expand Down
2 changes: 1 addition & 1 deletion src/daops/utils/testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from pathlib import Path
from typing import Optional

from _pytest.logging import LogCaptureFixture # noqa
from _pytest.logging import LogCaptureFixture
from clisops.utils.testing import ESGF_TEST_DATA_CACHE_DIR, ESGF_TEST_DATA_VERSION
from jinja2 import Template

Expand Down
Loading
Loading