1
1
import abc
2
2
import os
3
3
import shutil
4
+ import warnings
4
5
from typing import Any , Dict , KeysView , Optional , Union
5
6
6
7
import numpy
@@ -51,11 +52,11 @@ def delete(self, period: Optional[Period] = None) -> None:
51
52
...
52
53
53
54
@abc .abstractmethod
54
- def memory_usage (self ) -> Dict [ str , int ]:
55
+ def known_periods (self ) -> KeysView [ Period ]:
55
56
...
56
57
57
58
@abc .abstractmethod
58
- def known_periods (self ) -> KeysView [ Period ]:
59
+ def memory_usage (self ) -> Dict [ str , int ]:
59
60
...
60
61
61
62
@@ -107,9 +108,13 @@ def memory_usage(self, state: StateType) -> Dict[str, int]:
107
108
"cell_size" : array .itemsize ,
108
109
}
109
110
111
+ def restore (self , state : StateType ) -> StateType :
112
+ ...
113
+
110
114
111
115
class DiskStorage (StorageLike ):
112
116
"""Low-level class responsible for storing and retrieving values on disk."""
117
+
113
118
directory : str
114
119
preserve : bool
115
120
@@ -120,7 +125,7 @@ def __init__(self, directory: str, preserve: bool) -> None:
120
125
if not os .path .isdir (self .directory ):
121
126
os .makedirs (self .directory , exist_ok = True )
122
127
123
- def get (self , state : Dict [ Period , Any ] , key : Period ) -> Any :
128
+ def get (self , state : StateType , key : Period ) -> Any :
124
129
file = state .get (key )
125
130
126
131
if file is None :
@@ -241,20 +246,35 @@ def delete(self, period: Optional[Period] = None) -> None:
241
246
casted : Period = self .cast_period (period , self .is_eternal )
242
247
self .state = self .storage .delete (self .state , casted )
243
248
244
- def memory_usage (self ) -> Dict [str , int ]:
245
- return self .storage .memory_usage (self .state )
246
-
247
249
def known_periods (self ) -> KeysView [Period ]:
248
250
return self .state .keys ()
249
251
250
- # TODO : test
252
+ def memory_usage (self ) -> Dict [str , int ]:
253
+ return self .storage .memory_usage (self .state )
254
+
251
255
def get_known_periods (self ) -> KeysView [Period ]:
252
- raise ValueError ("TODO: add a deprecation warning" )
256
+ message = [
257
+ "The 'Cache.get_known_periods' method has been deprecated since version" ,
258
+ "34.8.0, and will be removed in the future. Henceforth, please prefer" ,
259
+ "Cache.known_periods." ,
260
+ ]
261
+ warnings .warn (" " .join (message ), DeprecationWarning )
262
+ return self .known_periods ()
253
263
254
- # TODO : test
255
264
def get_memory_usage (self ) -> Dict [str , int ]:
256
- raise ValueError ("TODO: add a deprecation warning" )
257
-
258
- # TODO : test
259
- def restore (self , state : StateType ) -> StateType :
260
- raise ValueError ("TODO: add a deprecation warning" )
265
+ message = [
266
+ "The 'Cache.get_memory_usage' method has been deprecated since version" ,
267
+ "34.8.0, and will be removed in the future. Henceforth, please prefer" ,
268
+ "Cache.memory_usage." ,
269
+ ]
270
+ warnings .warn (" " .join (message ), DeprecationWarning )
271
+ return self .memory_usage ()
272
+
273
+ def restore (self ) -> StateType :
274
+ message = [
275
+ "The 'Cache.restore' method has been deprecated since version" ,
276
+ "34.8.0, and will be removed in the future. Henceforth, please prefer" ,
277
+ "DiskStorage.restore." ,
278
+ ]
279
+ warnings .warn (" " .join (message ), DeprecationWarning )
280
+ return self .storage .restore (self .state )
0 commit comments