anemoi-datasets 0.5.26__py3-none-any.whl → 0.5.28__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 (116) hide show
  1. anemoi/datasets/__init__.py +1 -2
  2. anemoi/datasets/_version.py +16 -3
  3. anemoi/datasets/commands/check.py +1 -1
  4. anemoi/datasets/commands/copy.py +1 -2
  5. anemoi/datasets/commands/create.py +1 -1
  6. anemoi/datasets/commands/inspect.py +27 -35
  7. anemoi/datasets/commands/recipe/__init__.py +93 -0
  8. anemoi/datasets/commands/recipe/format.py +55 -0
  9. anemoi/datasets/commands/recipe/migrate.py +555 -0
  10. anemoi/datasets/commands/validate.py +59 -0
  11. anemoi/datasets/compute/recentre.py +3 -6
  12. anemoi/datasets/create/__init__.py +64 -26
  13. anemoi/datasets/create/check.py +10 -12
  14. anemoi/datasets/create/chunks.py +1 -2
  15. anemoi/datasets/create/config.py +5 -6
  16. anemoi/datasets/create/input/__init__.py +44 -65
  17. anemoi/datasets/create/input/action.py +296 -238
  18. anemoi/datasets/create/input/context/__init__.py +71 -0
  19. anemoi/datasets/create/input/context/field.py +54 -0
  20. anemoi/datasets/create/input/data_sources.py +7 -9
  21. anemoi/datasets/create/input/misc.py +2 -75
  22. anemoi/datasets/create/input/repeated_dates.py +11 -130
  23. anemoi/datasets/{utils → create/input/result}/__init__.py +10 -1
  24. anemoi/datasets/create/input/{result.py → result/field.py} +36 -120
  25. anemoi/datasets/create/input/trace.py +1 -1
  26. anemoi/datasets/create/patch.py +1 -2
  27. anemoi/datasets/create/persistent.py +3 -5
  28. anemoi/datasets/create/size.py +1 -3
  29. anemoi/datasets/create/sources/accumulations.py +120 -145
  30. anemoi/datasets/create/sources/accumulations2.py +20 -53
  31. anemoi/datasets/create/sources/anemoi_dataset.py +46 -42
  32. anemoi/datasets/create/sources/constants.py +39 -40
  33. anemoi/datasets/create/sources/empty.py +22 -19
  34. anemoi/datasets/create/sources/fdb.py +133 -0
  35. anemoi/datasets/create/sources/forcings.py +29 -29
  36. anemoi/datasets/create/sources/grib.py +94 -78
  37. anemoi/datasets/create/sources/grib_index.py +57 -55
  38. anemoi/datasets/create/sources/hindcasts.py +57 -59
  39. anemoi/datasets/create/sources/legacy.py +10 -62
  40. anemoi/datasets/create/sources/mars.py +121 -149
  41. anemoi/datasets/create/sources/netcdf.py +28 -25
  42. anemoi/datasets/create/sources/opendap.py +28 -26
  43. anemoi/datasets/create/sources/patterns.py +4 -6
  44. anemoi/datasets/create/sources/recentre.py +46 -48
  45. anemoi/datasets/create/sources/repeated_dates.py +44 -0
  46. anemoi/datasets/create/sources/source.py +26 -51
  47. anemoi/datasets/create/sources/tendencies.py +68 -98
  48. anemoi/datasets/create/sources/xarray.py +4 -6
  49. anemoi/datasets/create/sources/xarray_support/__init__.py +40 -36
  50. anemoi/datasets/create/sources/xarray_support/coordinates.py +8 -12
  51. anemoi/datasets/create/sources/xarray_support/field.py +20 -16
  52. anemoi/datasets/create/sources/xarray_support/fieldlist.py +11 -15
  53. anemoi/datasets/create/sources/xarray_support/flavour.py +42 -42
  54. anemoi/datasets/create/sources/xarray_support/grid.py +15 -9
  55. anemoi/datasets/create/sources/xarray_support/metadata.py +19 -128
  56. anemoi/datasets/create/sources/xarray_support/patch.py +4 -6
  57. anemoi/datasets/create/sources/xarray_support/time.py +10 -13
  58. anemoi/datasets/create/sources/xarray_support/variable.py +21 -21
  59. anemoi/datasets/create/sources/xarray_zarr.py +28 -25
  60. anemoi/datasets/create/sources/zenodo.py +43 -41
  61. anemoi/datasets/create/statistics/__init__.py +3 -6
  62. anemoi/datasets/create/testing.py +4 -0
  63. anemoi/datasets/create/typing.py +1 -2
  64. anemoi/datasets/create/utils.py +0 -43
  65. anemoi/datasets/create/zarr.py +7 -2
  66. anemoi/datasets/data/__init__.py +15 -6
  67. anemoi/datasets/data/complement.py +7 -12
  68. anemoi/datasets/data/concat.py +5 -8
  69. anemoi/datasets/data/dataset.py +48 -47
  70. anemoi/datasets/data/debug.py +7 -9
  71. anemoi/datasets/data/ensemble.py +4 -6
  72. anemoi/datasets/data/fill_missing.py +7 -10
  73. anemoi/datasets/data/forwards.py +22 -26
  74. anemoi/datasets/data/grids.py +12 -168
  75. anemoi/datasets/data/indexing.py +9 -12
  76. anemoi/datasets/data/interpolate.py +7 -15
  77. anemoi/datasets/data/join.py +8 -12
  78. anemoi/datasets/data/masked.py +6 -11
  79. anemoi/datasets/data/merge.py +5 -9
  80. anemoi/datasets/data/misc.py +41 -45
  81. anemoi/datasets/data/missing.py +11 -16
  82. anemoi/datasets/data/observations/__init__.py +8 -14
  83. anemoi/datasets/data/padded.py +3 -5
  84. anemoi/datasets/data/records/backends/__init__.py +2 -2
  85. anemoi/datasets/data/rescale.py +5 -12
  86. anemoi/datasets/data/rolling_average.py +141 -0
  87. anemoi/datasets/data/select.py +13 -16
  88. anemoi/datasets/data/statistics.py +4 -7
  89. anemoi/datasets/data/stores.py +22 -29
  90. anemoi/datasets/data/subset.py +8 -11
  91. anemoi/datasets/data/unchecked.py +7 -11
  92. anemoi/datasets/data/xy.py +25 -21
  93. anemoi/datasets/dates/__init__.py +15 -18
  94. anemoi/datasets/dates/groups.py +7 -10
  95. anemoi/datasets/dumper.py +76 -0
  96. anemoi/datasets/grids.py +4 -185
  97. anemoi/datasets/schemas/recipe.json +131 -0
  98. anemoi/datasets/testing.py +93 -7
  99. anemoi/datasets/validate.py +598 -0
  100. {anemoi_datasets-0.5.26.dist-info → anemoi_datasets-0.5.28.dist-info}/METADATA +7 -4
  101. anemoi_datasets-0.5.28.dist-info/RECORD +134 -0
  102. anemoi/datasets/create/filter.py +0 -48
  103. anemoi/datasets/create/input/concat.py +0 -164
  104. anemoi/datasets/create/input/context.py +0 -89
  105. anemoi/datasets/create/input/empty.py +0 -54
  106. anemoi/datasets/create/input/filter.py +0 -118
  107. anemoi/datasets/create/input/function.py +0 -233
  108. anemoi/datasets/create/input/join.py +0 -130
  109. anemoi/datasets/create/input/pipe.py +0 -66
  110. anemoi/datasets/create/input/step.py +0 -177
  111. anemoi/datasets/create/input/template.py +0 -162
  112. anemoi_datasets-0.5.26.dist-info/RECORD +0 -131
  113. {anemoi_datasets-0.5.26.dist-info → anemoi_datasets-0.5.28.dist-info}/WHEEL +0 -0
  114. {anemoi_datasets-0.5.26.dist-info → anemoi_datasets-0.5.28.dist-info}/entry_points.txt +0 -0
  115. {anemoi_datasets-0.5.26.dist-info → anemoi_datasets-0.5.28.dist-info}/licenses/LICENSE +0 -0
  116. {anemoi_datasets-0.5.26.dist-info → anemoi_datasets-0.5.28.dist-info}/top_level.txt +0 -0
@@ -1,162 +0,0 @@
1
- # (C) Copyright 2024 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
-
11
- import logging
12
- import re
13
- from abc import ABC
14
- from abc import abstractmethod
15
- from functools import wraps
16
- from typing import Any
17
- from typing import Callable
18
- from typing import List
19
-
20
- from .context import Context
21
-
22
- LOG = logging.getLogger(__name__)
23
-
24
-
25
- def notify_result(method: Callable[..., Any]) -> Callable[..., Any]:
26
- """Decorator to notify the context of the result of the method call.
27
-
28
- Parameters
29
- ----------
30
- method : Callable[..., Any]
31
- The method to wrap.
32
-
33
- Returns
34
- -------
35
- Callable[..., Any]
36
- The wrapped method.
37
- """
38
-
39
- @wraps(method)
40
- def wrapper(self: Any, *args: Any, **kwargs: Any) -> Any:
41
- result: Any = method(self, *args, **kwargs)
42
- self.context.notify_result(self.action_path, result)
43
- return result
44
-
45
- return wrapper
46
-
47
-
48
- class Substitution(ABC):
49
- """Abstract base class for substitutions in templates."""
50
-
51
- @abstractmethod
52
- def resolve(self, context: Context) -> Any:
53
- """Resolve the substitution using the given context.
54
-
55
- Parameters
56
- ----------
57
- context : Context
58
- The context to use for resolution.
59
-
60
- Returns
61
- -------
62
- Any
63
- The resolved value.
64
- """
65
- pass
66
-
67
-
68
- class Reference(Substitution):
69
- """A class to represent a reference to another value in the context."""
70
-
71
- def __init__(self, context: Any, action_path: List[str]) -> None:
72
- """Initialize a Reference instance.
73
-
74
- Parameters
75
- ----------
76
- context : Any
77
- The context in which the reference exists.
78
- action_path : list of str
79
- The action path to resolve.
80
- """
81
- self.context: Any = context
82
- self.action_path: List[str] = action_path
83
-
84
- def resolve(self, context: Context) -> Any:
85
- """Resolve the reference using the given context.
86
-
87
- Parameters
88
- ----------
89
- context : Context
90
- The context to use for resolution.
91
-
92
- Returns
93
- -------
94
- Any
95
- The resolved value.
96
- """
97
- return context.get_result(self.action_path)
98
-
99
-
100
- def resolve(context: Context, x: Any) -> Any:
101
- """Recursively resolve substitutions in the given structure using the context.
102
-
103
- Parameters
104
- ----------
105
- context : Context
106
- The context to use for resolution.
107
- x : Union[tuple, list, dict, Substitution, Any]
108
- The structure to resolve.
109
-
110
- Returns
111
- -------
112
- Any
113
- The resolved structure.
114
- """
115
- if isinstance(x, tuple):
116
- return tuple([resolve(context, y) for y in x])
117
-
118
- if isinstance(x, list):
119
- return [resolve(context, y) for y in x]
120
-
121
- if isinstance(x, dict):
122
- return {k: resolve(context, v) for k, v in x.items()}
123
-
124
- if isinstance(x, Substitution):
125
- return x.resolve(context)
126
-
127
- return x
128
-
129
-
130
- def substitute(context: Context, x: Any) -> Any:
131
- """Recursively substitute references in the given structure using the context.
132
-
133
- Parameters
134
- ----------
135
- context : Context
136
- The context to use for substitution.
137
- x : Union[tuple, list, dict, str, Any]
138
- The structure to substitute.
139
-
140
- Returns
141
- -------
142
- Any
143
- The substituted structure.
144
- """
145
- if isinstance(x, tuple):
146
- return tuple([substitute(context, y) for y in x])
147
-
148
- if isinstance(x, list):
149
- return [substitute(context, y) for y in x]
150
-
151
- if isinstance(x, dict):
152
- return {k: substitute(context, v) for k, v in x.items()}
153
-
154
- if not isinstance(x, str):
155
- return x
156
-
157
- if re.match(r"^\${[\.\w\-]+}$", x):
158
- path = x[2:-1].split(".")
159
- context.will_need_reference(path)
160
- return Reference(context, path)
161
-
162
- return x
@@ -1,131 +0,0 @@
1
- anemoi/datasets/__init__.py,sha256=i_wsAT3ezEYF7o5dpqGrpoG4wmLS-QIBug18uJbSYMs,1065
2
- anemoi/datasets/__main__.py,sha256=ErwAqE3rBc7OaNO2JRsEOhWpB8ldjAt7BFSuRhbnlqQ,936
3
- anemoi/datasets/_version.py,sha256=Yk8LV8Lu80AtsqyYb-tECJmugSSgoanvPUOHGqIfkwA,513
4
- anemoi/datasets/check.py,sha256=hbEMUurl2IjZbp56dBgOfAEsAmmgymgRM5ySaMJSTdk,2755
5
- anemoi/datasets/grids.py,sha256=_i5hgtFvT8Un7etkSTPYnrudLf2otz5iNqSRSl3_oDI,18271
6
- anemoi/datasets/testing.py,sha256=fy_JzavUwLlK_2rtXAT-UGUyo5gjyQW2y826zf334Wg,2645
7
- anemoi/datasets/commands/__init__.py,sha256=O5W3yHZywRoAqmRUioAr3zMCh0hGVV18wZYGvc00ioM,698
8
- anemoi/datasets/commands/check.py,sha256=zEJqE5XkNLsebemg5XIvvZTv2bA6R49zVaka9HRySKU,2655
9
- anemoi/datasets/commands/cleanup.py,sha256=FX082xkHKCSd8d-FUN5zDBSiKA-QYQEeUZ6dCUD-Ob8,1816
10
- anemoi/datasets/commands/compare-lam.py,sha256=F5GYRsKOtdhDePhifgf1TCj5L2T8EVIA2N8AdO-AKKY,14857
11
- anemoi/datasets/commands/compare.py,sha256=jzhjbbt1U-YANTVRBhrwSh2CcYgk4qX2IiTMJtcn82s,3678
12
- anemoi/datasets/commands/copy.py,sha256=hP7BSqkGzK8-n3BA2vlpFcbO3INHmShPZ75Aw_K_g4Y,17302
13
- anemoi/datasets/commands/create.py,sha256=3myohTCLsM6oUuZHIfLaTlDaq-DOcJZRM4Vks007fZg,6543
14
- anemoi/datasets/commands/finalise-additions.py,sha256=GXjGAJILFORXXkE_wfgnk5w4jYug18Q2TpwVah5Ctto,1982
15
- anemoi/datasets/commands/finalise.py,sha256=cZIiqpJsaN1rqBKOStOA6pJh5n1tisrMFcGGT2UGpKY,1706
16
- anemoi/datasets/commands/grib-index.py,sha256=0_cISIRw0Iwf6NX5VasxlGbPWX1p7xDMciLglS9G1Yg,3075
17
- anemoi/datasets/commands/init-additions.py,sha256=wIsintXpf3aG2VhuBJJYI8ZZGXLrum7sM05IX8ImRXk,1928
18
- anemoi/datasets/commands/init.py,sha256=5IKyJ_hJA4lLIbpT88XtcGzXccHLSGwSoqVSvVJGxPg,2852
19
- anemoi/datasets/commands/inspect.py,sha256=kaDHXP8Cv8PsGqEXUF5Yruf5OQHwOIkjCS0SNxMs6eg,26578
20
- anemoi/datasets/commands/load-additions.py,sha256=bg0JYaPPXhGXKL-p0nngAeI2rPhSTFpZ7bY04mKuSKk,2001
21
- anemoi/datasets/commands/load.py,sha256=FuKdRYuNlnv_p5ScwPKCiVDEVc9cA1Khvbd-T7N4SvU,2031
22
- anemoi/datasets/commands/patch.py,sha256=Q9FDabWxlvK1QaeH4D9zhNpoSGB4h7EliWgcV76iFBs,1599
23
- anemoi/datasets/commands/publish.py,sha256=7YusLCWYdVLuexZzvyh8ztYoBOBzVmve3uJs-XKeMAE,1469
24
- anemoi/datasets/commands/scan.py,sha256=6Uoyd7WkM4ypoqmZargXIG50uRKzHE3AlvkAr7sCBy4,4262
25
- anemoi/datasets/compute/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
26
- anemoi/datasets/compute/recentre.py,sha256=kwxDB8qpgOCFZSQJvjAmVcpH5zWsfk5FSoIureqNHd4,5915
27
- anemoi/datasets/create/__init__.py,sha256=LAa-e6TnH5eHmHEpkMk9_a24wlpTFEKWllPgSl-mcW8,50855
28
- anemoi/datasets/create/check.py,sha256=xqobSfh3655ZoKs-CjHWBiEpIfrHU_vkqwiIsAOrqvs,10795
29
- anemoi/datasets/create/chunks.py,sha256=kZV3dWoCuv3Bttc0wysJB7OPbXsD99exKyrrj4HGFwQ,4025
30
- anemoi/datasets/create/config.py,sha256=xrSlaY2p5zssfLIt8A1CP9WwJReSXVWBMQM7bT1aFbU,13448
31
- anemoi/datasets/create/filter.py,sha256=LadfjHmDUc01eadLKAX8aeFXXZVfZ7BCHbxhRzEsYn4,1380
32
- anemoi/datasets/create/patch.py,sha256=u4CeIuo3Ncrbhu9CTyaUbcmaJfBfMrrFVpgEikM9pE4,5398
33
- anemoi/datasets/create/persistent.py,sha256=XkEBjymXrR-y9KPVLtz9xdd0IB14wSEhcANUhUUzGVw,7832
34
- anemoi/datasets/create/size.py,sha256=nHjX1manYhQIrcQWDCgBBBiAVDbfoMAG6ybVjytSaKI,1454
35
- anemoi/datasets/create/source.py,sha256=xoV8uH_y6aBSE4_PWuy5w7Q7cX-tGm8e-2xC9flSAT4,1336
36
- anemoi/datasets/create/typing.py,sha256=Hs2uDG8ZVtQ-Q-5I9-W0Pik2p1hZH5-JPVjpJXRXP7M,484
37
- anemoi/datasets/create/utils.py,sha256=94JKPYcNSurA62yFAytW5dUFVz-r-fdwiPOkmu121pM,5572
38
- anemoi/datasets/create/writer.py,sha256=nZBJvYZ63g_c9FfL65bAeG10Y6bX2R7CgtZvY0kW3fI,2203
39
- anemoi/datasets/create/zarr.py,sha256=N9PGGD-dYvcc97BZjLVWm5XQeYTiK9gwvhtreRiQzBI,9437
40
- anemoi/datasets/create/input/__init__.py,sha256=vsB_whJG87IWnjaGgIMCCg8v9pfuC_vQk8BB3u5j33o,2886
41
- anemoi/datasets/create/input/action.py,sha256=pc_2RPbs3laF8vBhNkbFdib40kTcF5QW6QL0p8VLNzA,7778
42
- anemoi/datasets/create/input/concat.py,sha256=bU8SWfBVfK8bRAmmN4UO9zpIGxwQvRUk9_vwrKPOTE4,5355
43
- anemoi/datasets/create/input/context.py,sha256=qrLccxMe9UkyQxsNuR6JSK7oLzZq21dt38AxZ9kYzsY,2714
44
- anemoi/datasets/create/input/data_sources.py,sha256=4xUUShM0pCXIZVPJW_cSNMUwCO_wLx996MLFpTLChm0,4385
45
- anemoi/datasets/create/input/empty.py,sha256=tOxe3LykoGkEAFuf4yggMpAcvFzMw3E6hCz5pyeQ8Q0,1534
46
- anemoi/datasets/create/input/filter.py,sha256=R19IUwTdWBueeTKAMxyYKiP-JXOFJQu2vUoEiPYK0rA,3313
47
- anemoi/datasets/create/input/function.py,sha256=Q15IVNJqHm_9Pf0pWnDedyJcRoz0fxbKt8d1f2IMqQA,6916
48
- anemoi/datasets/create/input/join.py,sha256=RAdgE4lVcC71_J47dNa1weJuWdTXSQIvo06G2J6dfdg,4016
49
- anemoi/datasets/create/input/misc.py,sha256=FVaH_ym52RZI_fnLSMM_dKTQmWTrInucP780E3gGqvw,3357
50
- anemoi/datasets/create/input/pipe.py,sha256=-tCz161IwXoI8pl1hilA9T_j5eHSr-sgbijFLp9HHNc,2083
51
- anemoi/datasets/create/input/repeated_dates.py,sha256=HaPzDCNHQBY1VVp6gvd3drwjWjYpSBh-GLgHqBRJTz0,12012
52
- anemoi/datasets/create/input/result.py,sha256=BmeZVN63ZnUkiOwT0mkE4DdB06OmVwdRZkiV4ACPNrI,24309
53
- anemoi/datasets/create/input/step.py,sha256=NkmJ4cD9sURy_hwaeQN8kkdOfVtIW6xcxIClEWWdSvY,5376
54
- anemoi/datasets/create/input/template.py,sha256=Iycw9VmfA0WEIDP_Of8bp-8HsV0EUfwbnm0WjxiO4GA,4092
55
- anemoi/datasets/create/input/trace.py,sha256=dakPYMmwKq6s17Scww1CN-xYBD3btJTGeDknOhAcnEM,3320
56
- anemoi/datasets/create/sources/__init__.py,sha256=XNiiGaC6NbxnGfl6glPw-gTJASi3vsGKwVlfkMqYGk4,950
57
- anemoi/datasets/create/sources/accumulations.py,sha256=vo2f7cejjkKneZ-9UVRJ_jwNiJJ1XNabxP57UHJZAZs,32572
58
- anemoi/datasets/create/sources/accumulations2.py,sha256=UwKJOtfbJGNTceVpLtHC8dJhROJbxzjF3V_HR7wTwrk,20661
59
- anemoi/datasets/create/sources/anemoi_dataset.py,sha256=2xJJTmKlv87F_2ECMKeehaeW7_oWLlDcLt8C_Prp1RI,2017
60
- anemoi/datasets/create/sources/constants.py,sha256=5O6d9tEuAmVjl5vNkNfmkaAjKXFlw1UjeueTsF1GZCI,1528
61
- anemoi/datasets/create/sources/eccc_fstd.py,sha256=8HK38f444HcWMvBhooP0XqTfMXYoCbN_8G9RI_Ne5rc,659
62
- anemoi/datasets/create/sources/empty.py,sha256=5mVIVRUwnBfE3zp-bvNA_imXCSpyds-4mewcI8HXAiY,1020
63
- anemoi/datasets/create/sources/forcings.py,sha256=PmcAd-nFZzILRxfvrptb45VLD9Nd2vjy0xeToeoKl1Y,1222
64
- anemoi/datasets/create/sources/grib.py,sha256=_vTqP1yTyFJfOFP-_8m3aZnJ7F1aaM1UWgxRF9VDOP0,4270
65
- anemoi/datasets/create/sources/grib_index.py,sha256=Pnm0RLga9lpD4MqVaZr7IqXMBlw1DtTIWZRfz7fq30Q,19026
66
- anemoi/datasets/create/sources/hindcasts.py,sha256=_4880rgd4AsRxlDXVi6dkh8mlKXrz2i27btVlmlMFjY,2611
67
- anemoi/datasets/create/sources/legacy.py,sha256=RJce-9TwmUUCFbgC8A3Dp61nSBfB8_lWti8WNoOMIcU,2652
68
- anemoi/datasets/create/sources/mars.py,sha256=tesQz7Ne6SLBChE_cNJU6Sxr6e0LXFlUKQ8gCdRiCMw,13155
69
- anemoi/datasets/create/sources/netcdf.py,sha256=UnehMwEMJquqaOeU33zNyFUYfzqQx4Rg-GRmUcgMcbE,1222
70
- anemoi/datasets/create/sources/opendap.py,sha256=sTm0wXE_BHk9q8vaNNE_Y6BhTOmhxPweS8RTjP4HYjU,1254
71
- anemoi/datasets/create/sources/patterns.py,sha256=siTExxLY5HWdIgOsufyQuG7Qvkt38oElZOFwz9h0JFg,2283
72
- anemoi/datasets/create/sources/planetary_computer.py,sha256=Erk6fKJt63gj_pgbklBWhAKjzjtAfq_DRizMfWdqPPU,1578
73
- anemoi/datasets/create/sources/recentre.py,sha256=OtobkmaWzGD3UacjXfK_Oerjf7EnQi85LIs9xBYJK7A,4044
74
- anemoi/datasets/create/sources/source.py,sha256=x8k---A2_3AglYqNsXLlv1ti4f9n_gVKmmqtyQGLPTs,2117
75
- anemoi/datasets/create/sources/tendencies.py,sha256=saHGYl-MnvBEeZX-n1zgT8lehA7LC2G5dMNnxklI9-U,5590
76
- anemoi/datasets/create/sources/xarray.py,sha256=zBuWCmBidEY3Wz6DDRZStBcrkw646AXpIM8B1nHV55c,2555
77
- anemoi/datasets/create/sources/xarray_kerchunk.py,sha256=vdFaFzze8VLjYUgIX8Lc39ELvwmgfT3ioyxBHAt4nrs,1136
78
- anemoi/datasets/create/sources/xarray_zarr.py,sha256=5eQOpB3sBD49RarTME81s0ynIVkha2pP0ymA4TNnLYY,1201
79
- anemoi/datasets/create/sources/zenodo.py,sha256=KEetFEk5GzGFpoos8rbBQBTa2XElWG7oTYjfZXgbu0Q,2065
80
- anemoi/datasets/create/sources/xarray_support/README.md,sha256=56olM9Jh0vI0_bU9GI-IqbBcz4DZXWONqvdzN_VeAFE,78
81
- anemoi/datasets/create/sources/xarray_support/__init__.py,sha256=X-Th4__2fVciyLqCUQU2mwYt4dph3l1_VH837iDeuqI,4714
82
- anemoi/datasets/create/sources/xarray_support/coordinates.py,sha256=dAwkIChEwhy7XY64BsXeRQOpcShQRufhsJROoUk68gY,11179
83
- anemoi/datasets/create/sources/xarray_support/field.py,sha256=1iLAMPpsYxzGuB4pqXA0TwEJQCCZDPFiiojfzFjnkzU,6280
84
- anemoi/datasets/create/sources/xarray_support/fieldlist.py,sha256=UyUljq2Ax-PpQ-bvG4Dsi_lkZucuPgCy120EadDeUMU,8271
85
- anemoi/datasets/create/sources/xarray_support/flavour.py,sha256=oA5pYwe9HUHwgH09PgTYhJFSMmsOfRVsIEQvlVfCfM4,33366
86
- anemoi/datasets/create/sources/xarray_support/grid.py,sha256=lsE8bQwBH9pflzvsJ89Z6ExYPdHJd54xorMNzL2gTd0,6181
87
- anemoi/datasets/create/sources/xarray_support/metadata.py,sha256=OJ35Y4m9BpPmnrabD9qiuHUEfejc6YfTIWPm8prHokk,10876
88
- anemoi/datasets/create/sources/xarray_support/patch.py,sha256=8NHSDO2lLcRPBvmuPyQ5foAkYHFVFNWJhMVeXNs6x7o,3027
89
- anemoi/datasets/create/sources/xarray_support/time.py,sha256=Y_lZTUOXWJH4jcSgyL4WTDwrtPXi7MUiumaXfRoqqAY,12486
90
- anemoi/datasets/create/sources/xarray_support/variable.py,sha256=zNXTNh58BLg9atnZJauto9z0e_gNRjreo4eUntqlJP8,9245
91
- anemoi/datasets/create/statistics/__init__.py,sha256=_BuPcuUrwQAEcMQVds93EV9M5ys2ao8jCWKV4OVoSSA,18291
92
- anemoi/datasets/create/statistics/summary.py,sha256=JdtChTmsr1Y958_nka36HltTbeZkawuGbprbfZD7Ux8,4790
93
- anemoi/datasets/data/__init__.py,sha256=wzhk_7VQImge12Xkg99xuiFOC7DAjBW1mu446y0Iq60,3057
94
- anemoi/datasets/data/complement.py,sha256=Sbn6ajVLcLOW_1xqPNCCteV7Et_1p2CLSZkQFT_oyYI,11991
95
- anemoi/datasets/data/concat.py,sha256=eY5rujcdal00BJCv00mKSlxp0FKVvPQd7uqrBnL9fj4,8996
96
- anemoi/datasets/data/dataset.py,sha256=it02CVYdzU9QXSkU9jVR9BTWv-JDMlnH0ujyIgf40pM,32326
97
- anemoi/datasets/data/debug.css,sha256=z2X_ZDSnZ9C3pyZPWnQiEyAxuMxUaxJxET4oaCImTAQ,211
98
- anemoi/datasets/data/debug.py,sha256=hVa1jAQ-TK7CoKJNyyUC0eZPobFG-FpkVXEaO_3B-MA,10796
99
- anemoi/datasets/data/ensemble.py,sha256=-36kMjuT2y5jUeSnjCRTCyE4um6DLAADBVSKSTkHZZg,5352
100
- anemoi/datasets/data/fill_missing.py,sha256=ceONpzD-PWLMTtG4WOw6USw-Cd1O55VYzfpAiEsROK8,8797
101
- anemoi/datasets/data/forwards.py,sha256=pFGTBgUfaUvOtcBQVweDVNpmONYc-apk-Rq9U2lpVvc,20117
102
- anemoi/datasets/data/grids.py,sha256=8fZSitKTStBT-fsQWwTXiTgyrmYjh_jQ5dJi1U3lRz0,22056
103
- anemoi/datasets/data/indexing.py,sha256=DasVd1j0FB0iTw6eqvhiLka4ztf2zJcI5NgWxmtxzCw,7526
104
- anemoi/datasets/data/interpolate.py,sha256=-kSYwdjKH7zJtfITdbqdH6KyOFGVZDyHg4TaFk9shEI,9279
105
- anemoi/datasets/data/join.py,sha256=ZEHOsCecKBkKKH-vki404Sm7r7cV368ECO7PXPpay3s,9212
106
- anemoi/datasets/data/masked.py,sha256=giOvHLcGbLf6mZPqZjAxQd1kvydmkepDFh2EqchXLTQ,10213
107
- anemoi/datasets/data/merge.py,sha256=SvQhJHf-C-Kn7hEjFqomienk-epPPjMtoccRNCJpMtw,8733
108
- anemoi/datasets/data/misc.py,sha256=x9E8qDqd7Z7blkva6Giu7RtzF0PtKeL8YSzpxvhPw1k,22899
109
- anemoi/datasets/data/missing.py,sha256=ogfVDponbs0bGHMxps32Fj_fq4gT26R70yEMco5gdK8,12593
110
- anemoi/datasets/data/padded.py,sha256=BYTLDNRatjEB2lri9IlLcMsFgxnQT2F5rZ0XxExjE7c,7881
111
- anemoi/datasets/data/rescale.py,sha256=nGfJ5tWCncMJ7NMXkLbmt6z0ELrD6FxpbjJreQ3W91g,7004
112
- anemoi/datasets/data/select.py,sha256=Xs6uOzJL0CoOGeWA_E5_ukr8Jav2kXbZ41vhk7Vr8PE,8277
113
- anemoi/datasets/data/statistics.py,sha256=Hi9tPtNPBFaD0jcBa5vxoZp1radEMS-1RXwA3RbWrK8,3173
114
- anemoi/datasets/data/stores.py,sha256=gQicl-VcvmxgWf8qtSpnCSwvatF8xv1lV_WFQRMpPWc,18282
115
- anemoi/datasets/data/subset.py,sha256=hEYRSc1QOdtJJpIWy85ZuZ9a6UNk-Eo9vAYsgRg2UPs,8950
116
- anemoi/datasets/data/unchecked.py,sha256=c7YIa9gFxOOjqyyOqrhGaFWQ1pN7_0W1Q8ABUTkI8e8,7311
117
- anemoi/datasets/data/xy.py,sha256=-jWzYismrK3eI3YCKIBpU1BCmraRncmVn0_2IUY--lk,7579
118
- anemoi/datasets/data/observations/__init__.py,sha256=zpYL-WEws9FZ6QwAfj8kcZXL0d7uZuSrMTxZ6wY3npg,11260
119
- anemoi/datasets/data/observations/legacy_obs_dataset.py,sha256=6Aj32XWmNmCsd0azhuB6aDcpDaJ7lRdgJ9KWlU9fXxs,7342
120
- anemoi/datasets/data/observations/multi.py,sha256=nDeN99LRNVyjUCNTFCL3R7iAQNsf1tSen-fSw9-VsiY,2184
121
- anemoi/datasets/data/records/__init__.py,sha256=lWJBukNArbBBdcfG8bh5MzJoSOjk5Fi8zcwHWo5a0I8,12405
122
- anemoi/datasets/data/records/backends/__init__.py,sha256=KAbzMflpo9ZFAComabAdYTNgbtr1mrrSFBQaUlQoLfs,5247
123
- anemoi/datasets/dates/__init__.py,sha256=pEArHDQ7w5E0WC8Vvf9ypyKSdm6gnhoN9TmooITB7C4,13617
124
- anemoi/datasets/dates/groups.py,sha256=IOveL6IyTXZwEdXZEnRAnpu9pINY95VN7LzcpLfJ09E,10105
125
- anemoi/datasets/utils/__init__.py,sha256=hCW0QcLHJmE-C1r38P27_ZOvCLNewex5iQEtZqx2ckI,393
126
- anemoi_datasets-0.5.26.dist-info/licenses/LICENSE,sha256=8HznKF1Vi2IvfLsKNE5A2iVyiri3pRjRPvPC9kxs6qk,11354
127
- anemoi_datasets-0.5.26.dist-info/METADATA,sha256=o_5TIgYbXJxVZraRVkbPKqF6hRsI2Kkgmb4yL8I9lsk,16153
128
- anemoi_datasets-0.5.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
129
- anemoi_datasets-0.5.26.dist-info/entry_points.txt,sha256=yR-o-4uiPEA_GLBL81SkMYnUoxq3CAV3hHulQiRtGG0,66
130
- anemoi_datasets-0.5.26.dist-info/top_level.txt,sha256=DYn8VPs-fNwr7fNH9XIBqeXIwiYYd2E2k5-dUFFqUz0,7
131
- anemoi_datasets-0.5.26.dist-info/RECORD,,