anemoi-datasets 0.5.23__tar.gz → 0.5.24__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.
Files changed (392) hide show
  1. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/CODEOWNERS +0 -1
  2. anemoi_datasets-0.5.24/.github/pull_request_template.md +13 -0
  3. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/downstream-ci-hpc.yml +1 -1
  4. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-conventional-commit.yml +1 -1
  5. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-label-conventional-commits.yml +1 -1
  6. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-label-file-based.yml +1 -1
  7. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/pr-label-public.yml +1 -1
  8. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/python-pull-request.yml +1 -1
  9. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/readthedocs-pr-update.yml +1 -1
  10. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.gitignore +7 -6
  11. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.pre-commit-config.yaml +2 -1
  12. anemoi_datasets-0.5.24/.release-please-manifest.json +3 -0
  13. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/CHANGELOG.md +12 -0
  14. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/PKG-INFO +3 -3
  15. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/pyproject.toml +2 -2
  16. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/_version.py +2 -2
  17. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/grib.py +1 -1
  18. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/patterns.py +1 -1
  19. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/PKG-INFO +3 -3
  20. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/SOURCES.txt +0 -1
  21. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/requires.txt +2 -2
  22. anemoi_datasets-0.5.24/tests/create/test_sources.py +255 -0
  23. anemoi_datasets-0.5.23/.github/pull_request_template.md +0 -46
  24. anemoi_datasets-0.5.23/.github/release.yml +0 -23
  25. anemoi_datasets-0.5.23/.release-please-manifest.json +0 -3
  26. anemoi_datasets-0.5.23/tests/create/test_sources.py +0 -139
  27. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.gitattributes +0 -0
  28. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  29. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/ci-hpc-config.yml +0 -0
  30. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/dependabot.yml +0 -0
  31. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/labeler.yml +0 -0
  32. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/push-to-private.yml +0 -0
  33. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/python-publish.yml +0 -0
  34. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.github/workflows/release-please.yml +0 -0
  35. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.readthedocs.yaml +0 -0
  36. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.release-please-config.json +0 -0
  37. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/.vscode/spellright.dict +0 -0
  38. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/03-constant-fields.rst +0 -0
  39. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/CONTRIBUTORS.md +0 -0
  40. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/LICENSE +0 -0
  41. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/README.md +0 -0
  42. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/Makefile +0 -0
  43. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/2t_map_example.png +0 -0
  44. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/area-1.png +0 -0
  45. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/concat.png +0 -0
  46. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-1.png +0 -0
  47. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-2.png +0 -0
  48. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-3.png +0 -0
  49. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-4.png +0 -0
  50. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-5.png +0 -0
  51. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/cutout-6.png +0 -0
  52. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/join.png +0 -0
  53. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/logo.png +0 -0
  54. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/overlay.png +0 -0
  55. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/matrix.excalidraw +0 -0
  56. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/matrix.png +0 -0
  57. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/overview.excalidraw +0 -0
  58. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/overview.png +0 -0
  59. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/recipe.excalidraw +0 -0
  60. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/schemas/recipe.png +0 -0
  61. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/skip-missing.png +0 -0
  62. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/style.css +0 -0
  63. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/thinning-after.png +0 -0
  64. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_static/thinning-before.png +0 -0
  65. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_templates/.gitkeep +0 -0
  66. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/_templates/apidoc/package.rst.jinja +0 -0
  67. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/apply-fmt.sh +0 -0
  68. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/check-index.sh +0 -0
  69. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/compare-lam.rst +0 -0
  70. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/compare.rst +0 -0
  71. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/copy.rst +0 -0
  72. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/create.rst +0 -0
  73. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/grib-index.rst +0 -0
  74. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/inspect.rst +0 -0
  75. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/introduction.rst +0 -0
  76. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/patch.rst +0 -0
  77. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/cli/scan.rst +0 -0
  78. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/conf.py +0 -0
  79. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/advanced-options.rst +0 -0
  80. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/empty.rst +0 -0
  81. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/noop.rst +0 -0
  82. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/orog_to_z.rst +0 -0
  83. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/regrid.rst +0 -0
  84. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/rename.rst +0 -0
  85. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/rotate_winds.rst +0 -0
  86. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/select.rst +0 -0
  87. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/sum.rst +0 -0
  88. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/unrotate_winds.rst +0 -0
  89. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/wz_to_w.rst +0 -0
  90. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/orog_to_z.yaml +0 -0
  91. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/regrid1.yaml +0 -0
  92. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/regrid2.yaml +0 -0
  93. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/rename.yaml +0 -0
  94. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/sum.yaml +0 -0
  95. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters/yaml/wz_to_w.yaml +0 -0
  96. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/filters.rst +0 -0
  97. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/handling-missing-dates.rst +0 -0
  98. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/handling-missing-values.rst +0 -0
  99. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/incremental.rst +0 -0
  100. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/introduction.rst +0 -0
  101. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/naming-conventions.rst +0 -0
  102. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/naming-variables.rst +0 -0
  103. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/operations.rst +0 -0
  104. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/accumulations.rst +0 -0
  105. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/anemoi-dataset.rst +0 -0
  106. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/cds.rst +0 -0
  107. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/eccc-fstd.rst +0 -0
  108. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/forcings.rst +0 -0
  109. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/grib-index.rst +0 -0
  110. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/grib.rst +0 -0
  111. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/hindcasts.rst +0 -0
  112. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/mars.rst +0 -0
  113. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/netcdf.rst +0 -0
  114. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/opendap.rst +0 -0
  115. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/recentre.rst +0 -0
  116. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/repeated-dates.rst +0 -0
  117. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-based.rst +0 -0
  118. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-kerchunk.py +0 -0
  119. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-kerchunk.rst +0 -0
  120. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/xarray-zarr.rst +0 -0
  121. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/accumulations1.yaml +0 -0
  122. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/accumulations2.yaml +0 -0
  123. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/anemoi-dataset.yaml +0 -0
  124. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/eccc-fstd.yaml +0 -0
  125. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/forcings.yaml +0 -0
  126. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib1.yaml +0 -0
  127. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib2.yaml +0 -0
  128. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib3.yaml +0 -0
  129. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/grib4.yaml +0 -0
  130. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/hindcasts.yaml +0 -0
  131. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/mars-cds.yaml +0 -0
  132. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/mars1.yaml +0 -0
  133. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/mars2.yaml +0 -0
  134. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/netcdf.yaml +0 -0
  135. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/opendap.yaml +0 -0
  136. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/recentre.yaml +0 -0
  137. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates1.yaml +0 -0
  138. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates2.yaml +0 -0
  139. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates3.yaml +0 -0
  140. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/repeated-dates4.yaml +0 -0
  141. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/xarray-based.yaml +0 -0
  142. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/xarray-kerchunk.yaml +0 -0
  143. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/xarray-zarr.yaml +0 -0
  144. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/yaml/zenodo.yaml +0 -0
  145. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources/zenodo.rst +0 -0
  146. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/sources.rst +0 -0
  147. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/statistics.rst +0 -0
  148. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/building/syntax.yaml +0 -0
  149. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/introduction.rst +0 -0
  150. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/combining.rst +0 -0
  151. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/configuration.rst +0 -0
  152. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/configuration.toml +0 -0
  153. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/ensembles.rst +0 -0
  154. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/grids.rst +0 -0
  155. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/introduction.rst +0 -0
  156. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/matching.rst +0 -0
  157. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/methods.rst +0 -0
  158. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/miscellaneous.rst +0 -0
  159. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/missing.rst +0 -0
  160. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/opening.rst +0 -0
  161. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/other.rst +0 -0
  162. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/selecting.rst +0 -0
  163. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/statistics.rst +0 -0
  164. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/subsetting.rst +0 -0
  165. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/using/zip.rst +0 -0
  166. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/Makefile +0 -0
  167. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building1.txt +0 -0
  168. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building1.yaml +0 -0
  169. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building2.txt +0 -0
  170. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building2.yaml +0 -0
  171. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building3.txt +0 -0
  172. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/building3.yaml +0 -0
  173. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/concat.yaml +0 -0
  174. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/hindcasts.yaml +0 -0
  175. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/input.yaml +0 -0
  176. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/missing_dates.yaml +0 -0
  177. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/nan.yaml +0 -0
  178. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/datasets/yaml/pipe.yaml +0 -0
  179. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/dev/contributing.rst +0 -0
  180. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/01-grib-data.rst +0 -0
  181. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/02-cf-data.rst +0 -0
  182. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/03-constant-fields.rst +0 -0
  183. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour1.yaml +0 -0
  184. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour2.yaml +0 -0
  185. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour3.yaml +0 -0
  186. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-flavour4.yaml +0 -0
  187. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe1.yaml +0 -0
  188. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe2.yaml +0 -0
  189. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe3.yaml +0 -0
  190. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe4.yaml +0 -0
  191. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/grib-recipe5.yaml +0 -0
  192. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/netcdf1.yaml +0 -0
  193. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/opendap1.yaml +0 -0
  194. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/xarray-flavour1.yaml +0 -0
  195. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/xarray-patch1.yaml +0 -0
  196. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/xarray-patch2.yaml +0 -0
  197. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/create/yaml/zarr1.yaml +0 -0
  198. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/introduction.rst +0 -0
  199. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/01-interpolate-step-dataset-combination.rst +0 -0
  200. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/02-coutout-complement-combination.rst +0 -0
  201. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/code/cutout-complement1.py +0 -0
  202. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/code/interpolate1.py +0 -0
  203. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/code/interpolate2.py +0 -0
  204. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/yaml/cutout-complement1.yaml +0 -0
  205. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/yaml/interpolate1.yaml +0 -0
  206. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/howtos/usage/yaml/interpolate2.yaml +0 -0
  207. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/index.rst +0 -0
  208. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/installing.rst +0 -0
  209. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/modules/dataset.rst +0 -0
  210. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/modules/filters.rst +0 -0
  211. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/modules/sources.rst +0 -0
  212. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/overview.rst +0 -0
  213. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/pptx/images.pptx +0 -0
  214. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/scripts/api_build.sh +0 -0
  215. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/usage/getting_started.rst +0 -0
  216. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/usage/yaml/aifs-ea-an-oper-0001-mars-o48-2020-2021-6h-v1.yaml +0 -0
  217. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/docs/using/code/trimedge1_.py +0 -0
  218. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/setup.cfg +0 -0
  219. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/__init__.py +0 -0
  220. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/__main__.py +0 -0
  221. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/check.py +0 -0
  222. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/__init__.py +0 -0
  223. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/check.py +0 -0
  224. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/cleanup.py +0 -0
  225. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/compare-lam.py +0 -0
  226. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/compare.py +0 -0
  227. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/copy.py +0 -0
  228. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/create.py +0 -0
  229. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/finalise-additions.py +0 -0
  230. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/finalise.py +0 -0
  231. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/grib-index.py +0 -0
  232. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/init-additions.py +0 -0
  233. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/init.py +0 -0
  234. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/inspect.py +0 -0
  235. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/load-additions.py +0 -0
  236. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/load.py +0 -0
  237. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/patch.py +0 -0
  238. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/publish.py +0 -0
  239. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/commands/scan.py +0 -0
  240. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/compute/__init__.py +0 -0
  241. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/compute/recentre.py +0 -0
  242. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/__init__.py +0 -0
  243. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/check.py +0 -0
  244. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/chunks.py +0 -0
  245. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/config.py +0 -0
  246. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filter.py +0 -0
  247. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/__init__.py +0 -0
  248. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/empty.py +0 -0
  249. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/legacy.py +0 -0
  250. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/noop.py +0 -0
  251. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/orog_to_z.py +0 -0
  252. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/pressure_level_relative_humidity_to_specific_humidity.py +0 -0
  253. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/pressure_level_specific_humidity_to_relative_humidity.py +0 -0
  254. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/rename.py +0 -0
  255. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/rotate_winds.py +0 -0
  256. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_dewpoint_to_relative_humidity.py +0 -0
  257. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_relative_humidity_to_dewpoint.py +0 -0
  258. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_relative_humidity_to_specific_humidity.py +0 -0
  259. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/single_level_specific_humidity_to_relative_humidity.py +0 -0
  260. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/speeddir_to_uv.py +0 -0
  261. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/sum.py +0 -0
  262. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/transform.py +0 -0
  263. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/unrotate_winds.py +0 -0
  264. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/uv_to_speeddir.py +0 -0
  265. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/filters/wz_to_w.py +0 -0
  266. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/__init__.py +0 -0
  267. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/action.py +0 -0
  268. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/concat.py +0 -0
  269. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/context.py +0 -0
  270. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/data_sources.py +0 -0
  271. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/empty.py +0 -0
  272. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/filter.py +0 -0
  273. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/function.py +0 -0
  274. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/join.py +0 -0
  275. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/misc.py +0 -0
  276. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/pipe.py +0 -0
  277. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/repeated_dates.py +0 -0
  278. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/result.py +0 -0
  279. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/step.py +0 -0
  280. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/template.py +0 -0
  281. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/input/trace.py +0 -0
  282. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/patch.py +0 -0
  283. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/persistent.py +0 -0
  284. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/size.py +0 -0
  285. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/source.py +0 -0
  286. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/__init__.py +0 -0
  287. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/accumulations.py +0 -0
  288. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/accumulations2.py +0 -0
  289. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/anemoi_dataset.py +0 -0
  290. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/constants.py +0 -0
  291. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/eccc_fstd.py +0 -0
  292. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/empty.py +0 -0
  293. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/forcings.py +0 -0
  294. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/grib_index.py +0 -0
  295. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/hindcasts.py +0 -0
  296. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/legacy.py +0 -0
  297. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/mars.py +0 -0
  298. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/netcdf.py +0 -0
  299. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/opendap.py +0 -0
  300. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/recentre.py +0 -0
  301. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/source.py +0 -0
  302. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/tendencies.py +0 -0
  303. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray.py +0 -0
  304. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_kerchunk.py +0 -0
  305. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/README.md +0 -0
  306. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/__init__.py +0 -0
  307. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/coordinates.py +0 -0
  308. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/field.py +0 -0
  309. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/fieldlist.py +0 -0
  310. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/flavour.py +0 -0
  311. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/grid.py +0 -0
  312. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/metadata.py +0 -0
  313. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/patch.py +0 -0
  314. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/time.py +0 -0
  315. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_support/variable.py +0 -0
  316. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/xarray_zarr.py +0 -0
  317. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/sources/zenodo.py +0 -0
  318. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/statistics/__init__.py +0 -0
  319. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/statistics/summary.py +0 -0
  320. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/testing.py +0 -0
  321. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/typing.py +0 -0
  322. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/utils.py +0 -0
  323. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/writer.py +0 -0
  324. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/create/zarr.py +0 -0
  325. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/__init__.py +0 -0
  326. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/complement.py +0 -0
  327. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/concat.py +0 -0
  328. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/dataset.py +0 -0
  329. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/debug.css +0 -0
  330. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/debug.py +0 -0
  331. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/ensemble.py +0 -0
  332. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/fill_missing.py +0 -0
  333. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/forwards.py +0 -0
  334. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/grids.py +0 -0
  335. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/indexing.py +0 -0
  336. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/interpolate.py +0 -0
  337. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/join.py +0 -0
  338. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/masked.py +0 -0
  339. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/merge.py +0 -0
  340. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/misc.py +0 -0
  341. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/missing.py +0 -0
  342. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/rescale.py +0 -0
  343. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/select.py +0 -0
  344. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/statistics.py +0 -0
  345. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/stores.py +0 -0
  346. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/subset.py +0 -0
  347. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/unchecked.py +0 -0
  348. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/data/xy.py +0 -0
  349. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/dates/__init__.py +0 -0
  350. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/dates/groups.py +0 -0
  351. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/grids.py +0 -0
  352. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/testing.py +0 -0
  353. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi/datasets/utils/__init__.py +0 -0
  354. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/dependency_links.txt +0 -0
  355. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/entry_points.txt +0 -0
  356. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/src/anemoi_datasets.egg-info/top_level.txt +0 -0
  357. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/accumulation.yaml +0 -0
  358. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/concat.yaml +0 -0
  359. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/join.yaml +0 -0
  360. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/missing.yaml +0 -0
  361. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/nan.yaml +0 -0
  362. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/pipe.yaml +0 -0
  363. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/recentre.yaml +0 -0
  364. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/regrid.yaml +0 -0
  365. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/run.sh +0 -0
  366. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create/test_create.py +0 -0
  367. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create-perturbations-full.yaml +0 -0
  368. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/create-shift.yaml +0 -0
  369. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_chunks.py +0 -0
  370. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_data.py +0 -0
  371. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_data_gridded.py +0 -0
  372. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_dates.py +0 -0
  373. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/test_indexing.py +0 -0
  374. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_netcdf.py +0 -0
  375. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_opendap.py +0 -0
  376. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_samples.py +0 -0
  377. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tests/xarray/test_zarr.py +0 -0
  378. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/.gitignore +0 -0
  379. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/examples/Makefile +0 -0
  380. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/examples/an-oper-2023-2023-2p5-6h-v1.yaml +0 -0
  381. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/Makefile +0 -0
  382. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids.ipynb +0 -0
  383. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids1.yaml +0 -0
  384. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids2.yaml +0 -0
  385. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids3.yaml +0 -0
  386. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids4.yaml +0 -0
  387. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids5.yaml +0 -0
  388. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids6.yaml +0 -0
  389. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids7.yaml +0 -0
  390. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/grids/grids_multilam.ipynb +0 -0
  391. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/make-sample-dataset.py +0 -0
  392. {anemoi_datasets-0.5.23 → anemoi_datasets-0.5.24}/tools/upload-sample-dataset.py +0 -0
@@ -1,4 +1,3 @@
1
-
2
1
  # Workflows
3
2
  /.github/ @ecmwf/AnemoiSecurity
4
3
 
@@ -0,0 +1,13 @@
1
+ ## Description
2
+ <!-- What issue or task does this change relate to? -->
3
+
4
+ ## What problem does this change solve?
5
+ <!-- Describe if it's a bugfix, new feature, doc update, or breaking change -->
6
+
7
+ ## What issue or task does this change relate to?
8
+ <!-- link to Issue Number -->
9
+
10
+ ## Additional notes ##
11
+ <!-- Include any additional information, caveats, or considerations that the reviewer should be aware of. -->
12
+
13
+ ***As a contributor to the Anemoi framework, please ensure that your changes include unit tests, updates to any affected dependencies and documentation, and have been tested in a parallel setting (i.e., with multiple GPUs). As a reviewer, you are also responsible for verifying these aspects and requesting changes if they are not adequately addressed. For guidelines about those please refer to https://anemoi.readthedocs.io/en/latest/***
@@ -1,6 +1,6 @@
1
1
  # This workflow triggers tests on dependent packages.
2
2
  # The dependency tree itself is defined in ecmwf/downstream-ci/
3
- name: Test downstream dependent packages on HPC
3
+ name: Test downstream dependent packages
4
4
 
5
5
  on:
6
6
  # Trigger the workflow on push to main or develop, except tag creation
@@ -1,5 +1,5 @@
1
1
  # This workflow ensures that the PR title follows the Conventional Commit format.
2
- name: "[Pull Request] Ensure Conventional Commit in PR title"
2
+ name: "[PR] Ensure Conventional Commit Title"
3
3
 
4
4
  on:
5
5
  pull_request_target:
@@ -1,6 +1,6 @@
1
1
  # This workflow assigns labels to a pull request based on the Conventional Commits format.
2
2
  # This is necessary for release-please to work properly.
3
- name: "[Pull Request] Label Conventional Commits"
3
+ name: "[PR] Label Conventional Commits"
4
4
 
5
5
  on:
6
6
  pull_request:
@@ -1,6 +1,6 @@
1
1
  # This workflow assigns labels to a pull request based on the files changed in the PR.
2
2
  # The labels are defined in the `.github/labels.yml` file.
3
- name: "[Pull Request] Label File-based"
3
+ name: "[PR] Label File-based"
4
4
  on:
5
5
  pull_request_target:
6
6
  types: [opened, synchronize]
@@ -1,5 +1,5 @@
1
1
  # Manage labels of pull requests that originate from forks
2
- name: "[Pull Request] Label PRs from public forks"
2
+ name: "[PR] Label Forks"
3
3
 
4
4
  on:
5
5
  pull_request_target:
@@ -1,5 +1,5 @@
1
1
  # This workflow runs pre-commit checks and pytest tests against multiple platforms and Python versions.
2
- name: Code Quality checks and Testing
2
+ name: Code Quality and Testing
3
3
 
4
4
  on:
5
5
  pull_request:
@@ -1,6 +1,6 @@
1
1
  # This workflow adds a link to the experimental documentation build to the PR.
2
2
  # This does NOT trigger a build of the documentation, this is handled through webhooks.
3
- name: Read the Docs PR Preview
3
+ name: "[PR] Read the Docs Preview"
4
4
  on:
5
5
  pull_request_target:
6
6
  types:
@@ -94,6 +94,11 @@ dmypy.json
94
94
  *.csv
95
95
  *.xlsx
96
96
  *.xls
97
+ *.json
98
+ *.txt
99
+ *.zip
100
+ *.db
101
+ *.tgz
97
102
 
98
103
  # ML artifacts
99
104
  wandb/
@@ -120,7 +125,8 @@ tmp/
120
125
  temp/
121
126
  logs/
122
127
  _dev/
123
- outputs
128
+ _api/
129
+ ./outputs
124
130
  *tmp_data/
125
131
 
126
132
  # Project specific
@@ -135,8 +141,3 @@ _version.py
135
141
  *.to_upload
136
142
  tempCodeRunnerFile.python
137
143
  Untitled-*.py
138
- *.zip
139
- *.json
140
- *.db
141
- *.tgz
142
- _api/
@@ -39,8 +39,9 @@ repos:
39
39
  - -l 120
40
40
  - --force-single-line-imports
41
41
  - --profile black
42
+ - --project anemoi
42
43
  - repo: https://github.com/astral-sh/ruff-pre-commit
43
- rev: v0.11.8
44
+ rev: v0.11.4
44
45
  hooks:
45
46
  - id: ruff
46
47
  args:
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.5.24"
3
+ }
@@ -8,6 +8,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
  Please add your functional changes to the appropriate section in the PR.
9
9
  Keep it human-readable, your future self will thank you!
10
10
 
11
+ ## [0.5.24](https://github.com/ecmwf/anemoi-datasets/compare/0.5.23...0.5.24) (2025-05-23)
12
+
13
+
14
+ ### Features
15
+
16
+ * verify command ([#279](https://github.com/ecmwf/anemoi-datasets/issues/279)) ([aed36d2](https://github.com/ecmwf/anemoi-datasets/commit/aed36d2ea7a39ea1ae6bbd5f8d01ef0ce7523cde))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * adapt to earthkit 0.14 (ignore_keys issue) ([#331](https://github.com/ecmwf/anemoi-datasets/issues/331)) ([fb3ab8d](https://github.com/ecmwf/anemoi-datasets/commit/fb3ab8d46b8e00c62d8d7cbb1d1afae0efea2054))
22
+
11
23
  ## [0.5.23](https://github.com/ecmwf/anemoi-datasets/compare/0.5.22...0.5.23) (2025-05-07)
12
24
 
13
25
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anemoi-datasets
3
- Version: 0.5.23
3
+ Version: 0.5.24
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
@@ -225,7 +225,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
225
225
  Classifier: Programming Language :: Python :: Implementation :: PyPy
226
226
  Requires-Python: >=3.9
227
227
  License-File: LICENSE
228
- Requires-Dist: anemoi-transform>=0.1.9
228
+ Requires-Dist: anemoi-transform>=0.1.10
229
229
  Requires-Dist: anemoi-utils[provenance]>=0.4.21
230
230
  Requires-Dist: cfunits
231
231
  Requires-Dist: numcodecs<0.16
@@ -241,7 +241,7 @@ Requires-Dist: prettytable; extra == "comparelam"
241
241
  Requires-Dist: termcolor; extra == "comparelam"
242
242
  Provides-Extra: create
243
243
  Requires-Dist: cachetools; extra == "create"
244
- Requires-Dist: earthkit-data[mars]<0.14,>=0.12.4; extra == "create"
244
+ Requires-Dist: earthkit-data[mars]>=0.14; extra == "create"
245
245
  Requires-Dist: earthkit-geo>=0.3; extra == "create"
246
246
  Requires-Dist: earthkit-meteo>=0.3; extra == "create"
247
247
  Requires-Dist: eccodes>=2.39.1; extra == "create"
@@ -49,7 +49,7 @@ dynamic = [
49
49
  "version",
50
50
  ]
51
51
  dependencies = [
52
- "anemoi-transform>=0.1.9",
52
+ "anemoi-transform>=0.1.10",
53
53
  "anemoi-utils[provenance]>=0.4.21",
54
54
  "cfunits",
55
55
  "numcodecs<0.16", # Until we move to zarr3
@@ -71,7 +71,7 @@ optional-dependencies.comparelam = [
71
71
 
72
72
  optional-dependencies.create = [
73
73
  "cachetools",
74
- "earthkit-data[mars]>=0.12.4,<0.14",
74
+ "earthkit-data[mars]>=0.14",
75
75
  "earthkit-geo>=0.3",
76
76
  "earthkit-meteo>=0.3",
77
77
  "eccodes>=2.39.1",
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.5.23'
21
- __version_tuple__ = version_tuple = (0, 5, 23)
20
+ __version__ = version = '0.5.24'
21
+ __version_tuple__ = version_tuple = (0, 5, 24)
@@ -124,7 +124,7 @@ def execute(
124
124
  dates = [d.isoformat() for d in dates]
125
125
 
126
126
  for path in given_paths:
127
- paths = Pattern(path, ignore_missing_keys=True).substitute(*args, date=dates, **kwargs)
127
+ paths = Pattern(path).substitute(*args, date=dates, allow_extra=True, **kwargs)
128
128
 
129
129
  for name in ("grid", "area", "rotation", "frame", "resol", "bitmap"):
130
130
  if name in kwargs:
@@ -79,6 +79,6 @@ def iterate_patterns(
79
79
  kwargs["date"] = dates
80
80
 
81
81
  for path in given_paths:
82
- paths = Pattern(path, ignore_missing_keys=True).substitute(**kwargs)
82
+ paths = Pattern(path).substitute(allow_extra=True, **kwargs)
83
83
  for path in _expand(paths):
84
84
  yield path, dates
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anemoi-datasets
3
- Version: 0.5.23
3
+ Version: 0.5.24
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
@@ -225,7 +225,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
225
225
  Classifier: Programming Language :: Python :: Implementation :: PyPy
226
226
  Requires-Python: >=3.9
227
227
  License-File: LICENSE
228
- Requires-Dist: anemoi-transform>=0.1.9
228
+ Requires-Dist: anemoi-transform>=0.1.10
229
229
  Requires-Dist: anemoi-utils[provenance]>=0.4.21
230
230
  Requires-Dist: cfunits
231
231
  Requires-Dist: numcodecs<0.16
@@ -241,7 +241,7 @@ Requires-Dist: prettytable; extra == "comparelam"
241
241
  Requires-Dist: termcolor; extra == "comparelam"
242
242
  Provides-Extra: create
243
243
  Requires-Dist: cachetools; extra == "create"
244
- Requires-Dist: earthkit-data[mars]<0.14,>=0.12.4; extra == "create"
244
+ Requires-Dist: earthkit-data[mars]>=0.14; extra == "create"
245
245
  Requires-Dist: earthkit-geo>=0.3; extra == "create"
246
246
  Requires-Dist: earthkit-meteo>=0.3; extra == "create"
247
247
  Requires-Dist: eccodes>=2.39.1; extra == "create"
@@ -15,7 +15,6 @@ pyproject.toml
15
15
  .github/dependabot.yml
16
16
  .github/labeler.yml
17
17
  .github/pull_request_template.md
18
- .github/release.yml
19
18
  .github/ISSUE_TEMPLATE/bug_report.md
20
19
  .github/workflows/downstream-ci-hpc.yml
21
20
  .github/workflows/pr-conventional-commit.yml
@@ -1,4 +1,4 @@
1
- anemoi-transform>=0.1.9
1
+ anemoi-transform>=0.1.10
2
2
  anemoi-utils[provenance]>=0.4.21
3
3
  cfunits
4
4
  numcodecs<0.16
@@ -17,7 +17,7 @@ termcolor
17
17
 
18
18
  [create]
19
19
  cachetools
20
- earthkit-data[mars]<0.14,>=0.12.4
20
+ earthkit-data[mars]>=0.14
21
21
  earthkit-geo>=0.3
22
22
  earthkit-meteo>=0.3
23
23
  eccodes>=2.39.1
@@ -0,0 +1,255 @@
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
+ import logging
11
+ import os
12
+ import sys
13
+
14
+ import numpy as np
15
+ import pytest
16
+ from anemoi.utils.testing import get_test_data
17
+ from anemoi.utils.testing import skip_if_offline
18
+ from anemoi.utils.testing import skip_missing_packages
19
+ from anemoi.utils.testing import skip_slow_tests
20
+
21
+ from anemoi.datasets import open_dataset
22
+ from anemoi.datasets.create.testing import create_dataset
23
+
24
+
25
+ @skip_if_offline
26
+ def test_grib() -> None:
27
+ """Test the creation of a dataset from GRIB files.
28
+
29
+ This function tests the creation of a dataset using GRIB files from
30
+ specific dates and verifies the shape of the resulting dataset.
31
+ """
32
+ data1 = get_test_data("anemoi-datasets/create/grib-20100101.grib")
33
+ data2 = get_test_data("anemoi-datasets/create/grib-20100102.grib")
34
+ assert os.path.dirname(data1) == os.path.dirname(data2)
35
+
36
+ path = os.path.dirname(data1)
37
+
38
+ config = {
39
+ "dates": {
40
+ "start": "2010-01-01T00:00:00",
41
+ "end": "2010-01-02T18:00:00",
42
+ "frequency": "6h",
43
+ },
44
+ "input": {
45
+ "grib": {
46
+ "path": os.path.join(path, "grib-{date:strftime(%Y%m%d)}.grib"),
47
+ },
48
+ },
49
+ }
50
+
51
+ created = create_dataset(config=config, output=None)
52
+ ds = open_dataset(created)
53
+ assert ds.shape == (8, 12, 1, 162)
54
+
55
+
56
+ @pytest.mark.skipif(
57
+ sys.version_info < (3, 10), reason="Type hints from anemoi-transform are not compatible with Python < 3.10"
58
+ )
59
+ @skip_if_offline
60
+ def test_grib_gridfile() -> None:
61
+ """Test the creation of a dataset from GRIB files with an unstructured grid.
62
+
63
+ This function tests the creation of a dataset using GRIB files from
64
+ specific dates and verifies the shape of the resulting dataset.
65
+ This GRIB data is defined on an unstructured grid and therefore requires
66
+ specifying a grid file.
67
+ """
68
+ data1 = get_test_data("anemoi-datasets/create/grib-iconch1-20250101.grib")
69
+ data2 = get_test_data("anemoi-datasets/create/grib-iconch1-20250102.grib")
70
+ gridfile = get_test_data("anemoi-datasets/create/icon_grid_0001_R19B08_mch.nc")
71
+ assert os.path.dirname(data1) == os.path.dirname(data2)
72
+
73
+ path = os.path.dirname(data1)
74
+
75
+ config = {
76
+ "dates": {
77
+ "start": "2025-01-01T00:00:00",
78
+ "end": "2025-01-02T18:00:00",
79
+ "frequency": "6h",
80
+ },
81
+ "input": {
82
+ "grib": {
83
+ "path": os.path.join(path, "grib-iconch1-{date:strftime(%Y%m%d)}.grib"),
84
+ "grid_definition": {"icon": {"path": gridfile}},
85
+ "flavour": [[{"levtype": "sfc"}, {"levelist": None}]],
86
+ },
87
+ },
88
+ }
89
+
90
+ created = create_dataset(config=config, output=None)
91
+ ds = open_dataset(created)
92
+ assert ds.shape == (8, 1, 1, 1147980)
93
+ assert ds.variables == ["2t"]
94
+
95
+
96
+ @pytest.mark.skipif(
97
+ sys.version_info < (3, 10), reason="Type hints from anemoi-transform are not compatible with Python < 3.10"
98
+ )
99
+ @skip_if_offline
100
+ @pytest.mark.parametrize(
101
+ "refinement_level_c,shape",
102
+ (
103
+ (2, (2, 13, 1, 2880)),
104
+ (7, (2, 13, 1, 2949120)),
105
+ ),
106
+ )
107
+ def test_grib_gridfile_with_refinement_level(refinement_level_c: str, shape: tuple[int, int, int, int, int]) -> None:
108
+ """Test the creation of a dataset from GRIB files with an unstructured grid.
109
+
110
+ This function tests the creation of a dataset using GRIB files from
111
+ specific dates and verifies the shape of the resulting dataset.
112
+ This GRIB data is defined on an unstructured grid and therefore requires
113
+ specifying a grid file. The `refinement_level_c` selection key and
114
+ strftimedelta are used.
115
+ """
116
+
117
+ p = "anemoi-datasets/create/test_grib_gridfile_with_refinement_level/"
118
+ data1 = get_test_data(p + "2023010103+fc_R03B07_rea_ml.2023010100")
119
+ data2 = get_test_data(p + "2023010106+fc_R03B07_rea_ml.2023010103")
120
+ gridfile = get_test_data("dwd/2024-12-11_00/icon_grid_0026_R03B07_subsetAICON.nc")
121
+ assert os.path.dirname(data1) == os.path.dirname(data2)
122
+
123
+ path = os.path.dirname(data1)
124
+
125
+ param = ["pres", "t", "u", "v", "q"]
126
+ level = [101, 119]
127
+ forcings = ["cos_latitude", "sin_latitude", "cos_julian_day"]
128
+ assert len(param) * len(level) + len(forcings) == shape[1]
129
+
130
+ grib = {
131
+ "path": os.path.join(path, "{date:strftimedelta(+3h;%Y%m%d%H)}+fc_R03B07_rea_ml.{date:strftime(%Y%m%d%H)}"),
132
+ "grid_definition": {"icon": {"path": gridfile, "refinement_level_c": refinement_level_c}},
133
+ "param": param,
134
+ "level": level,
135
+ }
136
+ refinement_filter = {"icon_refinement_level": {"grid": gridfile, "refinement_level_c": refinement_level_c}}
137
+
138
+ config = {
139
+ "dates": {
140
+ "start": "2023-01-01T00:00:00",
141
+ "end": "2023-01-01T03:00:00",
142
+ "frequency": "3h",
143
+ },
144
+ "input": {
145
+ "pipe": [
146
+ {
147
+ "join": [
148
+ {"grib": grib},
149
+ {"forcings": {"param": forcings, "template": "${input.pipe.0.join.0.grib}"}},
150
+ ]
151
+ },
152
+ refinement_filter,
153
+ ]
154
+ },
155
+ }
156
+
157
+ created = create_dataset(config=config, output=None)
158
+ ds = open_dataset(created)
159
+ assert ds.shape == shape
160
+ assert np.all(ds.data[ds.to_index(date=0, variable="cos_julian_day", member=0)] == 1.0), "cos(julian_day = 0) == 1"
161
+ assert np.all(ds.data[ds.to_index(date=0, variable="u_101", member=0)] == 42.0), "artificially constant data day 0"
162
+ assert np.all(ds.data[ds.to_index(date=1, variable="v_119", member=0)] == 21.0), "artificially constant data day 1"
163
+ assert ds.data[ds.to_index(date=0, variable="cos_latitude", member=0)].max() > 0.9
164
+ assert ds.data[ds.to_index(date=0, variable="cos_latitude", member=0)].min() >= 0
165
+ assert ds.data[ds.to_index(date=0, variable="sin_latitude", member=0)].max() > 0.9
166
+ assert ds.data[ds.to_index(date=0, variable="sin_latitude", member=0)].min() < -0.9
167
+
168
+
169
+ @skip_if_offline
170
+ def test_netcdf() -> None:
171
+ """Test for NetCDF files.
172
+
173
+ This function tests the creation of a dataset from a NetCDF file.
174
+ """
175
+ data = get_test_data("anemoi-datasets/create/netcdf.nc")
176
+ config = {
177
+ "dates": {
178
+ "start": "2023-01-01",
179
+ "end": "2023-01-02",
180
+ "frequency": "1d",
181
+ },
182
+ "input": {
183
+ "netcdf": {"path": data},
184
+ },
185
+ }
186
+
187
+ created = create_dataset(config=config, output=None)
188
+ ds = open_dataset(created)
189
+ assert ds.shape == (2, 2, 1, 162)
190
+
191
+
192
+ @skip_missing_packages("fstd", "rpnpy.librmn")
193
+ def test_eccs_fstd() -> None:
194
+ """Test for 'fstd' files from ECCC."""
195
+ # See https://github.com/neishm/fstd2nc
196
+
197
+ data = get_test_data("anemoi-datasets/create/2025031000_000_TT.fstd", gzipped=True)
198
+ config = {
199
+ "dates": {
200
+ "start": "2023-01-01",
201
+ "end": "2023-01-02",
202
+ "frequency": "1d",
203
+ },
204
+ "input": {
205
+ "eccc_fstd": {"path": data},
206
+ },
207
+ }
208
+
209
+ created = create_dataset(config=config, output=None)
210
+ ds = open_dataset(created)
211
+ assert ds.shape == (2, 2, 1, 162)
212
+
213
+
214
+ @skip_slow_tests
215
+ @skip_if_offline
216
+ @skip_missing_packages("kerchunk", "s3fs")
217
+ def test_kerchunk() -> None:
218
+ """Test for Kerchunk JSON files.
219
+
220
+ This function tests the creation of a dataset from a Kerchunk JSON file.
221
+
222
+ """
223
+ # Note: last version of kerchunk compatible with zarr 2 is 0.2.7
224
+
225
+ data = get_test_data("anemoi-datasets/create/kerchunck.json", gzipped=True)
226
+
227
+ config = {
228
+ "dates": {
229
+ "start": "2024-03-01T00:00:00",
230
+ "end": "2024-03-01T18:00:00",
231
+ "frequency": "6h",
232
+ },
233
+ "input": {
234
+ "xarray-kerchunk": {
235
+ "json": data,
236
+ "param": ["T"],
237
+ "level": [1000],
238
+ },
239
+ },
240
+ }
241
+
242
+ created = create_dataset(config=config, output=None)
243
+ ds = open_dataset(created)
244
+ assert ds.shape == (4, 1, 1, 1038240)
245
+
246
+
247
+ if __name__ == "__main__":
248
+ logging.basicConfig(level=logging.INFO)
249
+ test_kerchunk()
250
+ exit()
251
+ """Run all test functions that start with 'test_'."""
252
+ for name, obj in list(globals().items()):
253
+ if name.startswith("test_") and callable(obj):
254
+ print(f"Running {name}...")
255
+ obj()
@@ -1,46 +0,0 @@
1
- ## Description
2
-
3
- <!-- Provide a brief summary of the changes introduced in this pull request. -->
4
-
5
- ## Type of Change
6
-
7
- - [ ] Bug fix (non-breaking change which fixes an issue)
8
- - [ ] New feature (non-breaking change which adds functionality)
9
- - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10
- - [ ] Documentation update
11
-
12
- ## Issue Number
13
-
14
- <!-- Link the Issue number this change addresses, ideally in one of the "magic format" such as Closes #XYZ -->
15
-
16
- <!-- Alternatively, explain the motivation behind the changes and the context in which they are being made. -->
17
-
18
- ## Code Compatibility
19
-
20
- - [ ] I have performed a self-review of my code
21
-
22
- ### Code Performance and Testing
23
-
24
- - [ ] I have added tests that prove my fix is effective or that my feature works
25
- - [ ] I ran the [complete Pytest test](https://anemoi.readthedocs.io/projects/training/en/latest/dev/testing.html) suite locally, and they pass
26
-
27
- <!-- In case this affects the model sharding or other specific components please describe these here. -->
28
-
29
- ### Dependencies
30
-
31
- - [ ] I have ensured that the code is still pip-installable after the changes and runs
32
- - [ ] I have tested that new dependencies themselves are pip-installable.
33
-
34
- <!-- List any new dependencies that are required for this change and the justification to add them. -->
35
-
36
- ### Documentation
37
-
38
- - [ ] My code follows the style guidelines of this project
39
- - [ ] I have updated the documentation and docstrings to reflect the changes
40
- - [ ] I have added comments to my code, particularly in hard-to-understand areas
41
-
42
- <!-- Describe any major updates to the documentation -->
43
-
44
- ## Additional Notes
45
-
46
- <!-- Include any additional information, caveats, or considerations that the reviewer should be aware of. -->
@@ -1,23 +0,0 @@
1
- # .github/release.yml
2
- # https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
3
-
4
- changelog:
5
- exclude:
6
- labels:
7
- - ignore-for-release
8
- - no-changelog
9
- authors:
10
- - pre-commit-ci
11
- categories:
12
- - title: Breaking Changes 🛠
13
- labels:
14
- - "breaking change"
15
- - title: Exciting New Features 🎉
16
- labels:
17
- - enhancement
18
- - title: Config Changes 📑
19
- labels:
20
- - config
21
- - title: Other Changes 🔗
22
- labels:
23
- - "*"
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.5.23"
3
- }