anemoi-utils 0.4.0__tar.gz → 0.4.1__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.

Potentially problematic release.


This version of anemoi-utils might be problematic. Click here for more details.

Files changed (66) hide show
  1. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/CODEOWNERS +3 -3
  2. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/python-publish.yml +1 -1
  3. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/python-pull-request.yml +1 -1
  4. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.pre-commit-config.yaml +1 -2
  5. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/CHANGELOG.md +8 -1
  6. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/PKG-INFO +3 -2
  7. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/pyproject.toml +2 -2
  8. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/__init__.py +1 -1
  9. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/_version.py +2 -2
  10. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/cli.py +1 -0
  11. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/config.py +19 -0
  12. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/humanize.py +1 -1
  13. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/text.py +6 -0
  14. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi_utils.egg-info/PKG-INFO +3 -2
  15. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi_utils.egg-info/requires.txt +4 -1
  16. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.gitattributes +0 -0
  17. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/ci-hpc-config.yml +0 -0
  18. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/changelog-pr-update.yml +0 -0
  19. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/changelog-release-update.yml +0 -0
  20. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/ci.yml +0 -0
  21. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/label-public-pr.yml +0 -0
  22. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.github/workflows/readthedocs-pr-update.yml +0 -0
  23. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.gitignore +0 -0
  24. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/.readthedocs.yaml +0 -0
  25. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/LICENSE +0 -0
  26. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/README.md +0 -0
  27. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/Makefile +0 -0
  28. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/_static/logo.png +0 -0
  29. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/_static/style.css +0 -0
  30. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/_templates/.gitkeep +0 -0
  31. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/conf.py +0 -0
  32. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/index.rst +0 -0
  33. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/installing.rst +0 -0
  34. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/checkpoints.rst +0 -0
  35. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/config.rst +0 -0
  36. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/dates.rst +0 -0
  37. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/grib.rst +0 -0
  38. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/humanize.rst +0 -0
  39. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/provenance.rst +0 -0
  40. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/s3.rst +0 -0
  41. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/docs/modules/text.rst +0 -0
  42. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/setup.cfg +0 -0
  43. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/__main__.py +0 -0
  44. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/caching.py +0 -0
  45. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/checkpoints.py +0 -0
  46. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/commands/__init__.py +0 -0
  47. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/commands/config.py +0 -0
  48. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/dates.py +0 -0
  49. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/grib.py +0 -0
  50. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/hindcasts.py +0 -0
  51. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/mars/__init__.py +0 -0
  52. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/mars/mars.yaml +0 -0
  53. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/provenance.py +0 -0
  54. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/s3.py +0 -0
  55. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/sanitise.py +0 -0
  56. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/sanitize.py +0 -0
  57. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi/utils/timer.py +0 -0
  58. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi_utils.egg-info/SOURCES.txt +0 -0
  59. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi_utils.egg-info/dependency_links.txt +0 -0
  60. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi_utils.egg-info/entry_points.txt +0 -0
  61. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/src/anemoi_utils.egg-info/top_level.txt +0 -0
  62. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/tests/test_dates.py +0 -0
  63. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/tests/test_frequency.py +0 -0
  64. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/tests/test_provenance.py +0 -0
  65. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/tests/test_sanetise.py +0 -0
  66. {anemoi_utils-0.4.0 → anemoi_utils-0.4.1}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  # CODEOWNERS file
2
2
 
3
3
  # Protect workflow files
4
- /.github/ @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb
5
- /.pre-commit-config.yaml @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb
6
- /pyproject.toml @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb
4
+ /.github/ @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb @anaprietonem @HCookie @JPXKQX @mchantry
5
+ /.pre-commit-config.yaml @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb @anaprietonem @HCookie @JPXKQX @mchantry
6
+ /pyproject.toml @theissenhelen @jesperdramsch @gmertes @b8raoult @floriankrb @anaprietonem @HCookie @JPXKQX @mchantry
@@ -16,7 +16,7 @@ jobs:
16
16
  checks:
17
17
  strategy:
18
18
  matrix:
19
- python-version: ["3.9", "3.10"]
19
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
20
20
  uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
21
21
  with:
22
22
  python-version: ${{ matrix.python-version }}
@@ -17,7 +17,7 @@ jobs:
17
17
  checks:
18
18
  strategy:
19
19
  matrix:
20
- python-version: ["3.9", "3.10"]
20
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
21
21
  uses: ecmwf-actions/reusable-workflows/.github/workflows/qa-pytest-pyproject.yml@v2
22
22
  with:
23
23
  python-version: ${{ matrix.python-version }}
@@ -43,13 +43,12 @@ repos:
43
43
  rev: v0.6.9
44
44
  hooks:
45
45
  - id: ruff
46
- # Next line if for documenation cod snippets
47
- exclude: '.*/[^_].*_\.py$'
48
46
  args:
49
47
  - --line-length=120
50
48
  - --fix
51
49
  - --exit-non-zero-on-fix
52
50
  - --preview
51
+ - --exclude=docs/**/*_.py
53
52
  - repo: https://github.com/sphinx-contrib/sphinx-lint
54
53
  rev: v1.0.0
55
54
  hooks:
@@ -8,7 +8,14 @@ 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
- ## [Unreleased](https://github.com/ecmwf/anemoi-utils/compare/0.3.18...HEAD)
11
+ ## [Unreleased](https://github.com/ecmwf/anemoi-utils/compare/0.4.0...HEAD)
12
+
13
+ ### Changed
14
+
15
+ - Fix pre-commit regex
16
+ - ci: extend python versions [#23] (https://github.com/ecmwf/anemoi-utils/pull/23)
17
+
18
+ ## [0.4.0](https://github.com/ecmwf/anemoi-utils/compare/0.3.18...0.4.0) - 2024-10-11
12
19
 
13
20
  ### Added
14
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: anemoi-utils
3
- Version: 0.4.0
3
+ Version: 0.4.1
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,8 +225,9 @@ Requires-Python: >=3.9
225
225
  License-File: LICENSE
226
226
  Requires-Dist: aniso8601
227
227
  Requires-Dist: importlib-metadata; python_version < "3.10"
228
+ Requires-Dist: python-dateutil
228
229
  Requires-Dist: pyyaml
229
- Requires-Dist: tomli
230
+ Requires-Dist: tomli; python_version < "3.11"
230
231
  Requires-Dist: tqdm
231
232
  Provides-Extra: all
232
233
  Requires-Dist: anemoi-utils[grib,provenance,text]; extra == "all"
@@ -43,9 +43,9 @@ dynamic = [ "version" ]
43
43
  dependencies = [
44
44
  "aniso8601",
45
45
  "importlib-metadata; python_version<'3.10'",
46
-
46
+ "python-dateutil",
47
47
  "pyyaml",
48
- "tomli", # Only needed before 3.11
48
+ "tomli; python_version<'3.11'",
49
49
  "tqdm",
50
50
  ]
51
51
 
@@ -6,4 +6,4 @@
6
6
  # nor does it submit to any jurisdiction.
7
7
 
8
8
 
9
- from ._version import __version__
9
+ from ._version import __version__ as __version__
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.4.0'
16
- __version_tuple__ = version_tuple = (0, 4, 0)
15
+ __version__ = version = '0.4.1'
16
+ __version_tuple__ = version_tuple = (0, 4, 1)
@@ -60,6 +60,7 @@ class Failed(Command):
60
60
  def __init__(self, name, error):
61
61
  self.name = name
62
62
  self.error = error
63
+ traceback.print_tb(error.__traceback__)
63
64
 
64
65
  def add_arguments(self, command_parser):
65
66
  command_parser.add_argument("x", nargs=argparse.REMAINDER)
@@ -353,3 +353,22 @@ def check_config_mode(name="settings.toml", secrets_name=None, secrets=None) ->
353
353
  raise SystemError(f"Configuration file {conf} is not secure.\n" f"Please run `chmod 600 {conf}`.")
354
354
 
355
355
  CHECKED[name] = True
356
+
357
+
358
+ def find(metadata, what, result=None):
359
+ if result is None:
360
+ result = []
361
+
362
+ if isinstance(metadata, list):
363
+ for i in metadata:
364
+ find(i, what, result)
365
+ return result
366
+
367
+ if isinstance(metadata, dict):
368
+ if what in metadata:
369
+ result.append(metadata[what])
370
+
371
+ for k, v in metadata.items():
372
+ find(v, what, result)
373
+
374
+ return result
@@ -97,7 +97,7 @@ PERIODS = (
97
97
 
98
98
 
99
99
  def _plural(count):
100
- if count > 1:
100
+ if count != 1:
101
101
  return "s"
102
102
  else:
103
103
  return ""
@@ -173,6 +173,12 @@ def green(text):
173
173
  return colored(text, "green")
174
174
 
175
175
 
176
+ def blue(text):
177
+ from termcolor import colored
178
+
179
+ return colored(text, "blue")
180
+
181
+
176
182
  class Tree:
177
183
  """Tree data structure."""
178
184
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: anemoi-utils
3
- Version: 0.4.0
3
+ Version: 0.4.1
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,8 +225,9 @@ Requires-Python: >=3.9
225
225
  License-File: LICENSE
226
226
  Requires-Dist: aniso8601
227
227
  Requires-Dist: importlib-metadata; python_version < "3.10"
228
+ Requires-Dist: python-dateutil
228
229
  Requires-Dist: pyyaml
229
- Requires-Dist: tomli
230
+ Requires-Dist: tomli; python_version < "3.11"
230
231
  Requires-Dist: tqdm
231
232
  Provides-Extra: all
232
233
  Requires-Dist: anemoi-utils[grib,provenance,text]; extra == "all"
@@ -1,11 +1,14 @@
1
1
  aniso8601
2
+ python-dateutil
2
3
  pyyaml
3
- tomli
4
4
  tqdm
5
5
 
6
6
  [:python_version < "3.10"]
7
7
  importlib-metadata
8
8
 
9
+ [:python_version < "3.11"]
10
+ tomli
11
+
9
12
  [all]
10
13
  anemoi-utils[grib,provenance,text]
11
14
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes