anemoi-datasets 0.3.10__py3-none-any.whl → 0.4.2__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 (61) hide show
  1. anemoi/datasets/_version.py +2 -2
  2. anemoi/datasets/commands/compare.py +59 -0
  3. anemoi/datasets/commands/create.py +84 -3
  4. anemoi/datasets/commands/inspect.py +9 -9
  5. anemoi/datasets/commands/scan.py +4 -4
  6. anemoi/datasets/compute/recentre.py +14 -9
  7. anemoi/datasets/create/__init__.py +44 -17
  8. anemoi/datasets/create/check.py +6 -5
  9. anemoi/datasets/create/chunks.py +1 -1
  10. anemoi/datasets/create/config.py +6 -27
  11. anemoi/datasets/create/functions/__init__.py +3 -3
  12. anemoi/datasets/create/functions/filters/empty.py +4 -4
  13. anemoi/datasets/create/functions/filters/rename.py +14 -6
  14. anemoi/datasets/create/functions/filters/rotate_winds.py +16 -60
  15. anemoi/datasets/create/functions/filters/unrotate_winds.py +14 -64
  16. anemoi/datasets/create/functions/sources/__init__.py +39 -0
  17. anemoi/datasets/create/functions/sources/accumulations.py +38 -56
  18. anemoi/datasets/create/functions/sources/constants.py +11 -4
  19. anemoi/datasets/create/functions/sources/empty.py +2 -2
  20. anemoi/datasets/create/functions/sources/forcings.py +3 -3
  21. anemoi/datasets/create/functions/sources/grib.py +8 -4
  22. anemoi/datasets/create/functions/sources/hindcasts.py +32 -364
  23. anemoi/datasets/create/functions/sources/mars.py +57 -26
  24. anemoi/datasets/create/functions/sources/netcdf.py +2 -60
  25. anemoi/datasets/create/functions/sources/opendap.py +3 -2
  26. anemoi/datasets/create/functions/sources/source.py +3 -3
  27. anemoi/datasets/create/functions/sources/tendencies.py +7 -7
  28. anemoi/datasets/create/functions/sources/xarray/__init__.py +73 -0
  29. anemoi/datasets/create/functions/sources/xarray/coordinates.py +234 -0
  30. anemoi/datasets/create/functions/sources/xarray/field.py +109 -0
  31. anemoi/datasets/create/functions/sources/xarray/fieldlist.py +171 -0
  32. anemoi/datasets/create/functions/sources/xarray/flavour.py +330 -0
  33. anemoi/datasets/create/functions/sources/xarray/grid.py +46 -0
  34. anemoi/datasets/create/functions/sources/xarray/metadata.py +161 -0
  35. anemoi/datasets/create/functions/sources/xarray/time.py +98 -0
  36. anemoi/datasets/create/functions/sources/xarray/variable.py +198 -0
  37. anemoi/datasets/create/functions/sources/xarray_kerchunk.py +42 -0
  38. anemoi/datasets/create/functions/sources/xarray_zarr.py +15 -0
  39. anemoi/datasets/create/functions/sources/zenodo.py +40 -0
  40. anemoi/datasets/create/input.py +309 -191
  41. anemoi/datasets/create/loaders.py +155 -77
  42. anemoi/datasets/create/patch.py +17 -14
  43. anemoi/datasets/create/persistent.py +1 -1
  44. anemoi/datasets/create/size.py +4 -5
  45. anemoi/datasets/create/statistics/__init__.py +51 -17
  46. anemoi/datasets/create/template.py +11 -61
  47. anemoi/datasets/create/trace.py +91 -0
  48. anemoi/datasets/create/utils.py +5 -52
  49. anemoi/datasets/create/zarr.py +24 -10
  50. anemoi/datasets/data/dataset.py +4 -4
  51. anemoi/datasets/data/misc.py +9 -37
  52. anemoi/datasets/data/stores.py +37 -14
  53. anemoi/datasets/dates/__init__.py +7 -1
  54. anemoi/datasets/dates/groups.py +3 -0
  55. {anemoi_datasets-0.3.10.dist-info → anemoi_datasets-0.4.2.dist-info}/METADATA +24 -8
  56. anemoi_datasets-0.4.2.dist-info/RECORD +86 -0
  57. {anemoi_datasets-0.3.10.dist-info → anemoi_datasets-0.4.2.dist-info}/WHEEL +1 -1
  58. anemoi_datasets-0.3.10.dist-info/RECORD +0 -73
  59. {anemoi_datasets-0.3.10.dist-info → anemoi_datasets-0.4.2.dist-info}/LICENSE +0 -0
  60. {anemoi_datasets-0.3.10.dist-info → anemoi_datasets-0.4.2.dist-info}/entry_points.txt +0 -0
  61. {anemoi_datasets-0.3.10.dist-info → anemoi_datasets-0.4.2.dist-info}/top_level.txt +0 -0
@@ -9,6 +9,7 @@ import logging
9
9
  import os
10
10
  import warnings
11
11
  from functools import cached_property
12
+ from urllib.parse import urlparse
12
13
 
13
14
  import numpy as np
14
15
  import zarr
@@ -40,7 +41,9 @@ class ReadOnlyStore(zarr.storage.BaseStore):
40
41
 
41
42
 
42
43
  class HTTPStore(ReadOnlyStore):
43
- """We write our own HTTPStore because the one used by zarr (fsspec) does not play well with fork() and multiprocessing."""
44
+ """We write our own HTTPStore because the one used by zarr (s3fs)
45
+ does not play well with fork() and multiprocessing.
46
+ """
44
47
 
45
48
  def __init__(self, url):
46
49
  self.url = url
@@ -58,15 +61,16 @@ class HTTPStore(ReadOnlyStore):
58
61
 
59
62
 
60
63
  class S3Store(ReadOnlyStore):
61
- """We write our own S3Store because the one used by zarr (fsspec) does not play well with fork() and multiprocessing."""
64
+ """We write our own S3Store because the one used by zarr (s3fs)
65
+ does not play well with fork(). We also get to control the s3 client
66
+ options using the anemoi configs.
67
+ """
62
68
 
63
- def __init__(self, url):
64
- import boto3
65
-
66
- self.bucket, self.key = url[5:].split("/", 1)
69
+ def __init__(self, url, region=None):
70
+ from anemoi.utils.s3 import s3_client
67
71
 
68
- # TODO: get the profile name from the url
69
- self.s3 = boto3.Session(profile_name=None).client("s3")
72
+ _, _, self.bucket, self.key = url.split("/", 3)
73
+ self.s3 = s3_client(self.bucket, region=region)
70
74
 
71
75
  def __getitem__(self, key):
72
76
  try:
@@ -99,18 +103,37 @@ class DebugStore(ReadOnlyStore):
99
103
  return key in self.store
100
104
 
101
105
 
102
- def open_zarr(path, dont_fail=False, cache=None):
103
- try:
104
- store = path
106
+ def name_to_zarr_store(path_or_url):
107
+ store = path_or_url
108
+
109
+ if store.startswith("s3://"):
110
+ store = S3Store(store)
105
111
 
106
- if store.startswith("http://") or store.startswith("https://"):
112
+ elif store.startswith("http://") or store.startswith("https://"):
113
+ parsed = urlparse(store)
114
+ bits = parsed.netloc.split(".")
115
+ if len(bits) == 5 and (bits[1], bits[3], bits[4]) == ("s3", "amazonaws", "com"):
116
+ s3_url = f"s3://{bits[0]}{parsed.path}"
117
+ store = S3Store(s3_url, region=bits[2])
118
+ else:
107
119
  store = HTTPStore(store)
108
120
 
109
- elif store.startswith("s3://"):
110
- store = S3Store(store)
121
+ return store
122
+
123
+
124
+ def open_zarr(path, dont_fail=False, cache=None):
125
+ try:
126
+ store = name_to_zarr_store(path)
111
127
 
112
128
  if DEBUG_ZARR_LOADING:
113
129
  if isinstance(store, str):
130
+ import os
131
+
132
+ if not os.path.isdir(store):
133
+ raise NotImplementedError(
134
+ "DEBUG_ZARR_LOADING is only implemented for DirectoryStore. "
135
+ "Please disable it for other backends."
136
+ )
114
137
  store = zarr.storage.DirectoryStore(store)
115
138
  store = DebugStore(store)
116
139
 
@@ -96,7 +96,7 @@ class ValuesDates(Dates):
96
96
 
97
97
 
98
98
  class StartEndDates(Dates):
99
- def __init__(self, start, end, frequency=1, **kwargs):
99
+ def __init__(self, start, end, frequency=1, months=None, **kwargs):
100
100
  frequency = frequency_to_hours(frequency)
101
101
 
102
102
  def _(x):
@@ -128,6 +128,12 @@ class StartEndDates(Dates):
128
128
  date = start
129
129
  self.values = []
130
130
  while date <= end:
131
+
132
+ if months is not None:
133
+ if date.month not in months:
134
+ date += increment
135
+ continue
136
+
131
137
  self.values.append(date)
132
138
  date += increment
133
139
 
@@ -61,6 +61,9 @@ class Groups:
61
61
  count += 1
62
62
  return count
63
63
 
64
+ def __repr__(self):
65
+ return f"{self.__class__.__name__}(dates={len(self)})"
66
+
64
67
 
65
68
  class Filter:
66
69
  def __init__(self, missing):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: anemoi-datasets
3
- Version: 0.3.10
3
+ Version: 0.4.2
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
@@ -223,49 +223,65 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
223
223
  Classifier: Programming Language :: Python :: Implementation :: PyPy
224
224
  Requires-Python: >=3.9
225
225
  License-File: LICENSE
226
- Requires-Dist: anemoi-utils[provenance] >=0.3.4
226
+ Requires-Dist: anemoi-utils[provenance] >=0.3.11
227
227
  Requires-Dist: numpy
228
228
  Requires-Dist: pyyaml
229
229
  Requires-Dist: semantic-version
230
230
  Requires-Dist: tqdm
231
- Requires-Dist: zarr <=2.17
231
+ Requires-Dist: zarr
232
232
  Provides-Extra: all
233
+ Requires-Dist: aiohttp ; extra == 'all'
233
234
  Requires-Dist: boto3 ; extra == 'all'
234
- Requires-Dist: climetlab >=0.23.2 ; extra == 'all'
235
+ Requires-Dist: earthkit-data[mars] >=0.9 ; extra == 'all'
236
+ Requires-Dist: earthkit-geo >=0.2 ; extra == 'all'
235
237
  Requires-Dist: earthkit-meteo ; extra == 'all'
236
238
  Requires-Dist: ecmwflibs >=0.6.3 ; extra == 'all'
237
239
  Requires-Dist: entrypoints ; extra == 'all'
240
+ Requires-Dist: gcsfs ; extra == 'all'
241
+ Requires-Dist: kerchunk ; extra == 'all'
238
242
  Requires-Dist: pyproj ; extra == 'all'
239
243
  Requires-Dist: requests ; extra == 'all'
240
244
  Requires-Dist: s3fs ; extra == 'all'
241
245
  Provides-Extra: create
242
- Requires-Dist: climetlab >=0.23.2 ; extra == 'create'
246
+ Requires-Dist: earthkit-data[mars] >=0.9 ; extra == 'create'
247
+ Requires-Dist: earthkit-geo >=0.2 ; extra == 'create'
243
248
  Requires-Dist: earthkit-meteo ; extra == 'create'
244
249
  Requires-Dist: ecmwflibs >=0.6.3 ; extra == 'create'
245
250
  Requires-Dist: entrypoints ; extra == 'create'
246
251
  Requires-Dist: pyproj ; extra == 'create'
247
252
  Provides-Extra: dev
253
+ Requires-Dist: aiohttp ; extra == 'dev'
248
254
  Requires-Dist: boto3 ; extra == 'dev'
249
- Requires-Dist: climetlab >=0.23.2 ; extra == 'dev'
255
+ Requires-Dist: earthkit-data[mars] >=0.9 ; extra == 'dev'
256
+ Requires-Dist: earthkit-geo >=0.2 ; extra == 'dev'
250
257
  Requires-Dist: earthkit-meteo ; extra == 'dev'
251
258
  Requires-Dist: ecmwflibs >=0.6.3 ; extra == 'dev'
252
259
  Requires-Dist: entrypoints ; extra == 'dev'
260
+ Requires-Dist: gcsfs ; extra == 'dev'
261
+ Requires-Dist: kerchunk ; extra == 'dev'
253
262
  Requires-Dist: nbsphinx ; extra == 'dev'
254
263
  Requires-Dist: pandoc ; extra == 'dev'
255
264
  Requires-Dist: pyproj ; extra == 'dev'
256
265
  Requires-Dist: pytest ; extra == 'dev'
257
266
  Requires-Dist: requests ; extra == 'dev'
267
+ Requires-Dist: rstfmt ; extra == 'dev'
258
268
  Requires-Dist: s3fs ; extra == 'dev'
259
269
  Requires-Dist: sphinx ; extra == 'dev'
260
- Requires-Dist: sphinx-argparse ; extra == 'dev'
270
+ Requires-Dist: sphinx-argparse <0.5 ; extra == 'dev'
261
271
  Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
262
272
  Provides-Extra: docs
263
273
  Requires-Dist: nbsphinx ; extra == 'docs'
264
274
  Requires-Dist: pandoc ; extra == 'docs'
275
+ Requires-Dist: rstfmt ; extra == 'docs'
265
276
  Requires-Dist: sphinx ; extra == 'docs'
266
- Requires-Dist: sphinx-argparse ; extra == 'docs'
277
+ Requires-Dist: sphinx-argparse <0.5 ; extra == 'docs'
267
278
  Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
279
+ Provides-Extra: kerchunk
280
+ Requires-Dist: gcsfs ; extra == 'kerchunk'
281
+ Requires-Dist: kerchunk ; extra == 'kerchunk'
282
+ Requires-Dist: s3fs ; extra == 'kerchunk'
268
283
  Provides-Extra: remote
284
+ Requires-Dist: aiohttp ; extra == 'remote'
269
285
  Requires-Dist: boto3 ; extra == 'remote'
270
286
  Requires-Dist: requests ; extra == 'remote'
271
287
  Requires-Dist: s3fs ; extra == 'remote'
@@ -0,0 +1,86 @@
1
+ anemoi/datasets/__init__.py,sha256=Z1gqZWhecLcT0RZQqYBLlz01MUlUZd0kWEj_RavbITM,782
2
+ anemoi/datasets/__main__.py,sha256=cLA2PidDTOUHaDGzd0_E5iioKYNe-PSTv567Y2fuwQk,723
3
+ anemoi/datasets/_version.py,sha256=McNH31cVzymi4jtwoAHwNiyVAdDW8uY0z3IcBioCvQI,411
4
+ anemoi/datasets/grids.py,sha256=3YBMMJodgYhavarXPAlMZHaMtDT9v2IbTmAXZTqf8Qo,8481
5
+ anemoi/datasets/commands/__init__.py,sha256=qAybFZPBBQs0dyx7dZ3X5JsLpE90pwrqt1vSV7cqEIw,706
6
+ anemoi/datasets/commands/compare.py,sha256=svEhyR7pOS1847_RJr1I6vF7ZDPB9AVlcrhy_gxQVms,3263
7
+ anemoi/datasets/commands/copy.py,sha256=SxAeN51owyN5gwtwpt30xhJSIJRlJb9YOUt_4K4m-D8,11780
8
+ anemoi/datasets/commands/create.py,sha256=iAXm7b1zeFEbVyTSqgSdCXwYtgIi8XUN96muv-btC0w,3868
9
+ anemoi/datasets/commands/inspect.py,sha256=rEBzR5LmrPzkNrlGS471Q7Ma9O8Djiml2mxAlxvSl0U,18676
10
+ anemoi/datasets/commands/scan.py,sha256=MaTdne4JrtlqO3LhOUr43DZhZ6O-RZwC7uQ7C6PG7Os,2910
11
+ anemoi/datasets/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ anemoi/datasets/compute/recentre.py,sha256=oIqhENljB9ad-wnMJCJ3P0Xf1v76zQjqYCu1TuySgSI,4919
13
+ anemoi/datasets/create/__init__.py,sha256=hnV_dOm9W4wbOD-dc_xYbZVbr2T03F_d1sWXWvZrCoU,6860
14
+ anemoi/datasets/create/check.py,sha256=TAZOrq8QbS9F5kuR779FAuZPJXA7MXsS_DU1kVotq5Q,5838
15
+ anemoi/datasets/create/chunks.py,sha256=1Inh3sIBn-2sNguErb-BsLns6W_HtDiOJAjIb29lp-U,2442
16
+ anemoi/datasets/create/config.py,sha256=vZ-t50mHgrEnxJoaooWrZKzVGeEQrg__rCOrhi5Q4nU,7122
17
+ anemoi/datasets/create/input.py,sha256=BJiGFR-imZcChdij3fodyz8XSHMUs-__ZfoCeMHuhUo,32472
18
+ anemoi/datasets/create/loaders.py,sha256=tosx8Zms7OAEScw9JxHw6BLq6xZSDCNPYKeqFWP5O3Y,32504
19
+ anemoi/datasets/create/patch.py,sha256=c8cWoqxFzcY9mKREosLjuQCUeJMJL6sbNNkoVvhCZDA,3800
20
+ anemoi/datasets/create/persistent.py,sha256=wfNnNSY8VLO2EyEOQL9umI3sbQqETjJP7bPCiVF6Cko,4291
21
+ anemoi/datasets/create/size.py,sha256=k4COEjs3wud0oKHH5P3n8Fap35xddXs002ucPjpBC88,1040
22
+ anemoi/datasets/create/template.py,sha256=1t8EKGQcZGFUpgQw9a9oEy6ZWlfnow5e0vs1SOelUNc,3148
23
+ anemoi/datasets/create/trace.py,sha256=J-8jDy28wNZa4aSV1KIQMwc1KolcoH3R2xjLl-_eLzM,2183
24
+ anemoi/datasets/create/utils.py,sha256=WRuUbEaP4FRSKzkQpuRaisML84uQAEDqvvACd3pnMVs,2613
25
+ anemoi/datasets/create/writer.py,sha256=G1qAPvdn8anGnpWYhvSSP4u3Km_tHKPdMXm0G4skKSk,1379
26
+ anemoi/datasets/create/zarr.py,sha256=Pb57mZn5s4JTA1o6_satrvG7C8XQhgPFhpTGvlaC_kg,5340
27
+ anemoi/datasets/create/functions/__init__.py,sha256=5HmelLkXDjFOhNhX0Z78aV3ZlW2txiJliJwT4jfLEN4,945
28
+ anemoi/datasets/create/functions/filters/__init__.py,sha256=Xe9G54CKvCI3ji-7k0R5l0WZZdhlydRgawsXuBcX_hg,379
29
+ anemoi/datasets/create/functions/filters/empty.py,sha256=QGj7YEfbo3gwlmwHi1lPATjST0332TH2-uc6_wKENjI,621
30
+ anemoi/datasets/create/functions/filters/noop.py,sha256=ZP434Z1rFlqdgXse_1ZzqC2XAqRQlYlXlVfGLx7rK8g,444
31
+ anemoi/datasets/create/functions/filters/rename.py,sha256=02p6zj2g0Qp866RrXeZG9DD2zRbv0LPqCNIDtbJ9tw4,2369
32
+ anemoi/datasets/create/functions/filters/rotate_winds.py,sha256=E0P5scdX0lwTMdcFDYfBzQ_X_4A6EvnrtFvF55-56Hk,2414
33
+ anemoi/datasets/create/functions/filters/unrotate_winds.py,sha256=hiIwgWi_2lk_ntxsPFMyZ6Ku8_5p91ht36VN_2kHYDA,2414
34
+ anemoi/datasets/create/functions/sources/__init__.py,sha256=83G1-DD2IV4VJP3MVN9512_CN4D3IVDZHUKa2ghVgKo,1246
35
+ anemoi/datasets/create/functions/sources/accumulations.py,sha256=Rzn9ocBR4CHdws4s6GuKiV4IqVQo0rCQLyPQNBsTGXY,12493
36
+ anemoi/datasets/create/functions/sources/constants.py,sha256=9MNxjkXAjtIq7X-T7GgKGVzH-V-FBcTxj0gLLJYoXTI,903
37
+ anemoi/datasets/create/functions/sources/empty.py,sha256=ZrXGs8Y3VrLSV8C8YlJTJcHV7Bmi7xPiUlrq8R0JZQY,485
38
+ anemoi/datasets/create/functions/sources/forcings.py,sha256=tF3EyIs5AGF1Ppvp6dIExONM-kGF-wcnMO1sZc_wDuo,646
39
+ anemoi/datasets/create/functions/sources/grib.py,sha256=MbHSAJAkvUsQT5uo_-mEqzN-0-aOygMwFIds42kXcqg,1750
40
+ anemoi/datasets/create/functions/sources/hindcasts.py,sha256=TRe25E6Xb_fBUsyOnzB_Bm1cTZ4H99viplf1ccWzZv8,3154
41
+ anemoi/datasets/create/functions/sources/mars.py,sha256=Wrxm15-7QUQ_xCe7eqmxHLLkYo5RDM0GKUoeEP8BZS4,6603
42
+ anemoi/datasets/create/functions/sources/netcdf.py,sha256=8uug0oAdGBJIKKws-EflA4ZgjQye_sWCBymUVv1TEW4,532
43
+ anemoi/datasets/create/functions/sources/opendap.py,sha256=0Bs0PytUvI1WZGn2OdmnJuFDGAQypxN8v44nl106QjY,531
44
+ anemoi/datasets/create/functions/sources/recentre.py,sha256=t07LIXG3Hp9gmPkPriILVt86TxubsHyS1EL1lzwgtXY,1810
45
+ anemoi/datasets/create/functions/sources/source.py,sha256=J3O4M0nB1a-67IJuY_aWqDDqyNGXB_uzxVbicFldO4U,1422
46
+ anemoi/datasets/create/functions/sources/tendencies.py,sha256=OIYKdRTabDvxnBXCcffWWBcorVlhZVNj3VkcVuQjIYA,4088
47
+ anemoi/datasets/create/functions/sources/xarray_kerchunk.py,sha256=JsuGjTs5BQdJIPRI8TuUNde680UQkT4GbUhOt6wYy38,1432
48
+ anemoi/datasets/create/functions/sources/xarray_zarr.py,sha256=qI_fEKo28hu_B_qMPx67gigysw8qw5ePMU9P0wbDcIc,531
49
+ anemoi/datasets/create/functions/sources/zenodo.py,sha256=n7_sfZHJVDjVnSwc07muO9kS7TwOM4S8DIlJf5pnDiU,1237
50
+ anemoi/datasets/create/functions/sources/xarray/__init__.py,sha256=cOhyFoD_1e_asJXcYJFy13SIbndWvzXZJnUj39FF5xc,2494
51
+ anemoi/datasets/create/functions/sources/xarray/coordinates.py,sha256=pW3DoFYL55fapNE2KmRYSGid3Y_KstkqsRXrqVCrsc0,5734
52
+ anemoi/datasets/create/functions/sources/xarray/field.py,sha256=JYtwQMB_QzML2x68wZDGOckjy0MbRR7jMgkHLY6hYco,3206
53
+ anemoi/datasets/create/functions/sources/xarray/fieldlist.py,sha256=RfFQZ6FexgeZ3dAKtRojzEJROkJFztMaxOWkNXrX39w,5604
54
+ anemoi/datasets/create/functions/sources/xarray/flavour.py,sha256=7gdnJlMtQ2AtAP7mPGg1O0DBr7IKI73DKwn2_Bg3I1g,9901
55
+ anemoi/datasets/create/functions/sources/xarray/grid.py,sha256=KSlhXj5dHeRQVeZd26CChMyC1iqYsH5XqxPC2VA_YJc,1169
56
+ anemoi/datasets/create/functions/sources/xarray/metadata.py,sha256=tKMY7dYd8e6SGZM8wXH2OovfqSViePrnMVKrezD00cI,4757
57
+ anemoi/datasets/create/functions/sources/xarray/time.py,sha256=w3mQ34KEJIXwp35_eF7I8RN5lDKP4Mp1ujfavSdaTBE,3487
58
+ anemoi/datasets/create/functions/sources/xarray/variable.py,sha256=pb-xPaRFwqV6p6YuGQM8TB2rNgcwJ7x1yDYclyB32ZI,5331
59
+ anemoi/datasets/create/statistics/__init__.py,sha256=U5aoqAgy0MzY_DSIU1Mz2kwBSw_mPRGh8xtA9DI3YA8,12672
60
+ anemoi/datasets/create/statistics/summary.py,sha256=sgmhA24y3VRyjmDUgTnPIqcHSlWBbFA0qynx6gJ9Xw8,3370
61
+ anemoi/datasets/data/__init__.py,sha256=to9L_RZVQ4OgyHUpX6lcvt4GqJdZjBa5HCTaWx1aGKo,1046
62
+ anemoi/datasets/data/concat.py,sha256=AkpyOs16OjW7X0cdyYFQfWSCV6dteXBp-x9WlokO-DI,3550
63
+ anemoi/datasets/data/dataset.py,sha256=hcspK-Fjp-rYdOYZo4qlnL_GUeGpXk4NDINWjEpeSNc,7671
64
+ anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
65
+ anemoi/datasets/data/debug.py,sha256=PcyrjgxaLzeb_vf12pvUtPPVvBRHNm1SimythZvqsP4,6303
66
+ anemoi/datasets/data/ensemble.py,sha256=AsP7Xx0ZHLoZs6a4EC0jtyGYIcOvZvvKXhgNsIvqIN8,1137
67
+ anemoi/datasets/data/forwards.py,sha256=UZOOMUblGS21aaPoFfQa0ONSUaxkqlZQF3KGRhlCr9I,7899
68
+ anemoi/datasets/data/grids.py,sha256=rooOeR6rvjl4U8B4LO3N23fcgxvGE7ZUmhVryk1QS4M,7493
69
+ anemoi/datasets/data/indexing.py,sha256=625m__JG5m_tDMrkz1hB6Vydenwt0oHuyAlc-o3Zwos,4799
70
+ anemoi/datasets/data/join.py,sha256=dtCBbMTicqrRPxfBULi3RwEcQBLhQpIcvCjdN5A3XUU,4892
71
+ anemoi/datasets/data/masked.py,sha256=czAv1ZfZ9q6Wr4RqI2Xj8SEm7yoCgJrwMl-CPDs_wSI,3857
72
+ anemoi/datasets/data/misc.py,sha256=VgmsXgG-cjv1QQ0jclA8gJOiBqmR4QHbGrLhec73Y14,9995
73
+ anemoi/datasets/data/select.py,sha256=Oje3KG1shRawjuBy2-GM8s_Nk_68l-uujvx5SGW0tUM,3781
74
+ anemoi/datasets/data/statistics.py,sha256=lZCcKw9s7ttMBEp6ANyxtbXoZZvchhE7SClq-D4AUR8,1645
75
+ anemoi/datasets/data/stores.py,sha256=LNCJBBQ--3ng4LGvdZ24ZXyOz7i15MvhtArt3_CxM_Q,11934
76
+ anemoi/datasets/data/subset.py,sha256=9urVTXdnwCgqn0_BRYquMi8oiXn4ubAf0n4586hWfKw,3814
77
+ anemoi/datasets/data/unchecked.py,sha256=xhdMg-ToI1UfBWHNsWyn1y2meZWngZtHx-33L0KqKp8,4037
78
+ anemoi/datasets/dates/__init__.py,sha256=BRrwOapeP20tu7hN0m8hG04INp94tigwEfMClLl0ww4,4635
79
+ anemoi/datasets/dates/groups.py,sha256=bYgw02eCLkjkZjJdyLpcFVMqtH8XO22cBdHOfG7tCBc,3471
80
+ anemoi/datasets/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
+ anemoi_datasets-0.4.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
82
+ anemoi_datasets-0.4.2.dist-info/METADATA,sha256=-kRAN83lruvn32FG65PybzhrhoM6ewVOj4T6N0aLon8,16716
83
+ anemoi_datasets-0.4.2.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
84
+ anemoi_datasets-0.4.2.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
85
+ anemoi_datasets-0.4.2.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
86
+ anemoi_datasets-0.4.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.1)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,73 +0,0 @@
1
- anemoi/datasets/__init__.py,sha256=Z1gqZWhecLcT0RZQqYBLlz01MUlUZd0kWEj_RavbITM,782
2
- anemoi/datasets/__main__.py,sha256=cLA2PidDTOUHaDGzd0_E5iioKYNe-PSTv567Y2fuwQk,723
3
- anemoi/datasets/_version.py,sha256=QTWoiVZ8kBQVv_3SZGJVwOxMqBDiTg3_qUjTLFx1eco,413
4
- anemoi/datasets/grids.py,sha256=3YBMMJodgYhavarXPAlMZHaMtDT9v2IbTmAXZTqf8Qo,8481
5
- anemoi/datasets/commands/__init__.py,sha256=qAybFZPBBQs0dyx7dZ3X5JsLpE90pwrqt1vSV7cqEIw,706
6
- anemoi/datasets/commands/compare.py,sha256=p2jQOAC3JhScCLF0GjTCO8goYLWLN8p7vzy_gf5fFcI,1473
7
- anemoi/datasets/commands/copy.py,sha256=SxAeN51owyN5gwtwpt30xhJSIJRlJb9YOUt_4K4m-D8,11780
8
- anemoi/datasets/commands/create.py,sha256=POdOsVDlvRrHFFkI3SNXNgNIbSxkVUUPMoo660x7Ma0,987
9
- anemoi/datasets/commands/inspect.py,sha256=G3fzcgiLaU8jln7GKvgamN7Y06-qC_JnFw2SbNn1_E4,18646
10
- anemoi/datasets/commands/scan.py,sha256=HxsLdCgBMSdEXjlJfPq5M_9LxXHHQIoZ1ZEHO_AoPgA,2881
11
- anemoi/datasets/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- anemoi/datasets/compute/recentre.py,sha256=GRxI6rY_KyXJnZGPxU_UO9YDb-rY_raK70Fiwv1mjhs,4792
13
- anemoi/datasets/create/__init__.py,sha256=Q8uXUdbE-SRYYaZd5cPQ2RVbSoHnGX7-eKdOJHYVhDk,5951
14
- anemoi/datasets/create/check.py,sha256=DLjw-eyaCNxPhoKFsP4Yn_l3SIr57YHdyPR-tE5vx80,5791
15
- anemoi/datasets/create/chunks.py,sha256=YEDcr0K2KiiceSTiBuZzj0TbRbzZ9J546XO7rrrTFQw,2441
16
- anemoi/datasets/create/config.py,sha256=uLIp1WHg3hbqwwMV9EepMwJQsXJAGImkbo0okBeEVd4,7683
17
- anemoi/datasets/create/input.py,sha256=3G7sqdn7R1pLBeeswXwwi8VRAHrBnjq1PdRYHJBe594,27741
18
- anemoi/datasets/create/loaders.py,sha256=-fJ9qKjsCd8Wvnobn34WsQpE9uAjon5M4REgCpW5q_w,30594
19
- anemoi/datasets/create/patch.py,sha256=xjCLhvIQKRqmypsKInRU1CvFh1uoaB3YGSQP1UVZZik,3682
20
- anemoi/datasets/create/persistent.py,sha256=nT8gvhVPdI1H3zW_F7uViGKIlQQ94jCDrMSWTmhQ2_A,4290
21
- anemoi/datasets/create/size.py,sha256=A1w6RkaL0L9IlwIdmYsCTJTecmY_QtvbkGf__jvQle0,1068
22
- anemoi/datasets/create/template.py,sha256=2roItOYJzjGB0bKS28f6EjfpomP0ppT4v6T9fYzjRxQ,4263
23
- anemoi/datasets/create/utils.py,sha256=H1-auNSZUSDW0Aog8CHnIfZlzgKE1XPoi1I40CqquA4,3676
24
- anemoi/datasets/create/writer.py,sha256=G1qAPvdn8anGnpWYhvSSP4u3Km_tHKPdMXm0G4skKSk,1379
25
- anemoi/datasets/create/zarr.py,sha256=hwM_PaYTa_IgFY1VC7qdYTWQ5MXCWWlMrzXsV_eAY0Q,4776
26
- anemoi/datasets/create/functions/__init__.py,sha256=v5RRSAK8LiNdPbxy0c9WxqMx3AMHi42FK-DtFh2h_EU,938
27
- anemoi/datasets/create/functions/filters/__init__.py,sha256=Xe9G54CKvCI3ji-7k0R5l0WZZdhlydRgawsXuBcX_hg,379
28
- anemoi/datasets/create/functions/filters/empty.py,sha256=X7gAZS_jl9X0ztGs3Arn8DkOB6iP4Draq4EAKa4I8hc,617
29
- anemoi/datasets/create/functions/filters/noop.py,sha256=ZP434Z1rFlqdgXse_1ZzqC2XAqRQlYlXlVfGLx7rK8g,444
30
- anemoi/datasets/create/functions/filters/rename.py,sha256=cGoHr-IS-PhYEtZvXDpH03gtfZ9uT7uEZqu9EDxAxN0,2105
31
- anemoi/datasets/create/functions/filters/rotate_winds.py,sha256=fUdh8ILcMzMzckGlvwzdgG-c7w5R9NnWfaijp28Bf5M,4092
32
- anemoi/datasets/create/functions/filters/unrotate_winds.py,sha256=nsa3EHly8ppWd2WH4ROoMczM8WFu5qKaIhO_UFcL9TY,3502
33
- anemoi/datasets/create/functions/sources/__init__.py,sha256=Xe9G54CKvCI3ji-7k0R5l0WZZdhlydRgawsXuBcX_hg,379
34
- anemoi/datasets/create/functions/sources/accumulations.py,sha256=klbp-akoZlOk9jByDFsgPfHRCdfLvpatTLMxDPZaNZc,12943
35
- anemoi/datasets/create/functions/sources/constants.py,sha256=aqquu6HDc8t-zsF9KRFLaj0eV4S0UPZ59BVna8E3bU8,785
36
- anemoi/datasets/create/functions/sources/empty.py,sha256=SBuAfC33imbfcRnFnnOR44y8Q3KSQcqx3juIcXfCa3c,481
37
- anemoi/datasets/create/functions/sources/forcings.py,sha256=EVcdu8puMSW451qj3LKCWWXaSf2LlmF8YXVs8hSMxkU,643
38
- anemoi/datasets/create/functions/sources/grib.py,sha256=YQNuGnlh2EYb2NIHYpzlipwUTmOhrmyQtP3zgk8MAUU,1661
39
- anemoi/datasets/create/functions/sources/hindcasts.py,sha256=0Psnsx2J0cRLMpJuNN-gESm1xJFC1gmQzI8sdnXCoYE,13042
40
- anemoi/datasets/create/functions/sources/mars.py,sha256=JWsbzyoXF95HPk2VWzmX53f_SJwXhKkaJvXtXJMGLig,5285
41
- anemoi/datasets/create/functions/sources/netcdf.py,sha256=kic6PH7SAK3gseXChD38IDXw6Zcg2zhF4SeDXB2LQ8Q,2084
42
- anemoi/datasets/create/functions/sources/opendap.py,sha256=T0CPinscfafrVLaye5ue-PbiCNbcNqf_3m6pphN9rCU,543
43
- anemoi/datasets/create/functions/sources/recentre.py,sha256=t07LIXG3Hp9gmPkPriILVt86TxubsHyS1EL1lzwgtXY,1810
44
- anemoi/datasets/create/functions/sources/source.py,sha256=hPQnV_6UIxFw97uRKcTA8TplcgG1kC8NlFHoEaaLet4,1418
45
- anemoi/datasets/create/functions/sources/tendencies.py,sha256=kwS_GZt8R9kpfs5RrvxPb0Gj-5nDP0sgJgfSRCAwwww,4057
46
- anemoi/datasets/create/statistics/__init__.py,sha256=eXyOdlgXBt6QdVWM7ZVyUWdFMv6iNsFefkjvOVvZAlQ,11010
47
- anemoi/datasets/create/statistics/summary.py,sha256=sgmhA24y3VRyjmDUgTnPIqcHSlWBbFA0qynx6gJ9Xw8,3370
48
- anemoi/datasets/data/__init__.py,sha256=to9L_RZVQ4OgyHUpX6lcvt4GqJdZjBa5HCTaWx1aGKo,1046
49
- anemoi/datasets/data/concat.py,sha256=AkpyOs16OjW7X0cdyYFQfWSCV6dteXBp-x9WlokO-DI,3550
50
- anemoi/datasets/data/dataset.py,sha256=efs1R84G8ayhaWpfP_loi2BJkd1EAEykUPVCjcNfs_Y,7623
51
- anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
52
- anemoi/datasets/data/debug.py,sha256=PcyrjgxaLzeb_vf12pvUtPPVvBRHNm1SimythZvqsP4,6303
53
- anemoi/datasets/data/ensemble.py,sha256=AsP7Xx0ZHLoZs6a4EC0jtyGYIcOvZvvKXhgNsIvqIN8,1137
54
- anemoi/datasets/data/forwards.py,sha256=UZOOMUblGS21aaPoFfQa0ONSUaxkqlZQF3KGRhlCr9I,7899
55
- anemoi/datasets/data/grids.py,sha256=rooOeR6rvjl4U8B4LO3N23fcgxvGE7ZUmhVryk1QS4M,7493
56
- anemoi/datasets/data/indexing.py,sha256=625m__JG5m_tDMrkz1hB6Vydenwt0oHuyAlc-o3Zwos,4799
57
- anemoi/datasets/data/join.py,sha256=dtCBbMTicqrRPxfBULi3RwEcQBLhQpIcvCjdN5A3XUU,4892
58
- anemoi/datasets/data/masked.py,sha256=czAv1ZfZ9q6Wr4RqI2Xj8SEm7yoCgJrwMl-CPDs_wSI,3857
59
- anemoi/datasets/data/misc.py,sha256=tuNsUY06nWh3Raf_RCi8bzCXsMB4t2hOuIkNGV4epj8,10501
60
- anemoi/datasets/data/select.py,sha256=Oje3KG1shRawjuBy2-GM8s_Nk_68l-uujvx5SGW0tUM,3781
61
- anemoi/datasets/data/statistics.py,sha256=lZCcKw9s7ttMBEp6ANyxtbXoZZvchhE7SClq-D4AUR8,1645
62
- anemoi/datasets/data/stores.py,sha256=yy914zMHIYKm5q6mHOqGeK0dC_26VFeqKLXyb7x9NXE,11190
63
- anemoi/datasets/data/subset.py,sha256=9urVTXdnwCgqn0_BRYquMi8oiXn4ubAf0n4586hWfKw,3814
64
- anemoi/datasets/data/unchecked.py,sha256=xhdMg-ToI1UfBWHNsWyn1y2meZWngZtHx-33L0KqKp8,4037
65
- anemoi/datasets/dates/__init__.py,sha256=4ItowfLLh90T8L_JOjtv98lE6M7gAaWt7dV3niUrFvk,4473
66
- anemoi/datasets/dates/groups.py,sha256=iq310Pi7ullglOhcNblv14MmcT8FPgYCD5s45qAfV_s,3383
67
- anemoi/datasets/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- anemoi_datasets-0.3.10.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
69
- anemoi_datasets-0.3.10.dist-info/METADATA,sha256=z0W6UcinpdFzA4kRKjgMqyTQn4vTZu81robfOyVJ_nI,16020
70
- anemoi_datasets-0.3.10.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
71
- anemoi_datasets-0.3.10.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
72
- anemoi_datasets-0.3.10.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
73
- anemoi_datasets-0.3.10.dist-info/RECORD,,