anemoi-datasets 0.5.13__tar.gz → 0.5.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- anemoi_datasets-0.5.14/.github/workflows/python-publish.yml +27 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.pre-commit-config.yaml +1 -1
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/CHANGELOG.md +2 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/PKG-INFO +1 -1
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/_version.py +2 -2
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/create.py +4 -2
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/__init__.py +14 -2
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/accumulations.py +6 -2
- anemoi_datasets-0.5.14/src/anemoi/datasets/create/functions/sources/eccc_fstd.py +16 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/mars.py +5 -1
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/result.py +1 -1
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/statistics/__init__.py +5 -2
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/misc.py +24 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/grids.py +6 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi_datasets.egg-info/PKG-INFO +1 -1
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi_datasets.egg-info/SOURCES.txt +2 -0
- anemoi_datasets-0.5.14/tests/create/regrid.yaml +31 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/test_data.py +45 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/xarray/test_opendap.py +6 -0
- anemoi_datasets-0.5.13/.github/workflows/python-publish.yml +0 -28
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.gitattributes +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/CODEOWNERS +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/ci-config.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/ci-hpc-config.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/changelog-pr-update.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/changelog-release-update.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/ci.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/label-public-pr.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/push-to-private.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/python-pull-request.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.gitignore +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.readthedocs.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.vscode/spellright.dict +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/CONTRIBUTORS.md +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/LICENSE +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/README.md +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/Makefile +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/_static/logo.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/_static/style.css +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/_templates/.gitkeep +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/apply-fmt.sh +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/advanced-options.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/empty.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/noop.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/orog_to_z.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/rename.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/rotate_winds.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/select.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/sum.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/unrotate_winds.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/wz_to_w.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/yaml/orog_to_z.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/yaml/rename.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/yaml/sum.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters/yaml/wz_to_w.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/filters.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/handling-missing-dates.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/handling-missing-values.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/incremental.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/introduction.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/naming-variables.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/operations.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/accumulations.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/forcings.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/grib.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/hindcasts.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/mars.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/netcdf.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/opendap.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/recentre.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/repeated_dates.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/xarray-based.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/xarray-kerchunk.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/xarray-kerchunk.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/xarray-zarr.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/accumulations1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/accumulations2.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/forcings.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/grib1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/grib2.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/grib3.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/grib4.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/mars1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/mars2.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/netcdf.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/opendap.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/recentre.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/repeated_dates1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/repeated_dates2.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/repeated_dates3.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/repeated_dates4.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/xarray-based.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/xarray-kerchunk.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/xarray-zarr.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/zenodo.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/zenodo.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/statistics.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/syntax.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/Makefile +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/building1.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/building1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/building2.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/building2.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/building3.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/building3.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/concat.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/hindcasts.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/input.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/missing_dates.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/nan.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/yaml/pipe.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/check-index.sh +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/cli/compare.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/cli/copy.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/cli/create.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/cli/inspect.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/cli/introduction.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/cli/scan.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/conf.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/images.pptx +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/index.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/installing.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/naming_conventions.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/overview.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/overview_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/schemas/matrix.excalidraw +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/schemas/matrix.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/schemas/overview.excalidraw +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/schemas/overview.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/schemas/recipe.excalidraw +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/schemas/recipe.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/area1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/area2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/chain_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/combine_example.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/complement1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/complement2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/complement3_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/concat1.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/cutout_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/drop_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/end_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/ensembles1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/fill_missing_dates1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/fill_missing_dates2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/fill_missing_gaps_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/frequency1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/frequency2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/grids1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/iterating_missing_dates1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/iterating_missing_dates2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/iterating_missing_dates3_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/join1.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/matching0_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/matching1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/matching2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/matching3_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/matching4_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/misc1.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/misc2.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/missing_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/number1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/number2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_cloud.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_combine1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_combine2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_complex.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_dict_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_first_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_list_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_name.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_other.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_path.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/open_yaml_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/rename_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/reorder1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/reorder2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/rescale_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/select1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/select2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/set_missing_dates_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/shuffle_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/some_attributes_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/start_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/statistics_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/subset_example.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/thinning_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/xy1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/xy2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/zip1_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/zip2_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/code/zip_xy_.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/combining.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/configuration.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/configuration.toml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/ensembles.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/grids.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/area-1.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/concat.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/cutout-1.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/cutout-2.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/cutout-3.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/cutout-4.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/cutout-5.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/cutout-6.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/join.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/overlay.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/skip-missing.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/thinning-after.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/images/thinning-before.png +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/introduction.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/matching.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/methods.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/miscellaneous.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/missing.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/opening.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/other.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/selecting.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/statistics.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/subsetting.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/using/zip.rst +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/pyproject.toml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/setup.cfg +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/__main__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/cleanup.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/compare.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/copy.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/finalise.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/init-additions.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/init.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/inspect.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/load-additions.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/load.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/patch.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/publish.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/commands/scan.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/compute/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/compute/recentre.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/check.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/chunks.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/config.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/empty.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/noop.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/orog_to_z.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/pressure_level_relative_humidity_to_specific_humidity.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/pressure_level_specific_humidity_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/rename.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/rotate_winds.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/single_level_dewpoint_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/single_level_relative_humidity_to_dewpoint.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/single_level_relative_humidity_to_specific_humidity.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/single_level_specific_humidity_to_relative_humidity.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/speeddir_to_uv.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/sum.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/unrotate_winds.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/uv_to_speeddir.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/filters/wz_to_w.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/constants.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/empty.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/forcings.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/grib.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/hindcasts.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/netcdf.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/opendap.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/recentre.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/source.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/tendencies.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/coordinates.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/field.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/fieldlist.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/flavour.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/grid.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/metadata.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/patch.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/time.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray/variable.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray_kerchunk.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/xarray_zarr.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/functions/sources/zenodo.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/action.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/concat.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/context.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/data_sources.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/empty.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/filter.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/function.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/join.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/misc.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/pipe.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/repeated_dates.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/step.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/template.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/trace.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/patch.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/persistent.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/size.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/statistics/summary.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/utils.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/writer.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/zarr.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/complement.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/concat.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/dataset.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/debug.css +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/debug.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/ensemble.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/fill_missing.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/forwards.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/grids.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/indexing.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/interpolate.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/join.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/masked.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/merge.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/missing.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/rescale.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/select.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/statistics.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/stores.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/subset.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/unchecked.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/data/xy.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/dates/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/dates/groups.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/testing.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/utils/__init__.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/utils/fields.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi_datasets.egg-info/requires.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/concat.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/join.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/missing.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/nan.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/pipe.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/recentre.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/run.sh +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create/test_create.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create-perturbations-full.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/create-shift.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/test_chunks.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/test_dates.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/test_indexing.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/xarray/test_kerchunk.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/xarray/test_netcdf.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/xarray/test_samples.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tests/xarray/test_zarr.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/.gitignore +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/examples/Makefile +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/Makefile +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids.ipynb +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids1.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids2.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids3.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids4.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids5.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids6.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids7.yaml +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/grids/grids_multilam.ipynb +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/make-sample-dataset.py +0 -0
- {anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/tools/upload-sample-dataset.py +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This workflow will upload a Python Package using Twine when a release is created
|
|
2
|
+
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
|
3
|
+
|
|
4
|
+
name: Upload Python Package
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
release:
|
|
8
|
+
types: [created]
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
# quality:
|
|
12
|
+
# if: ${{ !contains(github.repository, 'private') }}
|
|
13
|
+
# uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-precommit-run.yml@v2
|
|
14
|
+
# with:
|
|
15
|
+
# skip-hooks: "no-commit-to-branch"
|
|
16
|
+
|
|
17
|
+
# checks:
|
|
18
|
+
# strategy:
|
|
19
|
+
# matrix:
|
|
20
|
+
# python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
21
|
+
# uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
22
|
+
# with:
|
|
23
|
+
# python-version: ${{ matrix.python-version }}
|
|
24
|
+
|
|
25
|
+
deploy:
|
|
26
|
+
uses: ecmwf-actions/reusable-workflows/.github/workflows/cd-pypi.yml@v2
|
|
27
|
+
secrets: inherit
|
|
@@ -18,6 +18,8 @@ Keep it human-readable, your future self will thank you!
|
|
|
18
18
|
- Use cKDTree instead of KDTree
|
|
19
19
|
- Implement 'complement' feature
|
|
20
20
|
- Add ability to patch xarrays (#160)
|
|
21
|
+
- Add support of ECCC file formats (fstd)
|
|
22
|
+
- Add `use_cdsapi_dataset` option to mars and accumulations
|
|
21
23
|
|
|
22
24
|
### Added
|
|
23
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.14
|
|
4
4
|
Summary: A package to hold various functions to support training of ML models on ECMWF data.
|
|
5
5
|
Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
|
|
6
6
|
License: Apache License
|
|
@@ -83,11 +83,12 @@ class Create(Command):
|
|
|
83
83
|
task("load", options)
|
|
84
84
|
task("finalise", options)
|
|
85
85
|
|
|
86
|
-
task("patch", options)
|
|
87
|
-
|
|
88
86
|
task("init_additions", options)
|
|
89
87
|
task("run_additions", options)
|
|
90
88
|
task("finalise_additions", options)
|
|
89
|
+
|
|
90
|
+
task("patch", options)
|
|
91
|
+
|
|
91
92
|
task("cleanup", options)
|
|
92
93
|
task("verify", options)
|
|
93
94
|
|
|
@@ -153,6 +154,7 @@ class Create(Command):
|
|
|
153
154
|
|
|
154
155
|
with ExecutorClass(max_workers=1) as executor:
|
|
155
156
|
executor.submit(task, "finalise-additions", options).result()
|
|
157
|
+
executor.submit(task, "patch", options).result()
|
|
156
158
|
executor.submit(task, "cleanup", options).result()
|
|
157
159
|
executor.submit(task, "verify", options).result()
|
|
158
160
|
|
|
@@ -79,7 +79,10 @@ def json_tidy(o):
|
|
|
79
79
|
)
|
|
80
80
|
return o.isoformat()
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
if isinstance(o, (np.float32, np.float64)):
|
|
83
|
+
return float(o)
|
|
84
|
+
|
|
85
|
+
raise TypeError(f"{repr(o)} is not JSON serializable {type(o)}")
|
|
83
86
|
|
|
84
87
|
|
|
85
88
|
def build_statistics_dates(dates, start, end):
|
|
@@ -596,6 +599,8 @@ class Load(Actor, HasRegistryMixin, HasStatisticTempMixin, HasElementForDataMixi
|
|
|
596
599
|
# There is one cube to load for each result.
|
|
597
600
|
dates = list(result.group_of_dates)
|
|
598
601
|
|
|
602
|
+
LOG.debug(f"Loading cube for {len(dates)} dates")
|
|
603
|
+
|
|
599
604
|
cube = result.get_cube()
|
|
600
605
|
shape = cube.extended_user_shape
|
|
601
606
|
dates_in_data = cube.user_coords["valid_datetime"]
|
|
@@ -642,12 +647,14 @@ class Load(Actor, HasRegistryMixin, HasStatisticTempMixin, HasElementForDataMixi
|
|
|
642
647
|
indexes = dates_to_indexes(self.dates, dates_in_data)
|
|
643
648
|
|
|
644
649
|
array = ViewCacheArray(self.data_array, shape=shape, indexes=indexes)
|
|
650
|
+
LOG.info(f"Loading array shape={shape}, indexes={len(indexes)}")
|
|
645
651
|
self.load_cube(cube, array)
|
|
646
652
|
|
|
647
653
|
stats = compute_statistics(array.cache, self.variables_names, allow_nans=self._get_allow_nans())
|
|
648
654
|
self.tmp_statistics.write(indexes, stats, dates=dates_in_data)
|
|
649
|
-
|
|
655
|
+
LOG.info("Flush data array")
|
|
650
656
|
array.flush()
|
|
657
|
+
LOG.info("Flushed data array")
|
|
651
658
|
|
|
652
659
|
def _get_allow_nans(self):
|
|
653
660
|
config = self.main_config
|
|
@@ -740,6 +747,11 @@ class AdditionsMixin:
|
|
|
740
747
|
if not self.delta.total_seconds() % frequency.total_seconds() == 0:
|
|
741
748
|
LOG.debug(f"Delta {self.delta} is not a multiple of frequency {frequency}. Skipping.")
|
|
742
749
|
return True
|
|
750
|
+
|
|
751
|
+
if self.dataset.zarr_metadata.get("build", {}).get("additions", None) is False:
|
|
752
|
+
LOG.warning(f"Additions are disabled for {self.path} in the recipe.")
|
|
753
|
+
return True
|
|
754
|
+
|
|
743
755
|
return False
|
|
744
756
|
|
|
745
757
|
@cached_property
|
|
@@ -253,6 +253,7 @@ def _compute_accumulations(
|
|
|
253
253
|
data_accumulation_period=None,
|
|
254
254
|
patch=_identity,
|
|
255
255
|
base_times=None,
|
|
256
|
+
use_cdsapi_dataset=None,
|
|
256
257
|
):
|
|
257
258
|
adjust_step = isinstance(user_accumulation_period, int)
|
|
258
259
|
|
|
@@ -311,7 +312,9 @@ def _compute_accumulations(
|
|
|
311
312
|
|
|
312
313
|
requests.append(patch(r))
|
|
313
314
|
|
|
314
|
-
ds = mars(
|
|
315
|
+
ds = mars(
|
|
316
|
+
context, dates, *requests, request_already_using_valid_datetime=True, use_cdsapi_dataset=use_cdsapi_dataset
|
|
317
|
+
)
|
|
315
318
|
|
|
316
319
|
accumulations = {}
|
|
317
320
|
for a in [AccumulationClass(out, frequency=frequency, **r) for r in requests]:
|
|
@@ -366,7 +369,7 @@ def _scda(request):
|
|
|
366
369
|
return request
|
|
367
370
|
|
|
368
371
|
|
|
369
|
-
def accumulations(context, dates, **request):
|
|
372
|
+
def accumulations(context, dates, use_cdsapi_dataset=None, **request):
|
|
370
373
|
_to_list(request["param"])
|
|
371
374
|
class_ = request.get("class", "od")
|
|
372
375
|
stream = request.get("stream", "oper")
|
|
@@ -395,6 +398,7 @@ def accumulations(context, dates, **request):
|
|
|
395
398
|
dates,
|
|
396
399
|
request,
|
|
397
400
|
user_accumulation_period=user_accumulation_period,
|
|
401
|
+
use_cdsapi_dataset=use_cdsapi_dataset,
|
|
398
402
|
**kwargs,
|
|
399
403
|
)
|
|
400
404
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# (C) Copyright 2025 Anemoi contributors.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed under the terms of the Apache Licence Version 2.0
|
|
4
|
+
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
|
5
|
+
#
|
|
6
|
+
# In applying this licence, ECMWF does not waive the privileges and immunities
|
|
7
|
+
# granted to it by virtue of its status as an intergovernmental organisation
|
|
8
|
+
# nor does it submit to any jurisdiction.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
from .xarray import load_many
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def execute(context, dates, path, *args, **kwargs):
|
|
15
|
+
options = {"engine": "fstd"}
|
|
16
|
+
return load_many("🍁", context, dates, path, *args, options=options, **kwargs)
|
|
@@ -246,6 +246,7 @@ def mars(
|
|
|
246
246
|
*requests,
|
|
247
247
|
request_already_using_valid_datetime=False,
|
|
248
248
|
date_key="date",
|
|
249
|
+
use_cdsapi_dataset=None,
|
|
249
250
|
**kwargs,
|
|
250
251
|
):
|
|
251
252
|
|
|
@@ -305,7 +306,10 @@ def mars(
|
|
|
305
306
|
f"⚠️ Unknown key {k}={v} in MARS request. Did you mean '{did_you_mean(k, MARS_KEYS)}' ?"
|
|
306
307
|
)
|
|
307
308
|
try:
|
|
308
|
-
|
|
309
|
+
if use_cdsapi_dataset:
|
|
310
|
+
ds = ds + from_source("cds", use_cdsapi_dataset, r)
|
|
311
|
+
else:
|
|
312
|
+
ds = ds + from_source("mars", **r)
|
|
309
313
|
except Exception as e:
|
|
310
314
|
if "File is empty:" not in str(e):
|
|
311
315
|
raise
|
{anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/input/result.py
RENAMED
|
@@ -459,7 +459,7 @@ class Result:
|
|
|
459
459
|
if self.group_of_dates is not None:
|
|
460
460
|
dates = f" {len(self.group_of_dates)} dates"
|
|
461
461
|
dates += " ("
|
|
462
|
-
dates += "/".join(d.strftime("%Y-%m-%
|
|
462
|
+
dates += "/".join(d.strftime("%Y-%m-%dT%H:%M") for d in self.group_of_dates)
|
|
463
463
|
if len(dates) > 100:
|
|
464
464
|
dates = dates[:100] + "..."
|
|
465
465
|
dates += ")"
|
{anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/src/anemoi/datasets/create/statistics/__init__.py
RENAMED
|
@@ -18,6 +18,7 @@ import shutil
|
|
|
18
18
|
import socket
|
|
19
19
|
|
|
20
20
|
import numpy as np
|
|
21
|
+
import tqdm
|
|
21
22
|
from anemoi.utils.provenance import gather_provenance_info
|
|
22
23
|
|
|
23
24
|
from ..check import check_data_values
|
|
@@ -134,7 +135,7 @@ def check_variance(x, variables_names, minimum, maximum, mean, count, sums, squa
|
|
|
134
135
|
|
|
135
136
|
def compute_statistics(array, check_variables_names=None, allow_nans=False):
|
|
136
137
|
"""Compute statistics for a given array, provides minimum, maximum, sum, squares, count and has_nans as a dictionary."""
|
|
137
|
-
|
|
138
|
+
LOG.info(f"Computing statistics for {array.shape} array")
|
|
138
139
|
nvars = array.shape[1]
|
|
139
140
|
|
|
140
141
|
LOG.debug(f"Stats {nvars}, {array.shape}, {check_variables_names}")
|
|
@@ -149,7 +150,7 @@ def compute_statistics(array, check_variables_names=None, allow_nans=False):
|
|
|
149
150
|
maximum = np.zeros(stats_shape, dtype=np.float64)
|
|
150
151
|
has_nans = np.zeros(stats_shape, dtype=np.bool_)
|
|
151
152
|
|
|
152
|
-
for i, chunk in enumerate(array):
|
|
153
|
+
for i, chunk in tqdm.tqdm(enumerate(array), delay=1, total=array.shape[0], desc="Computing statistics"):
|
|
153
154
|
values = chunk.reshape((nvars, -1))
|
|
154
155
|
|
|
155
156
|
for j, name in enumerate(check_variables_names):
|
|
@@ -166,6 +167,8 @@ def compute_statistics(array, check_variables_names=None, allow_nans=False):
|
|
|
166
167
|
count[i] = np.sum(~np.isnan(values), axis=1)
|
|
167
168
|
has_nans[i] = np.isnan(values).any()
|
|
168
169
|
|
|
170
|
+
LOG.info(f"Statistics computed for {nvars} variables.")
|
|
171
|
+
|
|
169
172
|
return {
|
|
170
173
|
"minimum": minimum,
|
|
171
174
|
"maximum": maximum,
|
|
@@ -103,6 +103,30 @@ def _as_date(d, dates, last):
|
|
|
103
103
|
|
|
104
104
|
if isinstance(d, str):
|
|
105
105
|
|
|
106
|
+
def isfloat(s):
|
|
107
|
+
try:
|
|
108
|
+
float(s)
|
|
109
|
+
return True
|
|
110
|
+
except ValueError:
|
|
111
|
+
return False
|
|
112
|
+
|
|
113
|
+
if d.endswith("%") and isfloat(d[:-1]):
|
|
114
|
+
x = float(d[:-1])
|
|
115
|
+
if not 0 <= x <= 100:
|
|
116
|
+
raise ValueError(f"Invalid date: {d}")
|
|
117
|
+
i_float = x * len(dates) / 100
|
|
118
|
+
|
|
119
|
+
epsilon = 2 ** (-30)
|
|
120
|
+
if len(dates) > 1 / epsilon:
|
|
121
|
+
LOG.warning("Too many dates to use percentage, one date may be lost in rounding")
|
|
122
|
+
|
|
123
|
+
if last:
|
|
124
|
+
index = int(i_float + epsilon) - 1
|
|
125
|
+
else:
|
|
126
|
+
index = int(i_float - epsilon)
|
|
127
|
+
index = max(0, min(len(dates) - 1, index))
|
|
128
|
+
return dates[index]
|
|
129
|
+
|
|
106
130
|
if "-" in d and ":" in d:
|
|
107
131
|
date, time = d.replace(" ", "T").split("T")
|
|
108
132
|
year, month, day = [int(_) for _ in date.split("-")]
|
|
@@ -62,6 +62,8 @@ def plot_mask(path, mask, lats, lons, global_lats, global_lons):
|
|
|
62
62
|
plt.savefig(path + "-global-zoomed.png")
|
|
63
63
|
|
|
64
64
|
|
|
65
|
+
# TODO: Use the one from anemoi.utils.grids instead
|
|
66
|
+
# from anemoi.utils.grids import ...
|
|
65
67
|
def xyz_to_latlon(x, y, z):
|
|
66
68
|
return (
|
|
67
69
|
np.rad2deg(np.arcsin(np.minimum(1.0, np.maximum(-1.0, z)))),
|
|
@@ -69,6 +71,8 @@ def xyz_to_latlon(x, y, z):
|
|
|
69
71
|
)
|
|
70
72
|
|
|
71
73
|
|
|
74
|
+
# TODO: Use the one from anemoi.utils.grids instead
|
|
75
|
+
# from anemoi.utils.grids import ...
|
|
72
76
|
def latlon_to_xyz(lat, lon, radius=1.0):
|
|
73
77
|
# https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates
|
|
74
78
|
# We assume that the Earth is a sphere of radius 1 so N(phi) = 1
|
|
@@ -380,6 +384,8 @@ def serialise_mask(mask):
|
|
|
380
384
|
|
|
381
385
|
|
|
382
386
|
def nearest_grid_points(source_latitudes, source_longitudes, target_latitudes, target_longitudes):
|
|
387
|
+
# TODO: Use the one from anemoi.utils.grids instead
|
|
388
|
+
# from anemoi.utils.grids import ...
|
|
383
389
|
from scipy.spatial import cKDTree
|
|
384
390
|
|
|
385
391
|
source_xyz = latlon_to_xyz(source_latitudes, source_longitudes)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: anemoi-datasets
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.14
|
|
4
4
|
Summary: A package to hold various functions to support training of ML models on ECMWF data.
|
|
5
5
|
Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
|
|
6
6
|
License: Apache License
|
|
@@ -260,6 +260,7 @@ src/anemoi/datasets/create/functions/filters/wz_to_w.py
|
|
|
260
260
|
src/anemoi/datasets/create/functions/sources/__init__.py
|
|
261
261
|
src/anemoi/datasets/create/functions/sources/accumulations.py
|
|
262
262
|
src/anemoi/datasets/create/functions/sources/constants.py
|
|
263
|
+
src/anemoi/datasets/create/functions/sources/eccc_fstd.py
|
|
263
264
|
src/anemoi/datasets/create/functions/sources/empty.py
|
|
264
265
|
src/anemoi/datasets/create/functions/sources/forcings.py
|
|
265
266
|
src/anemoi/datasets/create/functions/sources/grib.py
|
|
@@ -347,6 +348,7 @@ tests/create/missing.yaml
|
|
|
347
348
|
tests/create/nan.yaml
|
|
348
349
|
tests/create/pipe.yaml
|
|
349
350
|
tests/create/recentre.yaml
|
|
351
|
+
tests/create/regrid.yaml
|
|
350
352
|
tests/create/run.sh
|
|
351
353
|
tests/create/test_create.py
|
|
352
354
|
tests/xarray/test_kerchunk.py
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
dates:
|
|
3
|
+
start: 2020-12-30 00:00:00
|
|
4
|
+
end: 2021-01-03 12:00:00
|
|
5
|
+
frequency: 12h
|
|
6
|
+
|
|
7
|
+
input:
|
|
8
|
+
join:
|
|
9
|
+
- mars:
|
|
10
|
+
expver: "0001"
|
|
11
|
+
class: ea
|
|
12
|
+
grid: o48
|
|
13
|
+
param: [2t]
|
|
14
|
+
levtype: sfc
|
|
15
|
+
stream: oper
|
|
16
|
+
type: an
|
|
17
|
+
- pipe:
|
|
18
|
+
- mars:
|
|
19
|
+
expver: "0001"
|
|
20
|
+
class: ea
|
|
21
|
+
grid: o32
|
|
22
|
+
param: [q]
|
|
23
|
+
levtype: pl
|
|
24
|
+
level: [50]
|
|
25
|
+
stream: oper
|
|
26
|
+
type: an
|
|
27
|
+
- regrid:
|
|
28
|
+
# method: linear
|
|
29
|
+
method: nearest
|
|
30
|
+
in_grid: o32
|
|
31
|
+
out_grid: o48
|
|
@@ -880,6 +880,51 @@ def test_dates_using_list():
|
|
|
880
880
|
assert as_last_date("2021", dates) == np.datetime64("2021-12-31T06:00:00")
|
|
881
881
|
|
|
882
882
|
|
|
883
|
+
@mockup_open_zarr
|
|
884
|
+
def test_dates_using_list_2():
|
|
885
|
+
dates = [np.datetime64("2021-01-01T00:00:00") + i * np.timedelta64(24, "h") for i in range(0, 10)]
|
|
886
|
+
assert len(dates) == 10
|
|
887
|
+
|
|
888
|
+
assert dates[0] == as_first_date("0%", dates)
|
|
889
|
+
assert dates[0] == as_last_date("0%", dates)
|
|
890
|
+
|
|
891
|
+
assert dates[0] == as_first_date("0.01%", dates)
|
|
892
|
+
assert dates[0] == as_last_date("0.01%", dates)
|
|
893
|
+
|
|
894
|
+
assert dates[0] == as_first_date("9.99%", dates)
|
|
895
|
+
assert dates[0] == as_last_date("9.99%", dates)
|
|
896
|
+
|
|
897
|
+
assert dates[0] == as_first_date("10%", dates)
|
|
898
|
+
assert dates[0] == as_last_date("10%", dates)
|
|
899
|
+
|
|
900
|
+
assert dates[1] == as_first_date("10.01%", dates)
|
|
901
|
+
assert dates[0] == as_last_date("10.01%", dates)
|
|
902
|
+
|
|
903
|
+
assert dates[1] == as_first_date("19.99%", dates)
|
|
904
|
+
assert dates[0] == as_last_date("19.99%", dates)
|
|
905
|
+
|
|
906
|
+
assert dates[1] == as_first_date("20%", dates)
|
|
907
|
+
assert dates[1] == as_last_date("20%", dates)
|
|
908
|
+
|
|
909
|
+
assert dates[2] == as_first_date("20.01%", dates)
|
|
910
|
+
assert dates[1] == as_last_date("20.01%", dates)
|
|
911
|
+
|
|
912
|
+
assert dates[-2] == as_first_date("89.99%", dates)
|
|
913
|
+
assert dates[-3] == as_last_date("89.99%", dates)
|
|
914
|
+
|
|
915
|
+
assert dates[-2] == as_first_date("90%", dates)
|
|
916
|
+
assert dates[-2] == as_last_date("90%", dates)
|
|
917
|
+
|
|
918
|
+
assert dates[-1] == as_first_date("90.01%", dates)
|
|
919
|
+
assert dates[-2] == as_last_date("90.01%", dates)
|
|
920
|
+
|
|
921
|
+
assert dates[-1] == as_first_date("99.99%", dates)
|
|
922
|
+
assert dates[-2] == as_last_date("99.99%", dates)
|
|
923
|
+
|
|
924
|
+
assert dates[-1] == as_first_date("100%", dates)
|
|
925
|
+
assert dates[-1] == as_last_date("100%", dates)
|
|
926
|
+
|
|
927
|
+
|
|
883
928
|
@mockup_open_zarr
|
|
884
929
|
def test_slice_1():
|
|
885
930
|
test = DatasetTester("test-2021-2021-6h-o96-abcd")
|
|
@@ -7,12 +7,18 @@
|
|
|
7
7
|
# granted to it by virtue of its status as an intergovernmental organisation
|
|
8
8
|
# nor does it submit to any jurisdiction.
|
|
9
9
|
|
|
10
|
+
import os
|
|
11
|
+
|
|
12
|
+
import pytest
|
|
10
13
|
import xarray as xr
|
|
11
14
|
|
|
12
15
|
from anemoi.datasets.create.functions.sources.xarray import XarrayFieldList
|
|
13
16
|
from anemoi.datasets.testing import assert_field_list
|
|
14
17
|
|
|
15
18
|
|
|
19
|
+
# when the opendap server is under maintainance, this test will fail
|
|
20
|
+
# it is skipped by default, and is only run when the SLOW_TESTS env var is set
|
|
21
|
+
@pytest.mark.skipif(not os.environ.get("SLOW_TESTS"), reason="No SLOW_TESTS env var")
|
|
16
22
|
def test_opendap():
|
|
17
23
|
|
|
18
24
|
ds = xr.open_dataset(
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# This workflow will upload a Python Package using Twine when a release is created
|
|
2
|
-
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
|
3
|
-
|
|
4
|
-
name: Upload Python Package
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
release:
|
|
8
|
-
types: [created]
|
|
9
|
-
|
|
10
|
-
jobs:
|
|
11
|
-
quality:
|
|
12
|
-
if: ${{ !contains(github.repository, 'private') }}
|
|
13
|
-
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-precommit-run.yml@v2
|
|
14
|
-
with:
|
|
15
|
-
skip-hooks: "no-commit-to-branch"
|
|
16
|
-
|
|
17
|
-
checks:
|
|
18
|
-
strategy:
|
|
19
|
-
matrix:
|
|
20
|
-
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
21
|
-
uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
|
|
22
|
-
with:
|
|
23
|
-
python-version: ${{ matrix.python-version }}
|
|
24
|
-
|
|
25
|
-
deploy:
|
|
26
|
-
needs: [checks, quality]
|
|
27
|
-
uses: ecmwf-actions/reusable-workflows/.github/workflows/cd-pypi.yml@v2
|
|
28
|
-
secrets: inherit
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/changelog-release-update.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/.github/workflows/readthedocs-pr-update.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/accumulations1.yaml
RENAMED
|
File without changes
|
{anemoi_datasets-0.5.13 → anemoi_datasets-0.5.14}/docs/building/sources/yaml/accumulations2.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|