anemoi-utils 0.4.32__tar.gz → 0.4.34__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.32 → anemoi_utils-0.4.34}/.pre-commit-config.yaml +2 -2
- anemoi_utils-0.4.34/.release-please-manifest.json +3 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/CHANGELOG.md +14 -0
- {anemoi_utils-0.4.32/src/anemoi_utils.egg-info → anemoi_utils-0.4.34}/PKG-INFO +1 -1
- anemoi_utils-0.4.34/docs/modules/config.rst +17 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/__init__.py +7 -0
- anemoi_utils-0.4.34/src/anemoi/utils/_environment.py +37 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/_version.py +16 -3
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/config.py +7 -2
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/testing.py +0 -12
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34/src/anemoi_utils.egg-info}/PKG-INFO +1 -1
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi_utils.egg-info/SOURCES.txt +1 -0
- anemoi_utils-0.4.32/.release-please-manifest.json +0 -3
- anemoi_utils-0.4.32/docs/modules/config.rst +0 -8
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.gitattributes +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/CODEOWNERS +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/ci-hpc-config.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/dependabot.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/labeler.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/pull_request_template.md +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/downstream-ci-hpc.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/pr-conventional-commit.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/pr-label-conventional-commits.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/pr-label-file-based.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/pr-label-public.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/python-publish.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/python-pull-request.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/readthedocs-pr-update.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.github/workflows/release-please.yml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.gitignore +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.readthedocs.yaml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/.release-please-config.json +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/CONTRIBUTORS.md +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/LICENSE +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/README.md +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/Makefile +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/_static/logo.png +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/_static/style.css +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/_templates/.gitkeep +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/_templates/apidoc/package.rst.jinja +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/conf.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/index.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/installing.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/checkpoints.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/dates.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/grib.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/humanize.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/provenance.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/s3.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/testing.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/modules/text.rst +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/docs/scripts/api_build.sh +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/pyproject.toml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/setup.cfg +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/__main__.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/caching.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/checkpoints.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/cli.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/commands/__init__.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/commands/config.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/commands/metadata.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/commands/requests.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/commands/transfer.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/compatibility.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/dates.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/devtools.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/grib.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/grids.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/hindcasts.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/humanize.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/logs.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mars/__init__.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mars/mars.yaml +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mars/requests.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mlflow/__init__.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mlflow/auth.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mlflow/client.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/mlflow/utils.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/provenance.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/registry.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/remote/__init__.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/remote/s3.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/remote/ssh.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/rules.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/s3.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/sanitise.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/sanitize.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/schemas/__init__.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/schemas/errors.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/text.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi/utils/timer.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi_utils.egg-info/dependency_links.txt +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi_utils.egg-info/entry_points.txt +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi_utils.egg-info/requires.txt +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/src/anemoi_utils.egg-info/top_level.txt +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test-transfer-data/directory/b/c/x +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test-transfer-data/directory/b/y +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/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.32 → anemoi_utils-0.4.34}/tests/test-transfer-data/directory/z +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test-transfer-data/file +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_caching.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_compatibility.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_dates.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_frequency.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_mlflow_auth.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_mlflow_client.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_provenance.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_remote.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_sanitise.py +0 -0
- {anemoi_utils-0.4.32 → anemoi_utils-0.4.34}/tests/test_utils.py +0 -0
|
@@ -41,7 +41,7 @@ repos:
|
|
|
41
41
|
- --profile black
|
|
42
42
|
- --project anemoi
|
|
43
43
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
44
|
-
rev: v0.12.
|
|
44
|
+
rev: v0.12.7
|
|
45
45
|
hooks:
|
|
46
46
|
- id: ruff
|
|
47
47
|
args:
|
|
@@ -69,7 +69,7 @@ repos:
|
|
|
69
69
|
hooks:
|
|
70
70
|
- id: pyproject-fmt
|
|
71
71
|
- repo: https://github.com/jshwi/docsig # Check docstrings against function sig
|
|
72
|
-
rev: v0.
|
|
72
|
+
rev: v0.71.0
|
|
73
73
|
hooks:
|
|
74
74
|
- id: docsig
|
|
75
75
|
args:
|
|
@@ -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.34](https://github.com/ecmwf/anemoi-utils/compare/0.4.33...0.4.34) (2025-08-11)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* Typo ([#201](https://github.com/ecmwf/anemoi-utils/issues/201)) ([7c98725](https://github.com/ecmwf/anemoi-utils/commit/7c987258b8c3ccfc159175d6d8f5bf460f308499))
|
|
17
|
+
|
|
18
|
+
## [0.4.33](https://github.com/ecmwf/anemoi-utils/compare/0.4.32...0.4.33) (2025-08-07)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* **config:** Expand environment var recognition for the use of config override ([#197](https://github.com/ecmwf/anemoi-utils/issues/197)) ([9bd9170](https://github.com/ecmwf/anemoi-utils/commit/9bd9170478857cf129fa6b8042bc22d1a3940156))
|
|
24
|
+
|
|
11
25
|
## [0.4.32](https://github.com/ecmwf/anemoi-utils/compare/0.4.31...0.4.32) (2025-08-05)
|
|
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.34
|
|
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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
########
|
|
2
|
+
config
|
|
3
|
+
########
|
|
4
|
+
|
|
5
|
+
This module provides utilities for managing configuration settings in
|
|
6
|
+
Anemoi. It includes functions to load, merge, and access configurations.
|
|
7
|
+
|
|
8
|
+
By default configuration files are loaded from
|
|
9
|
+
``~/.config/anemoi/settings.toml``.
|
|
10
|
+
|
|
11
|
+
An override path can be specified using the environment variable
|
|
12
|
+
``ANEMOI_CONFIG_OVERRIDE_PATH``.
|
|
13
|
+
|
|
14
|
+
.. automodule:: anemoi.utils.config
|
|
15
|
+
:members:
|
|
16
|
+
:no-undoc-members:
|
|
17
|
+
:show-inheritance:
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
"""Anemoi Utils package."""
|
|
11
11
|
|
|
12
|
+
from ._environment import ENV
|
|
13
|
+
|
|
12
14
|
try:
|
|
13
15
|
# NOTE: the `_version.py` file must not be present in the git repository
|
|
14
16
|
# as it is generated by setuptools at install time
|
|
@@ -16,3 +18,8 @@ try:
|
|
|
16
18
|
except ImportError: # pragma: no cover
|
|
17
19
|
# Local copy or not installed with setuptools
|
|
18
20
|
__version__ = "999"
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"ENV",
|
|
24
|
+
"__version__",
|
|
25
|
+
]
|
|
@@ -0,0 +1,37 @@
|
|
|
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 os
|
|
11
|
+
from typing import Any
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Environment:
|
|
15
|
+
"""Environment variables for Anemoi."""
|
|
16
|
+
|
|
17
|
+
ANEMOI_CONFIG_OVERRIDE_PATH: str
|
|
18
|
+
"""Path to the configuration override file for Anemoi."""
|
|
19
|
+
|
|
20
|
+
def __setattr__(self, name: str, value: Any) -> None:
|
|
21
|
+
raise AttributeError("Cannot set attributes on Environment class. Use environment variables instead.")
|
|
22
|
+
|
|
23
|
+
def __getattr__(self, name: str) -> str | None:
|
|
24
|
+
if name in self.__class__.__annotations__:
|
|
25
|
+
if (env_var := os.getenv(name)) is None:
|
|
26
|
+
return env_var
|
|
27
|
+
try:
|
|
28
|
+
return self.__class__.__annotations__[name](env_var) # Auto cast
|
|
29
|
+
except Exception as e:
|
|
30
|
+
e.add_note(
|
|
31
|
+
f"Environment variable {name!r} must be of type {self.__class__.__annotations__[name].__name__}"
|
|
32
|
+
)
|
|
33
|
+
raise e
|
|
34
|
+
raise AttributeError(f"{name} is not a valid environment variable for {self.__class__.__name__}")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
ENV = Environment()
|
|
@@ -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.34'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 4, 34)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = 'g1bb37c8aa'
|
|
@@ -20,6 +20,8 @@ from typing import Any
|
|
|
20
20
|
|
|
21
21
|
import yaml
|
|
22
22
|
|
|
23
|
+
from anemoi.utils import ENV
|
|
24
|
+
|
|
23
25
|
try:
|
|
24
26
|
import tomllib # Only available since 3.11
|
|
25
27
|
except ImportError:
|
|
@@ -61,7 +63,7 @@ class DotDict(dict):
|
|
|
61
63
|
super().__init__(*args, **kwargs)
|
|
62
64
|
|
|
63
65
|
for k, v in self.items():
|
|
64
|
-
|
|
66
|
+
super().__setitem__(k, self.convert_to_nested_dot_dict(v))
|
|
65
67
|
|
|
66
68
|
@staticmethod
|
|
67
69
|
def convert_to_nested_dot_dict(value):
|
|
@@ -204,7 +206,7 @@ class DotDict(dict):
|
|
|
204
206
|
super().__setitem__(key, value)
|
|
205
207
|
|
|
206
208
|
def warn_on_mutation(self, key):
|
|
207
|
-
warnings.warn("
|
|
209
|
+
warnings.warn("Modifying an instance of DotDict(). This class is intended to be immutable.")
|
|
208
210
|
|
|
209
211
|
def __repr__(self) -> str:
|
|
210
212
|
"""Return a string representation of the DotDict.
|
|
@@ -576,6 +578,9 @@ def load_config(
|
|
|
576
578
|
|
|
577
579
|
with CONFIG_LOCK:
|
|
578
580
|
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)
|
|
579
584
|
if CONFIG_PATCH is not None:
|
|
580
585
|
config = CONFIG_PATCH(config)
|
|
581
586
|
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.34
|
|
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.32 → anemoi_utils-0.4.34}/.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
|