anemoi-datasets 0.5.21__py3-none-any.whl → 0.5.22__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.
@@ -8,12 +8,14 @@
8
8
  # nor does it submit to any jurisdiction.
9
9
 
10
10
 
11
+ import datetime
11
12
  import logging
12
13
  from abc import abstractmethod
13
14
  from functools import cached_property
14
15
  from typing import Any
15
16
  from typing import Dict
16
17
  from typing import List
18
+ from typing import Optional
17
19
  from typing import Set
18
20
  from typing import Tuple
19
21
 
@@ -30,7 +32,7 @@ from .indexing import apply_index_to_slices_changes
30
32
  from .indexing import index_to_slices
31
33
  from .indexing import update_tuple
32
34
  from .misc import _auto_adjust
33
- from .misc import _open
35
+ from .misc import _open_dataset
34
36
 
35
37
  LOG = logging.getLogger(__name__)
36
38
 
@@ -92,6 +94,18 @@ class Complement(Combined):
92
94
  """Returns the list of variables to be added to the target dataset."""
93
95
  return self._variables
94
96
 
97
+ @property
98
+ def statistics(self) -> Dict[str, NDArray[Any]]:
99
+ """Returns the statistics of the complemented dataset."""
100
+ index = [self._source.name_to_index[v] for v in self._variables]
101
+ return {k: v[index] for k, v in self._source.statistics.items()}
102
+
103
+ def statistics_tendencies(self, delta: Optional[datetime.timedelta] = None) -> Dict[str, NDArray[Any]]:
104
+ index = [self._source.name_to_index[v] for v in self._variables]
105
+ if delta is None:
106
+ delta = self.frequency
107
+ return {k: v[index] for k, v in self._source.statistics_tendencies(delta).items()}
108
+
95
109
  @property
96
110
  def name_to_index(self) -> Dict[str, int]:
97
111
  """Returns a dictionary mapping variable names to their indices."""
@@ -170,6 +184,16 @@ class Complement(Combined):
170
184
  """
171
185
  pass
172
186
 
187
+ def forwards_subclass_metadata_specific(self) -> dict[str, Any]:
188
+ """Get the metadata specific to the forwards subclass.
189
+
190
+ Returns
191
+ -------
192
+ dict[str, Any]
193
+ The metadata specific to the forwards subclass.
194
+ """
195
+ return dict(complement=self._source.dataset_metadata())
196
+
173
197
 
174
198
  class ComplementNone(Complement):
175
199
  """A class to complement a target dataset with variables from a source dataset without interpolation."""
@@ -281,7 +305,6 @@ def complement_factory(args: Tuple, kwargs: dict) -> Dataset:
281
305
  Dataset
282
306
  The complemented dataset.
283
307
  """
284
- from .select import Select
285
308
 
286
309
  assert len(args) == 0, args
287
310
 
@@ -296,8 +319,8 @@ def complement_factory(args: Tuple, kwargs: dict) -> Dataset:
296
319
  if interpolation not in ("none", "nearest"):
297
320
  raise NotImplementedError(f"Complement method={interpolation} not implemented")
298
321
 
299
- source = _open(source)
300
- target = _open(target)
322
+ source = _open_dataset(source)
323
+ target = _open_dataset(target)
301
324
  # `select` is the same as `variables`
302
325
  (source, target), kwargs = _auto_adjust([source, target], kwargs, exclude=["select"])
303
326
 
@@ -309,10 +332,4 @@ def complement_factory(args: Tuple, kwargs: dict) -> Dataset:
309
332
 
310
333
  complement = Class(target=target, source=source)._subset(**kwargs)
311
334
 
312
- # Will join the datasets along the variables axis
313
- reorder = source.variables
314
- complemented = _open([target, complement])
315
- ordered = (
316
- Select(complemented, complemented._reorder_to_columns(reorder), {"reoder": reorder})._subset(**kwargs).mutate(),
317
- )
318
- return ordered
335
+ return _open_dataset([target, complement], reorder=source.variables)
@@ -290,6 +290,10 @@ class Combined(Forwards):
290
290
  ValueError
291
291
  If the resolutions are not the same.
292
292
  """
293
+ if d1.resolution is None or d2.resolution is None:
294
+ LOG.warning("One of the datasets has no resolution, cannot check compatibility")
295
+ return
296
+
293
297
  if d1.resolution != d2.resolution:
294
298
  raise ValueError(f"Incompatible resolutions: {d1.resolution} and {d2.resolution} ({d1} {d2})")
295
299
 
@@ -344,7 +344,7 @@ class Cutout(GridsBase):
344
344
  self.cropping_distance = cropping_distance
345
345
  self.neighbours = neighbours
346
346
  self.min_distance_km = min_distance_km
347
- self.plot = plot
347
+ self._plot = plot
348
348
  self.masks = [] # To store the masks for each LAM dataset
349
349
  self.global_mask = np.ones(self.globe.shape[-1], dtype=bool)
350
350
 
@@ -373,7 +373,7 @@ class Cutout(GridsBase):
373
373
  lam.longitudes,
374
374
  self.globe.latitudes,
375
375
  self.globe.longitudes,
376
- plot=False,
376
+ plot=self._plot,
377
377
  min_distance_km=self.min_distance_km,
378
378
  cropping_distance=self.cropping_distance,
379
379
  neighbours=self.neighbours,
@@ -399,7 +399,7 @@ class Cutout(GridsBase):
399
399
  prev_lam_lons,
400
400
  lam_lats,
401
401
  lam_lons,
402
- plot=False,
402
+ plot=self._plot,
403
403
  min_distance_km=self.min_distance_km,
404
404
  cropping_distance=self.cropping_distance,
405
405
  neighbours=self.neighbours,
@@ -11,6 +11,7 @@
11
11
  import datetime
12
12
  import logging
13
13
  import os
14
+ import tempfile
14
15
  import warnings
15
16
  from functools import cached_property
16
17
  from typing import Any
@@ -185,10 +186,30 @@ def name_to_zarr_store(path_or_url: str) -> ReadOnlyStore:
185
186
  store = path_or_url
186
187
 
187
188
  if store.startswith("s3://"):
188
- store = S3Store(store)
189
+ return S3Store(store)
190
+
191
+ if store.startswith("http://") or store.startswith("https://"):
189
192
 
190
- elif store.startswith("http://") or store.startswith("https://"):
191
193
  parsed = urlparse(store)
194
+
195
+ if store.endswith(".zip"):
196
+ import multiurl
197
+
198
+ # Zarr cannot handle zip files over HTTP
199
+ tmpdir = tempfile.gettempdir()
200
+ name = os.path.basename(parsed.path)
201
+ path = os.path.join(tmpdir, name)
202
+ LOG.warning("Zarr does not support zip files over HTTP, downloading to %s", path)
203
+ if os.path.exists(path):
204
+ LOG.warning("File %s already exists, reusing it", path)
205
+ return name_to_zarr_store(path)
206
+
207
+ LOG.warning("Downloading %s", store)
208
+
209
+ multiurl.download(store, path + ".tmp")
210
+ os.rename(path + ".tmp", path)
211
+ return name_to_zarr_store(path)
212
+
192
213
  bits = parsed.netloc.split(".")
193
214
  if len(bits) == 5 and (bits[1], bits[3], bits[4]) == ("s3", "amazonaws", "com"):
194
215
  s3_url = f"s3://{bits[0]}{parsed.path}"
@@ -540,10 +561,21 @@ QUIET = set()
540
561
 
541
562
  def zarr_lookup(name: str, fail: bool = True) -> Optional[str]:
542
563
  """Look up a zarr dataset by name."""
543
- if name.endswith(".zarr") or name.endswith(".zip"):
544
- return name
545
564
 
546
565
  config = load_config()["datasets"]
566
+ use_search_path_not_found = config.get("use_search_path_not_found", False)
567
+
568
+ if name.endswith(".zarr") or name.endswith(".zip"):
569
+
570
+ if os.path.exists(name):
571
+ return name
572
+
573
+ if not use_search_path_not_found:
574
+ # There will be an error triggered by the open_zarr
575
+ return name
576
+
577
+ LOG.warning("File %s not found, trying to search in the search path", name)
578
+ name = os.path.splitext(os.path.basename(name))[0]
547
579
 
548
580
  if name in config["named"]:
549
581
  if name not in QUIET:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anemoi-datasets
3
- Version: 0.5.21
3
+ Version: 0.5.22
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
@@ -226,7 +226,7 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
226
226
  Requires-Python: >=3.9
227
227
  License-File: LICENSE
228
228
  Requires-Dist: anemoi-transform>=0.1.9
229
- Requires-Dist: anemoi-utils[provenance]>=0.4.19
229
+ Requires-Dist: anemoi-utils[provenance]>=0.4.21
230
230
  Requires-Dist: cfunits
231
231
  Requires-Dist: numcodecs<0.16
232
232
  Requires-Dist: numpy
@@ -269,4 +269,5 @@ Requires-Dist: kerchunk; extra == "xarray"
269
269
  Requires-Dist: pandas; extra == "xarray"
270
270
  Requires-Dist: planetary-computer; extra == "xarray"
271
271
  Requires-Dist: pystac-client; extra == "xarray"
272
+ Requires-Dist: s3fs>=0.5; extra == "xarray"
272
273
  Dynamic: license-file
@@ -1,14 +1,16 @@
1
1
  anemoi/datasets/__init__.py,sha256=i_wsAT3ezEYF7o5dpqGrpoG4wmLS-QIBug18uJbSYMs,1065
2
2
  anemoi/datasets/__main__.py,sha256=ErwAqE3rBc7OaNO2JRsEOhWpB8ldjAt7BFSuRhbnlqQ,936
3
- anemoi/datasets/_version.py,sha256=xzRAV3vnhRWoa5IGzmE1SpAqijHmFvxk2UzeNXSigRM,513
3
+ anemoi/datasets/_version.py,sha256=KERiCy5SlogIpKH0HhOSfNJ6Gz_dzHHWww2moJQR1BQ,513
4
+ anemoi/datasets/check.py,sha256=hbEMUurl2IjZbp56dBgOfAEsAmmgymgRM5ySaMJSTdk,2755
4
5
  anemoi/datasets/grids.py,sha256=Hhj1aOXHvDjmI46M_UlLSjCs1qYqxH-uqd_kapDSdbU,18134
5
6
  anemoi/datasets/testing.py,sha256=fy_JzavUwLlK_2rtXAT-UGUyo5gjyQW2y826zf334Wg,2645
6
7
  anemoi/datasets/commands/__init__.py,sha256=O5W3yHZywRoAqmRUioAr3zMCh0hGVV18wZYGvc00ioM,698
8
+ anemoi/datasets/commands/check.py,sha256=zEJqE5XkNLsebemg5XIvvZTv2bA6R49zVaka9HRySKU,2655
7
9
  anemoi/datasets/commands/cleanup.py,sha256=FX082xkHKCSd8d-FUN5zDBSiKA-QYQEeUZ6dCUD-Ob8,1816
8
10
  anemoi/datasets/commands/compare-lam.py,sha256=F5GYRsKOtdhDePhifgf1TCj5L2T8EVIA2N8AdO-AKKY,14857
9
11
  anemoi/datasets/commands/compare.py,sha256=jzhjbbt1U-YANTVRBhrwSh2CcYgk4qX2IiTMJtcn82s,3678
10
- anemoi/datasets/commands/copy.py,sha256=UlvW9YIlP7jwKAY7TikVAfhkrjaQ9Kkxqfx8jEut-Jg,16010
11
- anemoi/datasets/commands/create.py,sha256=5BXdPZMO-ZULBnEVgyeSS-IMy4p84HSyFVG855gqj3k,6598
12
+ anemoi/datasets/commands/copy.py,sha256=hP7BSqkGzK8-n3BA2vlpFcbO3INHmShPZ75Aw_K_g4Y,17302
13
+ anemoi/datasets/commands/create.py,sha256=3myohTCLsM6oUuZHIfLaTlDaq-DOcJZRM4Vks007fZg,6543
12
14
  anemoi/datasets/commands/finalise-additions.py,sha256=2LqU7ke3i-yRQbjkgldX6e2QlyE-tKqp0b6QOhJF19g,1985
13
15
  anemoi/datasets/commands/finalise.py,sha256=-YtN9wFFDrM_i_V9YHoXZsajF3eAax-73Zsi4uHAFCI,1709
14
16
  anemoi/datasets/commands/grib-index.py,sha256=H9snsk1w2tL6ObBhlHVxFXxCm5sB-eUGrX772G8Nb2s,3057
@@ -19,11 +21,11 @@ anemoi/datasets/commands/load-additions.py,sha256=zqmRherIHXb5WIB4cnAuCBEsxFJmUp
19
21
  anemoi/datasets/commands/load.py,sha256=U1Y8qByjreu7H9WeX4G8-tyKsz48va10fkW1L4U4wWg,2034
20
22
  anemoi/datasets/commands/patch.py,sha256=Q9FDabWxlvK1QaeH4D9zhNpoSGB4h7EliWgcV76iFBs,1599
21
23
  anemoi/datasets/commands/publish.py,sha256=7YusLCWYdVLuexZzvyh8ztYoBOBzVmve3uJs-XKeMAE,1469
22
- anemoi/datasets/commands/scan.py,sha256=e5t_oxSi-II38TVQiMlWMJ8AZhDEBk5PcPD22DDbHfU,4008
24
+ anemoi/datasets/commands/scan.py,sha256=6Uoyd7WkM4ypoqmZargXIG50uRKzHE3AlvkAr7sCBy4,4262
23
25
  anemoi/datasets/compute/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
24
26
  anemoi/datasets/compute/recentre.py,sha256=kwxDB8qpgOCFZSQJvjAmVcpH5zWsfk5FSoIureqNHd4,5915
25
- anemoi/datasets/create/__init__.py,sha256=_aYkQ-5so9hBRW8rIj7Y-lQpn1ACY7PUpqadffsT0jU,50699
26
- anemoi/datasets/create/check.py,sha256=FrgyZP3Xyx4qXHl8_ZfM31fgNhcxMqxlE5oLweMDGU0,10003
27
+ anemoi/datasets/create/__init__.py,sha256=8TJwN_t7Epg6yBSbbRW2L039Xh_aqUsUgZBNR3U2yl0,51165
28
+ anemoi/datasets/create/check.py,sha256=xqobSfh3655ZoKs-CjHWBiEpIfrHU_vkqwiIsAOrqvs,10795
27
29
  anemoi/datasets/create/chunks.py,sha256=kZV3dWoCuv3Bttc0wysJB7OPbXsD99exKyrrj4HGFwQ,4025
28
30
  anemoi/datasets/create/config.py,sha256=xrSlaY2p5zssfLIt8A1CP9WwJReSXVWBMQM7bT1aFbU,13448
29
31
  anemoi/datasets/create/filter.py,sha256=Hu4o3Z2omIdcu5ycJqmBkY_ZSKTG5JkjbIuxXM8ADfs,1254
@@ -56,7 +58,7 @@ anemoi/datasets/create/filters/unrotate_winds.py,sha256=3AJf0crnVVySLlXLIdfEUxRR
56
58
  anemoi/datasets/create/filters/uv_to_speeddir.py,sha256=Zdc34AG5Bsz-Z7JGuznyRJr6F-BnWKXPiI3mjmOpbek,2883
57
59
  anemoi/datasets/create/filters/wz_to_w.py,sha256=slOiX5RibG48Zrkss8Qjpb-8ZTnvSvmKlk1Hy45_wzU,2812
58
60
  anemoi/datasets/create/input/__init__.py,sha256=XeURpmbReQvpELltGFKzg3oZFXWRdUxW9SK3K662SBQ,3364
59
- anemoi/datasets/create/input/action.py,sha256=WmRPe5ZYQz8vxAtOr6hLYGLzikcldyps6dG3BwHiBp8,7709
61
+ anemoi/datasets/create/input/action.py,sha256=pc_2RPbs3laF8vBhNkbFdib40kTcF5QW6QL0p8VLNzA,7778
60
62
  anemoi/datasets/create/input/concat.py,sha256=bU8SWfBVfK8bRAmmN4UO9zpIGxwQvRUk9_vwrKPOTE4,5355
61
63
  anemoi/datasets/create/input/context.py,sha256=qrLccxMe9UkyQxsNuR6JSK7oLzZq21dt38AxZ9kYzsY,2714
62
64
  anemoi/datasets/create/input/data_sources.py,sha256=4xUUShM0pCXIZVPJW_cSNMUwCO_wLx996MLFpTLChm0,4385
@@ -67,19 +69,19 @@ anemoi/datasets/create/input/join.py,sha256=RAdgE4lVcC71_J47dNa1weJuWdTXSQIvo06G
67
69
  anemoi/datasets/create/input/misc.py,sha256=FVaH_ym52RZI_fnLSMM_dKTQmWTrInucP780E3gGqvw,3357
68
70
  anemoi/datasets/create/input/pipe.py,sha256=-tCz161IwXoI8pl1hilA9T_j5eHSr-sgbijFLp9HHNc,2083
69
71
  anemoi/datasets/create/input/repeated_dates.py,sha256=HaPzDCNHQBY1VVp6gvd3drwjWjYpSBh-GLgHqBRJTz0,12012
70
- anemoi/datasets/create/input/result.py,sha256=wX5iAAtm50ezLn2QsIDIQnGEGmgE08lWltRwnkFWSLw,24220
72
+ anemoi/datasets/create/input/result.py,sha256=BmeZVN63ZnUkiOwT0mkE4DdB06OmVwdRZkiV4ACPNrI,24309
71
73
  anemoi/datasets/create/input/step.py,sha256=WcR9NgRvUKF60Fo5veLvRCAQMrOd55x1gOEAmd2t2r4,5948
72
74
  anemoi/datasets/create/input/template.py,sha256=Iycw9VmfA0WEIDP_Of8bp-8HsV0EUfwbnm0WjxiO4GA,4092
73
75
  anemoi/datasets/create/input/trace.py,sha256=dakPYMmwKq6s17Scww1CN-xYBD3btJTGeDknOhAcnEM,3320
74
76
  anemoi/datasets/create/sources/__init__.py,sha256=XNiiGaC6NbxnGfl6glPw-gTJASi3vsGKwVlfkMqYGk4,950
75
- anemoi/datasets/create/sources/accumulations.py,sha256=ZA8F8RJPMHok5RpIHH4x-txwiSll8zuWwqJ3rn95JHk,20295
77
+ anemoi/datasets/create/sources/accumulations.py,sha256=ifnUtbvmA8s7KOEL7ZOgbkiPxL3pa0FclGsZWZN3eyE,32782
76
78
  anemoi/datasets/create/sources/accumulations2.py,sha256=iBORRrH0N7r3gMWm3mCkJ6XmB-dO_lEckHPwvmk9fu0,20673
77
79
  anemoi/datasets/create/sources/anemoi_dataset.py,sha256=2xJJTmKlv87F_2ECMKeehaeW7_oWLlDcLt8C_Prp1RI,2017
78
80
  anemoi/datasets/create/sources/constants.py,sha256=5O6d9tEuAmVjl5vNkNfmkaAjKXFlw1UjeueTsF1GZCI,1528
79
81
  anemoi/datasets/create/sources/eccc_fstd.py,sha256=8HK38f444HcWMvBhooP0XqTfMXYoCbN_8G9RI_Ne5rc,659
80
82
  anemoi/datasets/create/sources/empty.py,sha256=5mVIVRUwnBfE3zp-bvNA_imXCSpyds-4mewcI8HXAiY,1020
81
83
  anemoi/datasets/create/sources/forcings.py,sha256=PmcAd-nFZzILRxfvrptb45VLD9Nd2vjy0xeToeoKl1Y,1222
82
- anemoi/datasets/create/sources/grib.py,sha256=QGAxX103bOQRef8WkamK8g4DGMoo9ATLUfawzYO-vTk,4210
84
+ anemoi/datasets/create/sources/grib.py,sha256=wh1kx2IbzeHDzqSEKB-gaM3Cs3Z_oVa7pyHZiOzF3-s,4278
83
85
  anemoi/datasets/create/sources/grib_index.py,sha256=Pnm0RLga9lpD4MqVaZr7IqXMBlw1DtTIWZRfz7fq30Q,19026
84
86
  anemoi/datasets/create/sources/hindcasts.py,sha256=_4880rgd4AsRxlDXVi6dkh8mlKXrz2i27btVlmlMFjY,2611
85
87
  anemoi/datasets/create/sources/legacy.py,sha256=RJce-9TwmUUCFbgC8A3Dp61nSBfB8_lWti8WNoOMIcU,2652
@@ -92,7 +94,7 @@ anemoi/datasets/create/sources/source.py,sha256=x8k---A2_3AglYqNsXLlv1ti4f9n_gVK
92
94
  anemoi/datasets/create/sources/tendencies.py,sha256=saHGYl-MnvBEeZX-n1zgT8lehA7LC2G5dMNnxklI9-U,5590
93
95
  anemoi/datasets/create/sources/xarray.py,sha256=zBuWCmBidEY3Wz6DDRZStBcrkw646AXpIM8B1nHV55c,2555
94
96
  anemoi/datasets/create/sources/xarray_kerchunk.py,sha256=vdFaFzze8VLjYUgIX8Lc39ELvwmgfT3ioyxBHAt4nrs,1136
95
- anemoi/datasets/create/sources/xarray_zarr.py,sha256=McY-vgXmUbGAkBViAfYwBUeVmGUU-Qr8UW-jUGu5-9s,1209
97
+ anemoi/datasets/create/sources/xarray_zarr.py,sha256=5eQOpB3sBD49RarTME81s0ynIVkha2pP0ymA4TNnLYY,1201
96
98
  anemoi/datasets/create/sources/zenodo.py,sha256=KEetFEk5GzGFpoos8rbBQBTa2XElWG7oTYjfZXgbu0Q,2065
97
99
  anemoi/datasets/create/sources/xarray_support/README.md,sha256=56olM9Jh0vI0_bU9GI-IqbBcz4DZXWONqvdzN_VeAFE,78
98
100
  anemoi/datasets/create/sources/xarray_support/__init__.py,sha256=8Dv7KQW8O3VvHOsSbqYdjaaomYIhXIKgSGatnNEweNU,5564
@@ -101,22 +103,22 @@ anemoi/datasets/create/sources/xarray_support/field.py,sha256=YRxx6kh1qO2qQ6I_Vy
101
103
  anemoi/datasets/create/sources/xarray_support/fieldlist.py,sha256=UyUljq2Ax-PpQ-bvG4Dsi_lkZucuPgCy120EadDeUMU,8271
102
104
  anemoi/datasets/create/sources/xarray_support/flavour.py,sha256=UyfzBjYMNfugMCq-r5Ie3qDuorLwaalPi_0oZHckZcg,32073
103
105
  anemoi/datasets/create/sources/xarray_support/grid.py,sha256=lsE8bQwBH9pflzvsJ89Z6ExYPdHJd54xorMNzL2gTd0,6181
104
- anemoi/datasets/create/sources/xarray_support/metadata.py,sha256=WRO86l-ZB7iJ7pG5Vz9kVv5h1MokfF0fuy0bNSNBRIc,10687
106
+ anemoi/datasets/create/sources/xarray_support/metadata.py,sha256=OJ35Y4m9BpPmnrabD9qiuHUEfejc6YfTIWPm8prHokk,10876
105
107
  anemoi/datasets/create/sources/xarray_support/patch.py,sha256=Snk8bz7gp0HrG0MrY5hrXu7VC0tKgtoiWXByi2sBYJc,2037
106
108
  anemoi/datasets/create/sources/xarray_support/time.py,sha256=Y_lZTUOXWJH4jcSgyL4WTDwrtPXi7MUiumaXfRoqqAY,12486
107
109
  anemoi/datasets/create/sources/xarray_support/variable.py,sha256=fcazws9vuizmx55JCXwbkwffg4WxJllPrEg2US1VysE,9163
108
110
  anemoi/datasets/create/statistics/__init__.py,sha256=_BuPcuUrwQAEcMQVds93EV9M5ys2ao8jCWKV4OVoSSA,18291
109
111
  anemoi/datasets/create/statistics/summary.py,sha256=JdtChTmsr1Y958_nka36HltTbeZkawuGbprbfZD7Ux8,4790
110
112
  anemoi/datasets/data/__init__.py,sha256=wzhk_7VQImge12Xkg99xuiFOC7DAjBW1mu446y0Iq60,3057
111
- anemoi/datasets/data/complement.py,sha256=QcbcAW3HaG1g4QBrEzH6Lzk8YEdnK9hJP4OpxW_oU2E,9835
113
+ anemoi/datasets/data/complement.py,sha256=N1vJAO2bijrWAxXQi9AFAPVEBe4vikSIKEXcX1EqQHI,10590
112
114
  anemoi/datasets/data/concat.py,sha256=eY5rujcdal00BJCv00mKSlxp0FKVvPQd7uqrBnL9fj4,8996
113
115
  anemoi/datasets/data/dataset.py,sha256=d-LZPCczG2-ZAua29FGP3_QWzwdnWPHhKpG1dHFQKio,31290
114
116
  anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
115
117
  anemoi/datasets/data/debug.py,sha256=hVa1jAQ-TK7CoKJNyyUC0eZPobFG-FpkVXEaO_3B-MA,10796
116
118
  anemoi/datasets/data/ensemble.py,sha256=-36kMjuT2y5jUeSnjCRTCyE4um6DLAADBVSKSTkHZZg,5352
117
119
  anemoi/datasets/data/fill_missing.py,sha256=ceONpzD-PWLMTtG4WOw6USw-Cd1O55VYzfpAiEsROK8,8797
118
- anemoi/datasets/data/forwards.py,sha256=d0LL0AORQApGmuPIfMWevOOZuePlgZ6GldHUKmqnTtg,19732
119
- anemoi/datasets/data/grids.py,sha256=vTAfGq3SaTU4tQzzfeRpFAKlmfL-JVvpjP4e3nGWO3s,22045
120
+ anemoi/datasets/data/forwards.py,sha256=3DHmjed5lDG-4tUIafvbAE5z7bJ-odVT6yG68EdQzoY,19904
121
+ anemoi/datasets/data/grids.py,sha256=8fZSitKTStBT-fsQWwTXiTgyrmYjh_jQ5dJi1U3lRz0,22056
120
122
  anemoi/datasets/data/indexing.py,sha256=DasVd1j0FB0iTw6eqvhiLka4ztf2zJcI5NgWxmtxzCw,7526
121
123
  anemoi/datasets/data/interpolate.py,sha256=-kSYwdjKH7zJtfITdbqdH6KyOFGVZDyHg4TaFk9shEI,9279
122
124
  anemoi/datasets/data/join.py,sha256=ZEHOsCecKBkKKH-vki404Sm7r7cV368ECO7PXPpay3s,9212
@@ -127,16 +129,16 @@ anemoi/datasets/data/missing.py,sha256=ogfVDponbs0bGHMxps32Fj_fq4gT26R70yEMco5gd
127
129
  anemoi/datasets/data/rescale.py,sha256=nGfJ5tWCncMJ7NMXkLbmt6z0ELrD6FxpbjJreQ3W91g,7004
128
130
  anemoi/datasets/data/select.py,sha256=Xs6uOzJL0CoOGeWA_E5_ukr8Jav2kXbZ41vhk7Vr8PE,8277
129
131
  anemoi/datasets/data/statistics.py,sha256=Hi9tPtNPBFaD0jcBa5vxoZp1radEMS-1RXwA3RbWrK8,3173
130
- anemoi/datasets/data/stores.py,sha256=-1WSQDYCMJVZlcvBim7Ay_h-VLJffbJ3v7N0uB2VfXc,18918
132
+ anemoi/datasets/data/stores.py,sha256=9RuNKbBv3SeEKRME63GZKzlJonMlvvyQk6F4xhSheL4,20023
131
133
  anemoi/datasets/data/subset.py,sha256=3h3Y7Mcw-fxs9-S0z8WNk6TcV5Hk5u9ZWfpJCTAZt4g,8804
132
134
  anemoi/datasets/data/unchecked.py,sha256=c7YIa9gFxOOjqyyOqrhGaFWQ1pN7_0W1Q8ABUTkI8e8,7311
133
135
  anemoi/datasets/data/xy.py,sha256=-jWzYismrK3eI3YCKIBpU1BCmraRncmVn0_2IUY--lk,7579
134
136
  anemoi/datasets/dates/__init__.py,sha256=pEArHDQ7w5E0WC8Vvf9ypyKSdm6gnhoN9TmooITB7C4,13617
135
137
  anemoi/datasets/dates/groups.py,sha256=IOveL6IyTXZwEdXZEnRAnpu9pINY95VN7LzcpLfJ09E,10105
136
138
  anemoi/datasets/utils/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
137
- anemoi_datasets-0.5.21.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
138
- anemoi_datasets-0.5.21.dist-info/METADATA,sha256=wc23I3DuajyKdNV67zvhmAL8X5Uan-2ogszGdc9kVVs,16069
139
- anemoi_datasets-0.5.21.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
140
- anemoi_datasets-0.5.21.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
141
- anemoi_datasets-0.5.21.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
142
- anemoi_datasets-0.5.21.dist-info/RECORD,,
139
+ anemoi_datasets-0.5.22.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
140
+ anemoi_datasets-0.5.22.dist-info/METADATA,sha256=69SMdVpJ30oSexpKZRQnt8wh1-Y_SqG2blHvW0XByVY,16113
141
+ anemoi_datasets-0.5.22.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
142
+ anemoi_datasets-0.5.22.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
143
+ anemoi_datasets-0.5.22.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
144
+ anemoi_datasets-0.5.22.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5