@@ -32,13 +32,13 @@ def init(self, check_name=False):
32
32
# check path
33
33
_ , ext = os .path .splitext (self .path )
34
34
assert ext != "zarr" , f"Unsupported extension={ ext } "
35
- from .loaders import InitialiseLoader
35
+ from .loaders import InitialiserLoader
36
36
37
37
if self ._path_readable () and not self .overwrite :
38
38
raise Exception (f"{ self .path } already exists. Use overwrite=True to overwrite." )
39
39
40
40
with self ._cache_context ():
41
- obj = InitialiseLoader .from_config (
41
+ obj = InitialiserLoader .from_config (
42
42
path = self .path ,
43
43
config = self .config ,
44
44
statistics_tmp = self .statistics_tmp ,
@@ -59,12 +59,11 @@ def load(self, parts=None):
59
59
loader .load ()
60
60
61
61
def statistics (self , force = False , output = None , start = None , end = None ):
62
- from .loaders import StatisticsLoader
62
+ from .loaders import StatisticsAdder
63
63
64
- loader = StatisticsLoader .from_dataset (
64
+ loader = StatisticsAdder .from_dataset (
65
65
path = self .path ,
66
66
print = self .print ,
67
- force = force ,
68
67
statistics_tmp = self .statistics_tmp ,
69
68
statistics_output = output ,
70
69
recompute = False ,
@@ -74,26 +73,72 @@ def statistics(self, force=False, output=None, start=None, end=None):
74
73
loader .run ()
75
74
76
75
def size (self ):
77
- from .loaders import SizeLoader
76
+ from .loaders import DatasetHandler
77
+ from .size import compute_directory_sizes
78
78
79
- loader = SizeLoader .from_dataset (path = self .path , print = self .print )
80
- loader .add_total_size ()
79
+ metadata = compute_directory_sizes (self .path )
80
+ handle = DatasetHandler .from_dataset (path = self .path , print = self .print )
81
+ handle .update_metadata (** metadata )
81
82
82
83
def cleanup (self ):
83
- from .loaders import CleanupLoader
84
+ from .loaders import DatasetHandlerWithStatistics
84
85
85
- loader = CleanupLoader .from_dataset (
86
- path = self .path ,
87
- print = self .print ,
88
- statistics_tmp = self .statistics_tmp ,
86
+ cleaner = DatasetHandlerWithStatistics .from_dataset (
87
+ path = self .path , print = self .print , statistics_tmp = self .statistics_tmp
89
88
)
90
- loader .run ()
89
+ cleaner .tmp_statistics .delete ()
90
+ cleaner .registry .clean ()
91
91
92
92
def patch (self , ** kwargs ):
93
93
from .patch import apply_patch
94
94
95
95
apply_patch (self .path , ** kwargs )
96
96
97
+ def init_additions (self , delta = [1 , 3 , 6 , 12 ]):
98
+ from .loaders import StatisticsAddition
99
+ from .loaders import TendenciesStatisticsAddition
100
+ from .loaders import TendenciesStatisticsDeltaNotMultipleOfFrequency
101
+
102
+ a = StatisticsAddition .from_dataset (path = self .path , print = self .print )
103
+ a .initialise ()
104
+
105
+ for d in delta :
106
+ try :
107
+ a = TendenciesStatisticsAddition .from_dataset (path = self .path , print = self .print , delta = d )
108
+ a .initialise ()
109
+ except TendenciesStatisticsDeltaNotMultipleOfFrequency :
110
+ self .print (f"Skipping delta={ d } as it is not a multiple of the frequency." )
111
+
112
+ def run_additions (self , parts = None , delta = [1 , 3 , 6 , 12 ]):
113
+ from .loaders import StatisticsAddition
114
+ from .loaders import TendenciesStatisticsAddition
115
+ from .loaders import TendenciesStatisticsDeltaNotMultipleOfFrequency
116
+
117
+ a = StatisticsAddition .from_dataset (path = self .path , print = self .print )
118
+ a .run (parts )
119
+
120
+ for d in delta :
121
+ try :
122
+ a = TendenciesStatisticsAddition .from_dataset (path = self .path , print = self .print , delta = d )
123
+ a .run (parts )
124
+ except TendenciesStatisticsDeltaNotMultipleOfFrequency :
125
+ self .print (f"Skipping delta={ d } as it is not a multiple of the frequency." )
126
+
127
+ def finalise_additions (self , delta = [1 , 3 , 6 , 12 ]):
128
+ from .loaders import StatisticsAddition
129
+ from .loaders import TendenciesStatisticsAddition
130
+ from .loaders import TendenciesStatisticsDeltaNotMultipleOfFrequency
131
+
132
+ a = StatisticsAddition .from_dataset (path = self .path , print = self .print )
133
+ a .finalise ()
134
+
135
+ for d in delta :
136
+ try :
137
+ a = TendenciesStatisticsAddition .from_dataset (path = self .path , print = self .print , delta = d )
138
+ a .finalise ()
139
+ except TendenciesStatisticsDeltaNotMultipleOfFrequency :
140
+ self .print (f"Skipping delta={ d } as it is not a multiple of the frequency." )
141
+
97
142
def finalise (self , ** kwargs ):
98
143
self .statistics (** kwargs )
99
144
self .size ()
@@ -102,8 +147,14 @@ def create(self):
102
147
self .init ()
103
148
self .load ()
104
149
self .finalise ()
150
+ self .additions ()
105
151
self .cleanup ()
106
152
153
+ def additions (self ):
154
+ self .init_additions ()
155
+ self .run_additions ()
156
+ self .finalise_additions ()
157
+
107
158
def _cache_context (self ):
108
159
from .utils import cache_context
109
160
0 commit comments