anemoi-utils 0.4.15__py3-none-any.whl → 0.4.17__py3-none-any.whl

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/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.4.15'
21
- __version_tuple__ = version_tuple = (0, 4, 15)
20
+ __version__ = version = '0.4.17'
21
+ __version_tuple__ = version_tuple = (0, 4, 17)
anemoi/utils/config.py CHANGED
@@ -459,6 +459,24 @@ def _load_config(
459
459
  secret_config = _load_config(secret_name)
460
460
  _merge_dicts(config, secret_config)
461
461
 
462
+ for env, value in os.environ.items():
463
+
464
+ if not env.startswith("ANEMOI_CONFIG_"):
465
+ continue
466
+ rest = env[len("ANEMOI_CONFIG_") :]
467
+
468
+ package = rest.split("_")[0]
469
+ sub = rest[len(package) + 1 :]
470
+
471
+ package = package.lower()
472
+ sub = sub.lower()
473
+
474
+ LOG.info(f"Using environment variable {env} to override the anemoi config key '{package}.{sub}'")
475
+
476
+ if package not in config:
477
+ config[package] = {}
478
+ config[package][sub] = value
479
+
462
480
  CONFIG[key] = DotDict(config)
463
481
  return CONFIG[key]
464
482
 
@@ -199,12 +199,12 @@ def _module_versions(full: bool) -> Tuple[Dict[str, Any], set]:
199
199
 
200
200
  versions = {}
201
201
  namespaces = set()
202
- for k, v in sorted(sys.modules.items()):
202
+ for k, v in sorted(sys.modules.copy().items()):
203
203
  if "." not in k:
204
204
  version(versions, k, v, roots, namespaces, paths, full)
205
205
 
206
206
  # Catter for modules like "earthkit.meteo"
207
- for k, v in sorted(sys.modules.items()):
207
+ for k, v in sorted(sys.modules.copy().items()):
208
208
  bits = k.split(".")
209
209
  if len(bits) == 2 and bits[0] in namespaces:
210
210
  version(versions, k, v, roots, namespaces, paths, full)
anemoi/utils/registry.py CHANGED
@@ -162,13 +162,17 @@ class Registry:
162
162
  file : str
163
163
  The file to load.
164
164
  """
165
+
165
166
  name, _ = os.path.splitext(file)
167
+
166
168
  try:
167
169
  importlib.import_module(f".{name}", package=self.package)
168
170
  except Exception as e:
169
171
  if DEBUG_ANEMOI_REGISTRY:
170
172
  raise
171
- self._registered[name] = Error(e)
173
+
174
+ name = name.replace("_", "-")
175
+ self.__registered[name] = Error(e)
172
176
 
173
177
  def is_registered(self, name: str) -> bool:
174
178
  """Check if a factory is registered.
@@ -627,7 +627,7 @@ def _find_transfer_class(source: str, target: str) -> type:
627
627
  raise TransferMethodNotImplementedError(f"Transfer from {source} to {target} is not implemented")
628
628
 
629
629
 
630
- # this is the public API
630
+ # This function is the main entry point for the transfer mechanism for the other anemoi packages
631
631
  def transfer(
632
632
  source, target, *, overwrite=False, resume=False, verbosity=1, progress=None, threads=1, temporary_target=False
633
633
  ) -> Loader:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anemoi-utils
3
- Version: 0.4.15
3
+ Version: 0.4.17
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,11 +1,11 @@
1
1
  anemoi/utils/__init__.py,sha256=uVhpF-VjIl_4mMywOVtgTutgsdIsqz-xdkwxeMhzuag,730
2
2
  anemoi/utils/__main__.py,sha256=6LlE4MYrPvqqrykxXh7XMi50UZteUY59NeM8P9Zs2dU,910
3
- anemoi/utils/_version.py,sha256=L4sa5WD96qKFdMOh3zLgLz9pDX74uL14TDleLMhyvQQ,513
3
+ anemoi/utils/_version.py,sha256=UwtfX--7I9I_2cUoyH0-NALXkddhkqIyGBlxSkUZCdU,513
4
4
  anemoi/utils/caching.py,sha256=rXbeAmpBcMbbfN4EVblaHWKicsrtx1otER84FEBtz98,6183
5
5
  anemoi/utils/checkpoints.py,sha256=N4WpAZXa4etrpSEKhHqUUtG2-x9w3FJMHcLO-dDAXPY,9600
6
6
  anemoi/utils/cli.py,sha256=IyZfnSw0u0yYnrjOrzvm2RuuKvDk4cVb8pf8BkaChgA,6209
7
7
  anemoi/utils/compatibility.py,sha256=wRBRMmxQP88rNcWiP5gqXliwYQbBv1iCAsDjcCRi5UY,2234
8
- anemoi/utils/config.py,sha256=4K4_ePeuUPyIMsE7-r77OC87ntFGdVLskB0ow9XNzXI,16353
8
+ anemoi/utils/config.py,sha256=UtxlkSMhqZR0LAKi19aG6jaaNiSmsXCzE6v2AWHhx5E,16861
9
9
  anemoi/utils/dates.py,sha256=CnY6JOdpk0T-waPEowMRTkcMzxcN0GcjPVtLkwH_byw,17196
10
10
  anemoi/utils/devtools.py,sha256=W3OBu96MkXRIl7Qh1SE5Zd6aB1R0QlnmlrlpBYM0fVY,3527
11
11
  anemoi/utils/grib.py,sha256=201WcxjjAl92Y2HX2kZ2S8Qr5dN-oG7nV-vQLaybzP4,3610
@@ -13,8 +13,8 @@ anemoi/utils/grids.py,sha256=edTrMK8hpE9ZBzSfwcRftgk0jljNAK3i8CraadILQoM,4427
13
13
  anemoi/utils/hindcasts.py,sha256=iYVIxSNFL2HJcc_k1abCFLkpJFGHT8WKRIR4wcAwA3s,2144
14
14
  anemoi/utils/humanize.py,sha256=pjnFJAKHbEAOfcvn8c48kt-8eFy6FGW_U2ruJvfamrA,25189
15
15
  anemoi/utils/logs.py,sha256=naTgrmPwWHD4eekFttXftS4gtcAGYHpCqG4iwYprNDA,1804
16
- anemoi/utils/provenance.py,sha256=tIIgweS0EJyaYzgKwuv3iWny-Gz7N5e5CNWH5MeSYWU,14615
17
- anemoi/utils/registry.py,sha256=A76giAP_iGYDSJl4sazIrv6OnazieVVvtAUDCnkU4hM,9591
16
+ anemoi/utils/provenance.py,sha256=xC6mTstF7f_asqtPSrulC7c34xjOSuAxWhkwc3yKhHg,14629
17
+ anemoi/utils/registry.py,sha256=vIaHMT66m0_w8lrY3u5GmT70tIRNyA_Z_p_T7pTFx_k,9637
18
18
  anemoi/utils/s3.py,sha256=xMT48kbcelcjjqsaU567WI3oZ5eqo88Rlgyx5ECszAU,4074
19
19
  anemoi/utils/sanitise.py,sha256=ZYGdSX6qihQANr3pHZjbKnoapnzP1KcrWdW1Ul1mOGk,3668
20
20
  anemoi/utils/sanitize.py,sha256=43ZKDcfVpeXSsJ9TFEc9aZnD6oe2cUh151XnDspM98M,462
@@ -27,12 +27,12 @@ anemoi/utils/commands/requests.py,sha256=AEbssF1OlpbmSwrV5Lj6amCCn0w_-nbajBWTwYV
27
27
  anemoi/utils/mars/__init__.py,sha256=b-Lc3L1TAQd9ODs0Z1YSJzgZCO1K_M3DSgx_yd2qXvM,2724
28
28
  anemoi/utils/mars/mars.yaml,sha256=R0dujp75lLA4wCWhPeOQnzJ45WZAYLT8gpx509cBFlc,66
29
29
  anemoi/utils/mars/requests.py,sha256=VFMHBVAAl0_2lOcMBa1lvaKHctN0lDJsI6_U4BucGew,1142
30
- anemoi/utils/remote/__init__.py,sha256=-uaYFi4yRYFRf46ubQbJo86GCn6HE5VQrcaoyrmyW28,20704
30
+ anemoi/utils/remote/__init__.py,sha256=swPWHQoh-B6Xq9R489tPw0FykMue7f-bJ8enneFYSYE,20776
31
31
  anemoi/utils/remote/s3.py,sha256=spQ8l0rwQjLZh9dZu5cOsYIvNwKihQfCJ6YsFYegeqI,17339
32
32
  anemoi/utils/remote/ssh.py,sha256=xNtsawh8okytCKRehkRCVExbHZj-CRUQNormEHglfuw,8088
33
- anemoi_utils-0.4.15.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
34
- anemoi_utils-0.4.15.dist-info/METADATA,sha256=KOI9EAWDBOx8PUMVqRh0oaqmDSuJ_LsJ9Ymsja-5R2Q,15360
35
- anemoi_utils-0.4.15.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
36
- anemoi_utils-0.4.15.dist-info/entry_points.txt,sha256=LENOkn88xzFQo-V59AKoA_F_cfYQTJYtrNTtf37YgHY,60
37
- anemoi_utils-0.4.15.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
38
- anemoi_utils-0.4.15.dist-info/RECORD,,
33
+ anemoi_utils-0.4.17.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
34
+ anemoi_utils-0.4.17.dist-info/METADATA,sha256=XkTQFxHQ9BRkUl77BycvPb3F6yPGxqS9x5w-aRQlLYc,15360
35
+ anemoi_utils-0.4.17.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
36
+ anemoi_utils-0.4.17.dist-info/entry_points.txt,sha256=LENOkn88xzFQo-V59AKoA_F_cfYQTJYtrNTtf37YgHY,60
37
+ anemoi_utils-0.4.17.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
38
+ anemoi_utils-0.4.17.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (77.0.3)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5