anemoi-datasets 0.5.23__py3-none-any.whl → 0.5.25__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.
Files changed (26) hide show
  1. anemoi/datasets/_version.py +2 -2
  2. anemoi/datasets/commands/finalise-additions.py +2 -1
  3. anemoi/datasets/commands/finalise.py +2 -1
  4. anemoi/datasets/commands/init-additions.py +2 -1
  5. anemoi/datasets/commands/load-additions.py +2 -1
  6. anemoi/datasets/commands/load.py +2 -1
  7. anemoi/datasets/create/__init__.py +24 -33
  8. anemoi/datasets/create/input/__init__.py +0 -20
  9. anemoi/datasets/create/sources/accumulations.py +7 -6
  10. anemoi/datasets/create/sources/grib.py +1 -1
  11. anemoi/datasets/create/sources/patterns.py +1 -1
  12. anemoi/datasets/data/dataset.py +29 -0
  13. anemoi/datasets/data/misc.py +74 -16
  14. anemoi/datasets/data/observations/__init__.py +316 -0
  15. anemoi/datasets/data/observations/legacy_obs_dataset.py +200 -0
  16. anemoi/datasets/data/observations/multi.py +64 -0
  17. anemoi/datasets/data/padded.py +227 -0
  18. anemoi/datasets/data/records/__init__.py +442 -0
  19. anemoi/datasets/data/records/backends/__init__.py +157 -0
  20. anemoi/datasets/data/subset.py +5 -0
  21. {anemoi_datasets-0.5.23.dist-info → anemoi_datasets-0.5.25.dist-info}/METADATA +3 -3
  22. {anemoi_datasets-0.5.23.dist-info → anemoi_datasets-0.5.25.dist-info}/RECORD +26 -20
  23. {anemoi_datasets-0.5.23.dist-info → anemoi_datasets-0.5.25.dist-info}/WHEEL +1 -1
  24. {anemoi_datasets-0.5.23.dist-info → anemoi_datasets-0.5.25.dist-info}/entry_points.txt +0 -0
  25. {anemoi_datasets-0.5.23.dist-info → anemoi_datasets-0.5.25.dist-info}/licenses/LICENSE +0 -0
  26. {anemoi_datasets-0.5.23.dist-info → anemoi_datasets-0.5.25.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,157 @@
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 json
11
+ import os
12
+
13
+ import numpy as np
14
+
15
+
16
+ class Backend:
17
+ def __init__(self, path, **kwargs):
18
+ self.path = path
19
+ self.kwargs = kwargs
20
+
21
+ def read(self, i, **kwargs):
22
+ raise NotImplementedError("Must be implemented in subclass")
23
+
24
+ def read_metadata(self):
25
+ raise NotImplementedError("Must be implemented in subclass")
26
+
27
+ def read_statistics(self):
28
+ raise NotImplementedError("Must be implemented in subclass")
29
+
30
+
31
+ class Npz1Backend(Backend):
32
+ def read(self, i, **kwargs):
33
+ path = os.path.join(self.path, "data", str(int(i / 10)), f"{i}.npz")
34
+ with open(path, "rb") as f:
35
+ return dict(np.load(f))
36
+
37
+ def read_metadata(self):
38
+ with open(os.path.join(self.path, "metadata.json"), "r") as f:
39
+ return json.load(f)
40
+
41
+ def read_statistics(self):
42
+ path = os.path.join(self.path, "statistics.npz")
43
+ dic = {}
44
+ for k, v in dict(np.load(path)).items():
45
+ key, group = k.split(":")
46
+ if group not in dic:
47
+ dic[group] = {}
48
+ dic[group][key] = v
49
+ return dic
50
+
51
+
52
+ class Npz2Backend(Backend):
53
+ def read(self, i, **kwargs):
54
+ path = os.path.join(self.path, "data_", str(int(i / 10)), f"{i}_.npz")
55
+ with open(path, "rb") as f:
56
+ return dict(np.load(f))
57
+
58
+ def read_metadata(self):
59
+ with open(os.path.join(self.path, "metadata.json"), "r") as f:
60
+ return json.load(f)
61
+
62
+ def read_statistics(self):
63
+ path = os.path.join(self.path, "statistics_.npz")
64
+ dic = {}
65
+ for k, v in dict(np.load(path)).items():
66
+ key, group = k.split(":")
67
+ if group not in dic:
68
+ dic[group] = {}
69
+ dic[group][key] = v
70
+ return dic
71
+
72
+
73
+ def backend_factory(backend, *args, **kwargs):
74
+ BACKENDS = dict(
75
+ npz1=Npz1Backend,
76
+ npz2=Npz2Backend,
77
+ )
78
+ return BACKENDS[backend](*args, **kwargs)
79
+
80
+
81
+ class WriteBackend(Backend):
82
+ def __init__(self, path, **kwargs):
83
+ super().__init__(path, **kwargs)
84
+
85
+ def write(self, i, data, **kwargs):
86
+ raise NotImplementedError("Must be implemented in subclass")
87
+
88
+ def write_metadata(self, metadata):
89
+ raise NotImplementedError("Must be implemented in subclass")
90
+
91
+ def write_statistics(self, statistics):
92
+ raise NotImplementedError("Must be implemented in subclass")
93
+
94
+
95
+ class Npz1WriteBackend(WriteBackend):
96
+ def write(self, i, data, **kwargs):
97
+ path = os.path.join(self.path, "data", str(int(i / 10)))
98
+ os.makedirs(path, exist_ok=True)
99
+ out_path = os.path.join(path, f"{i}.npz")
100
+ np.savez(out_path, **data)
101
+
102
+ def write_metadata(self, metadata):
103
+ from anemoi.datasets.create import json_tidy
104
+
105
+ os.makedirs(self.path, exist_ok=True)
106
+ with open(os.path.join(self.path, "metadata.json"), "w") as f:
107
+ json.dump(metadata, f, indent=2, default=json_tidy)
108
+
109
+ def write_statistics(self, statistics):
110
+ flatten = {}
111
+ for name, d in statistics.items():
112
+ assert isinstance(d, dict), f"Statistics for {name} must be a dict, got {type(d)}"
113
+ for k, v in d.items():
114
+ assert isinstance(
115
+ v, (int, float, np.ndarray)
116
+ ), f"Statistics value for {k} in {name} must be int, float or ndarray, got {type(v)}"
117
+ flatten[k + ":" + name] = v
118
+
119
+ path = os.path.join(self.path, "statistics.npz")
120
+ np.savez(path, **flatten)
121
+
122
+
123
+ class Npz2WriteBackend(WriteBackend):
124
+ def write(self, i, data, **kwargs):
125
+ path = os.path.join(self.path, "data_", str(int(i / 10)))
126
+ os.makedirs(path, exist_ok=True)
127
+ out_path = os.path.join(path, f"{i}_.npz")
128
+ np.savez(out_path, **data)
129
+
130
+ def write_metadata(self, metadata):
131
+ from anemoi.datasets.create import json_tidy
132
+
133
+ os.makedirs(self.path, exist_ok=True)
134
+ with open(os.path.join(self.path, "metadata.json"), "w") as f:
135
+ json.dump(metadata, f, indent=2, default=json_tidy)
136
+
137
+ def write_statistics(self, statistics):
138
+ flatten = {}
139
+ for name, d in statistics.items():
140
+ assert isinstance(d, dict), f"Statistics for {name} must be a dict, got {type(d)}"
141
+ for k, v in d.items():
142
+ assert isinstance(
143
+ v, (int, float, np.ndarray)
144
+ ), f"Statistics value for {k} in {name} must be int, float or ndarray, got {type(v)}"
145
+ flatten[k + ":" + name] = v
146
+
147
+ os.makedirs(self.path, exist_ok=True)
148
+ path = os.path.join(self.path, "statistics_.npz")
149
+ np.savez(path, **flatten)
150
+
151
+
152
+ def writer_backend_factory(backend, *args, **kwargs):
153
+ WRITE_BACKENDS = dict(
154
+ npz1=Npz1WriteBackend,
155
+ npz2=Npz2WriteBackend,
156
+ )
157
+ return WRITE_BACKENDS[backend](*args, **kwargs)
@@ -185,6 +185,11 @@ class Subset(Forwards):
185
185
  n = self.indices[n]
186
186
  return self.dataset[n]
187
187
 
188
+ def get_aux(self, n: FullIndex) -> NDArray[Any]:
189
+ assert n >= 0, n
190
+ n = self.indices[n]
191
+ return self.dataset.get_aux(n)
192
+
188
193
  @debug_indexing
189
194
  def _get_slice(self, s: slice) -> NDArray[Any]:
190
195
  """Get slice of data.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anemoi-datasets
3
- Version: 0.5.23
3
+ Version: 0.5.25
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,7 +225,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
225
225
  Classifier: Programming Language :: Python :: Implementation :: PyPy
226
226
  Requires-Python: >=3.9
227
227
  License-File: LICENSE
228
- Requires-Dist: anemoi-transform>=0.1.9
228
+ Requires-Dist: anemoi-transform>=0.1.10
229
229
  Requires-Dist: anemoi-utils[provenance]>=0.4.21
230
230
  Requires-Dist: cfunits
231
231
  Requires-Dist: numcodecs<0.16
@@ -241,7 +241,7 @@ Requires-Dist: prettytable; extra == "comparelam"
241
241
  Requires-Dist: termcolor; extra == "comparelam"
242
242
  Provides-Extra: create
243
243
  Requires-Dist: cachetools; extra == "create"
244
- Requires-Dist: earthkit-data[mars]<0.14,>=0.12.4; extra == "create"
244
+ Requires-Dist: earthkit-data[mars]>=0.14; extra == "create"
245
245
  Requires-Dist: earthkit-geo>=0.3; extra == "create"
246
246
  Requires-Dist: earthkit-meteo>=0.3; extra == "create"
247
247
  Requires-Dist: eccodes>=2.39.1; extra == "create"
@@ -1,6 +1,6 @@
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=GGi-5Lo_RMRAsavvRe2IgZSfPfbd4D66RzLtCKVP-L0,513
3
+ anemoi/datasets/_version.py,sha256=hibncct7X-CdDhFODEyBCnGakn4Or9qoR57vQrzzv9g,513
4
4
  anemoi/datasets/check.py,sha256=hbEMUurl2IjZbp56dBgOfAEsAmmgymgRM5ySaMJSTdk,2755
5
5
  anemoi/datasets/grids.py,sha256=Hhj1aOXHvDjmI46M_UlLSjCs1qYqxH-uqd_kapDSdbU,18134
6
6
  anemoi/datasets/testing.py,sha256=fy_JzavUwLlK_2rtXAT-UGUyo5gjyQW2y826zf334Wg,2645
@@ -11,20 +11,20 @@ anemoi/datasets/commands/compare-lam.py,sha256=F5GYRsKOtdhDePhifgf1TCj5L2T8EVIA2
11
11
  anemoi/datasets/commands/compare.py,sha256=jzhjbbt1U-YANTVRBhrwSh2CcYgk4qX2IiTMJtcn82s,3678
12
12
  anemoi/datasets/commands/copy.py,sha256=hP7BSqkGzK8-n3BA2vlpFcbO3INHmShPZ75Aw_K_g4Y,17302
13
13
  anemoi/datasets/commands/create.py,sha256=3myohTCLsM6oUuZHIfLaTlDaq-DOcJZRM4Vks007fZg,6543
14
- anemoi/datasets/commands/finalise-additions.py,sha256=2LqU7ke3i-yRQbjkgldX6e2QlyE-tKqp0b6QOhJF19g,1985
15
- anemoi/datasets/commands/finalise.py,sha256=-YtN9wFFDrM_i_V9YHoXZsajF3eAax-73Zsi4uHAFCI,1709
14
+ anemoi/datasets/commands/finalise-additions.py,sha256=GXjGAJILFORXXkE_wfgnk5w4jYug18Q2TpwVah5Ctto,1982
15
+ anemoi/datasets/commands/finalise.py,sha256=cZIiqpJsaN1rqBKOStOA6pJh5n1tisrMFcGGT2UGpKY,1706
16
16
  anemoi/datasets/commands/grib-index.py,sha256=H9snsk1w2tL6ObBhlHVxFXxCm5sB-eUGrX772G8Nb2s,3057
17
- anemoi/datasets/commands/init-additions.py,sha256=2vMom5L38UvLLopzP2z-R_Fq31fU2uMvKXoDq5d8oI4,1931
17
+ anemoi/datasets/commands/init-additions.py,sha256=wIsintXpf3aG2VhuBJJYI8ZZGXLrum7sM05IX8ImRXk,1928
18
18
  anemoi/datasets/commands/init.py,sha256=5IKyJ_hJA4lLIbpT88XtcGzXccHLSGwSoqVSvVJGxPg,2852
19
19
  anemoi/datasets/commands/inspect.py,sha256=kaDHXP8Cv8PsGqEXUF5Yruf5OQHwOIkjCS0SNxMs6eg,26578
20
- anemoi/datasets/commands/load-additions.py,sha256=zqmRherIHXb5WIB4cnAuCBEsxFJmUpGjafvm6RtQ7Co,2004
21
- anemoi/datasets/commands/load.py,sha256=U1Y8qByjreu7H9WeX4G8-tyKsz48va10fkW1L4U4wWg,2034
20
+ anemoi/datasets/commands/load-additions.py,sha256=bg0JYaPPXhGXKL-p0nngAeI2rPhSTFpZ7bY04mKuSKk,2001
21
+ anemoi/datasets/commands/load.py,sha256=FuKdRYuNlnv_p5ScwPKCiVDEVc9cA1Khvbd-T7N4SvU,2031
22
22
  anemoi/datasets/commands/patch.py,sha256=Q9FDabWxlvK1QaeH4D9zhNpoSGB4h7EliWgcV76iFBs,1599
23
23
  anemoi/datasets/commands/publish.py,sha256=7YusLCWYdVLuexZzvyh8ztYoBOBzVmve3uJs-XKeMAE,1469
24
24
  anemoi/datasets/commands/scan.py,sha256=6Uoyd7WkM4ypoqmZargXIG50uRKzHE3AlvkAr7sCBy4,4262
25
25
  anemoi/datasets/compute/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
26
26
  anemoi/datasets/compute/recentre.py,sha256=kwxDB8qpgOCFZSQJvjAmVcpH5zWsfk5FSoIureqNHd4,5915
27
- anemoi/datasets/create/__init__.py,sha256=8TJwN_t7Epg6yBSbbRW2L039Xh_aqUsUgZBNR3U2yl0,51165
27
+ anemoi/datasets/create/__init__.py,sha256=LAa-e6TnH5eHmHEpkMk9_a24wlpTFEKWllPgSl-mcW8,50855
28
28
  anemoi/datasets/create/check.py,sha256=xqobSfh3655ZoKs-CjHWBiEpIfrHU_vkqwiIsAOrqvs,10795
29
29
  anemoi/datasets/create/chunks.py,sha256=kZV3dWoCuv3Bttc0wysJB7OPbXsD99exKyrrj4HGFwQ,4025
30
30
  anemoi/datasets/create/config.py,sha256=xrSlaY2p5zssfLIt8A1CP9WwJReSXVWBMQM7bT1aFbU,13448
@@ -57,7 +57,7 @@ anemoi/datasets/create/filters/transform.py,sha256=gIDLvaJlnn3Nc6P29aPOvNYM6yBWc
57
57
  anemoi/datasets/create/filters/unrotate_winds.py,sha256=3AJf0crnVVySLlXLIdfEUxRRlQeKgheUuD-UCrSrgo8,2798
58
58
  anemoi/datasets/create/filters/uv_to_speeddir.py,sha256=Zdc34AG5Bsz-Z7JGuznyRJr6F-BnWKXPiI3mjmOpbek,2883
59
59
  anemoi/datasets/create/filters/wz_to_w.py,sha256=slOiX5RibG48Zrkss8Qjpb-8ZTnvSvmKlk1Hy45_wzU,2812
60
- anemoi/datasets/create/input/__init__.py,sha256=XeURpmbReQvpELltGFKzg3oZFXWRdUxW9SK3K662SBQ,3364
60
+ anemoi/datasets/create/input/__init__.py,sha256=vsB_whJG87IWnjaGgIMCCg8v9pfuC_vQk8BB3u5j33o,2886
61
61
  anemoi/datasets/create/input/action.py,sha256=pc_2RPbs3laF8vBhNkbFdib40kTcF5QW6QL0p8VLNzA,7778
62
62
  anemoi/datasets/create/input/concat.py,sha256=bU8SWfBVfK8bRAmmN4UO9zpIGxwQvRUk9_vwrKPOTE4,5355
63
63
  anemoi/datasets/create/input/context.py,sha256=qrLccxMe9UkyQxsNuR6JSK7oLzZq21dt38AxZ9kYzsY,2714
@@ -74,21 +74,21 @@ anemoi/datasets/create/input/step.py,sha256=WcR9NgRvUKF60Fo5veLvRCAQMrOd55x1gOEA
74
74
  anemoi/datasets/create/input/template.py,sha256=Iycw9VmfA0WEIDP_Of8bp-8HsV0EUfwbnm0WjxiO4GA,4092
75
75
  anemoi/datasets/create/input/trace.py,sha256=dakPYMmwKq6s17Scww1CN-xYBD3btJTGeDknOhAcnEM,3320
76
76
  anemoi/datasets/create/sources/__init__.py,sha256=XNiiGaC6NbxnGfl6glPw-gTJASi3vsGKwVlfkMqYGk4,950
77
- anemoi/datasets/create/sources/accumulations.py,sha256=9I8_AQtD62Ji-7SMyyYBTdIZBG2rlPY9V2YjqLeWYl8,32538
77
+ anemoi/datasets/create/sources/accumulations.py,sha256=vo2f7cejjkKneZ-9UVRJ_jwNiJJ1XNabxP57UHJZAZs,32572
78
78
  anemoi/datasets/create/sources/accumulations2.py,sha256=UwKJOtfbJGNTceVpLtHC8dJhROJbxzjF3V_HR7wTwrk,20661
79
79
  anemoi/datasets/create/sources/anemoi_dataset.py,sha256=2xJJTmKlv87F_2ECMKeehaeW7_oWLlDcLt8C_Prp1RI,2017
80
80
  anemoi/datasets/create/sources/constants.py,sha256=5O6d9tEuAmVjl5vNkNfmkaAjKXFlw1UjeueTsF1GZCI,1528
81
81
  anemoi/datasets/create/sources/eccc_fstd.py,sha256=8HK38f444HcWMvBhooP0XqTfMXYoCbN_8G9RI_Ne5rc,659
82
82
  anemoi/datasets/create/sources/empty.py,sha256=5mVIVRUwnBfE3zp-bvNA_imXCSpyds-4mewcI8HXAiY,1020
83
83
  anemoi/datasets/create/sources/forcings.py,sha256=PmcAd-nFZzILRxfvrptb45VLD9Nd2vjy0xeToeoKl1Y,1222
84
- anemoi/datasets/create/sources/grib.py,sha256=wh1kx2IbzeHDzqSEKB-gaM3Cs3Z_oVa7pyHZiOzF3-s,4278
84
+ anemoi/datasets/create/sources/grib.py,sha256=_vTqP1yTyFJfOFP-_8m3aZnJ7F1aaM1UWgxRF9VDOP0,4270
85
85
  anemoi/datasets/create/sources/grib_index.py,sha256=Pnm0RLga9lpD4MqVaZr7IqXMBlw1DtTIWZRfz7fq30Q,19026
86
86
  anemoi/datasets/create/sources/hindcasts.py,sha256=_4880rgd4AsRxlDXVi6dkh8mlKXrz2i27btVlmlMFjY,2611
87
87
  anemoi/datasets/create/sources/legacy.py,sha256=RJce-9TwmUUCFbgC8A3Dp61nSBfB8_lWti8WNoOMIcU,2652
88
88
  anemoi/datasets/create/sources/mars.py,sha256=tesQz7Ne6SLBChE_cNJU6Sxr6e0LXFlUKQ8gCdRiCMw,13155
89
89
  anemoi/datasets/create/sources/netcdf.py,sha256=UnehMwEMJquqaOeU33zNyFUYfzqQx4Rg-GRmUcgMcbE,1222
90
90
  anemoi/datasets/create/sources/opendap.py,sha256=sTm0wXE_BHk9q8vaNNE_Y6BhTOmhxPweS8RTjP4HYjU,1254
91
- anemoi/datasets/create/sources/patterns.py,sha256=xNl3yI_cClgJsHaoYwE-bmDSzV4pcBgHRanHdz9MsQU,2291
91
+ anemoi/datasets/create/sources/patterns.py,sha256=siTExxLY5HWdIgOsufyQuG7Qvkt38oElZOFwz9h0JFg,2283
92
92
  anemoi/datasets/create/sources/recentre.py,sha256=OtobkmaWzGD3UacjXfK_Oerjf7EnQi85LIs9xBYJK7A,4044
93
93
  anemoi/datasets/create/sources/source.py,sha256=x8k---A2_3AglYqNsXLlv1ti4f9n_gVKmmqtyQGLPTs,2117
94
94
  anemoi/datasets/create/sources/tendencies.py,sha256=saHGYl-MnvBEeZX-n1zgT8lehA7LC2G5dMNnxklI9-U,5590
@@ -112,7 +112,7 @@ anemoi/datasets/create/statistics/summary.py,sha256=JdtChTmsr1Y958_nka36HltTbeZk
112
112
  anemoi/datasets/data/__init__.py,sha256=wzhk_7VQImge12Xkg99xuiFOC7DAjBW1mu446y0Iq60,3057
113
113
  anemoi/datasets/data/complement.py,sha256=N1vJAO2bijrWAxXQi9AFAPVEBe4vikSIKEXcX1EqQHI,10590
114
114
  anemoi/datasets/data/concat.py,sha256=eY5rujcdal00BJCv00mKSlxp0FKVvPQd7uqrBnL9fj4,8996
115
- anemoi/datasets/data/dataset.py,sha256=d-LZPCczG2-ZAua29FGP3_QWzwdnWPHhKpG1dHFQKio,31290
115
+ anemoi/datasets/data/dataset.py,sha256=it02CVYdzU9QXSkU9jVR9BTWv-JDMlnH0ujyIgf40pM,32326
116
116
  anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
117
117
  anemoi/datasets/data/debug.py,sha256=hVa1jAQ-TK7CoKJNyyUC0eZPobFG-FpkVXEaO_3B-MA,10796
118
118
  anemoi/datasets/data/ensemble.py,sha256=-36kMjuT2y5jUeSnjCRTCyE4um6DLAADBVSKSTkHZZg,5352
@@ -124,21 +124,27 @@ anemoi/datasets/data/interpolate.py,sha256=-kSYwdjKH7zJtfITdbqdH6KyOFGVZDyHg4TaF
124
124
  anemoi/datasets/data/join.py,sha256=ZEHOsCecKBkKKH-vki404Sm7r7cV368ECO7PXPpay3s,9212
125
125
  anemoi/datasets/data/masked.py,sha256=giOvHLcGbLf6mZPqZjAxQd1kvydmkepDFh2EqchXLTQ,10213
126
126
  anemoi/datasets/data/merge.py,sha256=SvQhJHf-C-Kn7hEjFqomienk-epPPjMtoccRNCJpMtw,8733
127
- anemoi/datasets/data/misc.py,sha256=6JOag2VJBJhz-eEEWL9F5nriEJyKz9aZL2P3FYcOSJo,20951
127
+ anemoi/datasets/data/misc.py,sha256=x9E8qDqd7Z7blkva6Giu7RtzF0PtKeL8YSzpxvhPw1k,22899
128
128
  anemoi/datasets/data/missing.py,sha256=ogfVDponbs0bGHMxps32Fj_fq4gT26R70yEMco5gdK8,12593
129
+ anemoi/datasets/data/padded.py,sha256=BYTLDNRatjEB2lri9IlLcMsFgxnQT2F5rZ0XxExjE7c,7881
129
130
  anemoi/datasets/data/rescale.py,sha256=nGfJ5tWCncMJ7NMXkLbmt6z0ELrD6FxpbjJreQ3W91g,7004
130
131
  anemoi/datasets/data/select.py,sha256=Xs6uOzJL0CoOGeWA_E5_ukr8Jav2kXbZ41vhk7Vr8PE,8277
131
132
  anemoi/datasets/data/statistics.py,sha256=Hi9tPtNPBFaD0jcBa5vxoZp1radEMS-1RXwA3RbWrK8,3173
132
133
  anemoi/datasets/data/stores.py,sha256=9RuNKbBv3SeEKRME63GZKzlJonMlvvyQk6F4xhSheL4,20023
133
- anemoi/datasets/data/subset.py,sha256=3h3Y7Mcw-fxs9-S0z8WNk6TcV5Hk5u9ZWfpJCTAZt4g,8804
134
+ anemoi/datasets/data/subset.py,sha256=hEYRSc1QOdtJJpIWy85ZuZ9a6UNk-Eo9vAYsgRg2UPs,8950
134
135
  anemoi/datasets/data/unchecked.py,sha256=c7YIa9gFxOOjqyyOqrhGaFWQ1pN7_0W1Q8ABUTkI8e8,7311
135
136
  anemoi/datasets/data/xy.py,sha256=-jWzYismrK3eI3YCKIBpU1BCmraRncmVn0_2IUY--lk,7579
137
+ anemoi/datasets/data/observations/__init__.py,sha256=zpYL-WEws9FZ6QwAfj8kcZXL0d7uZuSrMTxZ6wY3npg,11260
138
+ anemoi/datasets/data/observations/legacy_obs_dataset.py,sha256=6Aj32XWmNmCsd0azhuB6aDcpDaJ7lRdgJ9KWlU9fXxs,7342
139
+ anemoi/datasets/data/observations/multi.py,sha256=nDeN99LRNVyjUCNTFCL3R7iAQNsf1tSen-fSw9-VsiY,2184
140
+ anemoi/datasets/data/records/__init__.py,sha256=lWJBukNArbBBdcfG8bh5MzJoSOjk5Fi8zcwHWo5a0I8,12405
141
+ anemoi/datasets/data/records/backends/__init__.py,sha256=KAbzMflpo9ZFAComabAdYTNgbtr1mrrSFBQaUlQoLfs,5247
136
142
  anemoi/datasets/dates/__init__.py,sha256=pEArHDQ7w5E0WC8Vvf9ypyKSdm6gnhoN9TmooITB7C4,13617
137
143
  anemoi/datasets/dates/groups.py,sha256=IOveL6IyTXZwEdXZEnRAnpu9pINY95VN7LzcpLfJ09E,10105
138
144
  anemoi/datasets/utils/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
139
- anemoi_datasets-0.5.23.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
140
- anemoi_datasets-0.5.23.dist-info/METADATA,sha256=jL1dQ1T8U_2K69e01p_33gBflpXvPgBHNtx-u15qsiA,16114
141
- anemoi_datasets-0.5.23.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
142
- anemoi_datasets-0.5.23.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
143
- anemoi_datasets-0.5.23.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
144
- anemoi_datasets-0.5.23.dist-info/RECORD,,
145
+ anemoi_datasets-0.5.25.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
146
+ anemoi_datasets-0.5.25.dist-info/METADATA,sha256=MEaQXIH1xPVFBOPzI3z1zmYcxgLBZ37gKHVSfXhdzxs,16107
147
+ anemoi_datasets-0.5.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
148
+ anemoi_datasets-0.5.25.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
149
+ anemoi_datasets-0.5.25.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
150
+ anemoi_datasets-0.5.25.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5