anemoi-utils 0.4.33__tar.gz → 0.4.35__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.
- anemoi_utils-0.4.35/.release-please-manifest.json +3 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/CHANGELOG.md +14 -0
- {anemoi_utils-0.4.33/src/anemoi_utils.egg-info → anemoi_utils-0.4.35}/PKG-INFO +1 -1
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/_version.py +16 -3
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/config.py +5 -4
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/testing.py +0 -12
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35/src/anemoi_utils.egg-info}/PKG-INFO +1 -1
- anemoi_utils-0.4.33/.release-please-manifest.json +0 -3
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.gitattributes +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/CODEOWNERS +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/ci-hpc-config.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/dependabot.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/labeler.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/pull_request_template.md +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/downstream-ci-hpc.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/pr-conventional-commit.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/pr-label-conventional-commits.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/pr-label-file-based.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/pr-label-public.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/python-publish.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/python-pull-request.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/release-please.yml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.gitignore +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.pre-commit-config.yaml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.readthedocs.yaml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/.release-please-config.json +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/CONTRIBUTORS.md +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/LICENSE +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/README.md +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/Makefile +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/_static/logo.png +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/_static/style.css +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/_templates/.gitkeep +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/_templates/apidoc/package.rst.jinja +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/conf.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/index.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/installing.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/checkpoints.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/config.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/dates.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/grib.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/humanize.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/provenance.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/s3.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/testing.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/modules/text.rst +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/docs/scripts/api_build.sh +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/pyproject.toml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/setup.cfg +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/__init__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/__main__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/_environment.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/caching.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/checkpoints.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/cli.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/commands/__init__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/commands/config.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/commands/metadata.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/commands/requests.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/commands/transfer.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/compatibility.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/dates.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/devtools.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/grib.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/grids.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/hindcasts.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/humanize.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/logs.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mars/__init__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mars/mars.yaml +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mars/requests.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mlflow/__init__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mlflow/auth.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mlflow/client.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/mlflow/utils.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/provenance.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/registry.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/remote/__init__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/remote/s3.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/remote/ssh.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/rules.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/s3.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/sanitise.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/sanitize.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/schemas/__init__.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/schemas/errors.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/text.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi/utils/timer.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi_utils.egg-info/SOURCES.txt +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi_utils.egg-info/dependency_links.txt +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi_utils.egg-info/entry_points.txt +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi_utils.egg-info/requires.txt +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/src/anemoi_utils.egg-info/top_level.txt +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test-transfer-data/directory/b/c/x +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test-transfer-data/directory/b/y +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test-transfer-data/directory/exotic filename ;^/"'[=.,#]()/303/252/303/274/303/247/303/262/342/234/205.txt" +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test-transfer-data/directory/z +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test-transfer-data/file +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_caching.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_compatibility.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_dates.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_frequency.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_mlflow_auth.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_mlflow_client.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_provenance.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_remote.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_sanitise.py +0 -0
- {anemoi_utils-0.4.33 → anemoi_utils-0.4.35}/tests/test_utils.py +0 -0
|
@@ -8,6 +8,20 @@ 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.4.35](https://github.com/ecmwf/anemoi-utils/compare/0.4.34...0.4.35) (2025-08-12)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* Config override ([#204](https://github.com/ecmwf/anemoi-utils/issues/204)) ([cdeef1e](https://github.com/ecmwf/anemoi-utils/commit/cdeef1ef95ecd3696fefc751f8a97e90fe357329))
|
|
17
|
+
|
|
18
|
+
## [0.4.34](https://github.com/ecmwf/anemoi-utils/compare/0.4.33...0.4.34) (2025-08-11)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* Typo ([#201](https://github.com/ecmwf/anemoi-utils/issues/201)) ([7c98725](https://github.com/ecmwf/anemoi-utils/commit/7c987258b8c3ccfc159175d6d8f5bf460f308499))
|
|
24
|
+
|
|
11
25
|
## [0.4.33](https://github.com/ecmwf/anemoi-utils/compare/0.4.32...0.4.33) (2025-08-07)
|
|
12
26
|
|
|
13
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-utils
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.35
|
|
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
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
# file generated by setuptools-scm
|
|
2
2
|
# don't change, don't track in version control
|
|
3
3
|
|
|
4
|
-
__all__ = [
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
5
12
|
|
|
6
13
|
TYPE_CHECKING = False
|
|
7
14
|
if TYPE_CHECKING:
|
|
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
|
|
|
9
16
|
from typing import Union
|
|
10
17
|
|
|
11
18
|
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
12
20
|
else:
|
|
13
21
|
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
14
23
|
|
|
15
24
|
version: str
|
|
16
25
|
__version__: str
|
|
17
26
|
__version_tuple__: VERSION_TUPLE
|
|
18
27
|
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
19
30
|
|
|
20
|
-
__version__ = version = '0.4.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 4,
|
|
31
|
+
__version__ = version = '0.4.35'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 4, 35)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = 'gd34987af9'
|
|
@@ -206,7 +206,7 @@ class DotDict(dict):
|
|
|
206
206
|
super().__setitem__(key, value)
|
|
207
207
|
|
|
208
208
|
def warn_on_mutation(self, key):
|
|
209
|
-
warnings.warn("
|
|
209
|
+
warnings.warn("Modifying an instance of DotDict(). This class is intended to be immutable.")
|
|
210
210
|
|
|
211
211
|
def __repr__(self) -> str:
|
|
212
212
|
"""Return a string representation of the DotDict.
|
|
@@ -486,6 +486,10 @@ def _load_config(
|
|
|
486
486
|
secret_config = _load_config(secret_name)
|
|
487
487
|
_merge_dicts(config, secret_config)
|
|
488
488
|
|
|
489
|
+
if ENV.ANEMOI_CONFIG_OVERRIDE_PATH is not None:
|
|
490
|
+
override_config = load_any_dict_format(os.path.abspath(ENV.ANEMOI_CONFIG_OVERRIDE_PATH))
|
|
491
|
+
config = merge_configs(config, override_config)
|
|
492
|
+
|
|
489
493
|
for env, value in os.environ.items():
|
|
490
494
|
|
|
491
495
|
if not env.startswith("ANEMOI_CONFIG_"):
|
|
@@ -578,9 +582,6 @@ def load_config(
|
|
|
578
582
|
|
|
579
583
|
with CONFIG_LOCK:
|
|
580
584
|
config = _load_config(name, secrets, defaults)
|
|
581
|
-
if ENV.ANEMOI_CONFIG_OVERRIDE_PATH is not None:
|
|
582
|
-
override_config = _load_config(os.path.abspath(ENV.ANEMOI_CONFIG_OVERRIDE_PATH))
|
|
583
|
-
merge_configs(config, override_config)
|
|
584
585
|
if CONFIG_PATCH is not None:
|
|
585
586
|
config = CONFIG_PATCH(config)
|
|
586
587
|
return config
|
|
@@ -240,17 +240,6 @@ def _missing_packages(*names: str) -> list[str]:
|
|
|
240
240
|
return missing
|
|
241
241
|
|
|
242
242
|
|
|
243
|
-
def _run_slow_tests() -> bool:
|
|
244
|
-
"""Check if the SLOW_TESTS environment variable is set.
|
|
245
|
-
|
|
246
|
-
Returns
|
|
247
|
-
-------
|
|
248
|
-
bool
|
|
249
|
-
True if the SLOW_TESTS environment variable is set, False otherwise.
|
|
250
|
-
"""
|
|
251
|
-
return bool(int(os.environ.get("SLOW_TESTS", 0)))
|
|
252
|
-
|
|
253
|
-
|
|
254
243
|
@lru_cache(maxsize=None)
|
|
255
244
|
def _offline() -> bool:
|
|
256
245
|
"""Check if we are offline."""
|
|
@@ -265,7 +254,6 @@ def _offline() -> bool:
|
|
|
265
254
|
|
|
266
255
|
|
|
267
256
|
skip_if_offline = pytest.mark.skipif(_offline(), reason="No internet connection")
|
|
268
|
-
skip_slow_tests = pytest.mark.skipif(not _run_slow_tests(), reason="Skipping slow tests")
|
|
269
257
|
|
|
270
258
|
|
|
271
259
|
def skip_missing_packages(*names: str) -> pytest.MarkDecorator:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: anemoi-utils
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.35
|
|
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
|
|
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_utils-0.4.33 → anemoi_utils-0.4.35}/.github/workflows/pr-label-conventional-commits.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
|
|
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
|
|
File without changes
|