Skip to content

Commit 1cad5b7

Browse files
author
Mauko Quiroga
committed
Add deprecation warnings
1 parent e0a8f66 commit 1cad5b7

File tree

2 files changed

+61
-15
lines changed

2 files changed

+61
-15
lines changed

openfisca_core/data_storage.py

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import abc
22
import os
33
import shutil
4+
import warnings
45
from typing import Any, Dict, KeysView, Optional, Union
56

67
import numpy
@@ -51,11 +52,11 @@ def delete(self, period: Optional[Period] = None) -> None:
5152
...
5253

5354
@abc.abstractmethod
54-
def memory_usage(self) -> Dict[str, int]:
55+
def known_periods(self) -> KeysView[Period]:
5556
...
5657

5758
@abc.abstractmethod
58-
def known_periods(self) -> KeysView[Period]:
59+
def memory_usage(self) -> Dict[str, int]:
5960
...
6061

6162

@@ -107,9 +108,13 @@ def memory_usage(self, state: StateType) -> Dict[str, int]:
107108
"cell_size": array.itemsize,
108109
}
109110

111+
def restore(self, state: StateType) -> StateType:
112+
...
113+
110114

111115
class DiskStorage(StorageLike):
112116
"""Low-level class responsible for storing and retrieving values on disk."""
117+
113118
directory: str
114119
preserve: bool
115120

@@ -120,7 +125,7 @@ def __init__(self, directory: str, preserve: bool) -> None:
120125
if not os.path.isdir(self.directory):
121126
os.makedirs(self.directory, exist_ok = True)
122127

123-
def get(self, state: Dict[Period, Any], key: Period) -> Any:
128+
def get(self, state: StateType, key: Period) -> Any:
124129
file = state.get(key)
125130

126131
if file is None:
@@ -241,20 +246,35 @@ def delete(self, period: Optional[Period] = None) -> None:
241246
casted: Period = self.cast_period(period, self.is_eternal)
242247
self.state = self.storage.delete(self.state, casted)
243248

244-
def memory_usage(self) -> Dict[str, int]:
245-
return self.storage.memory_usage(self.state)
246-
247249
def known_periods(self) -> KeysView[Period]:
248250
return self.state.keys()
249251

250-
# TODO : test
252+
def memory_usage(self) -> Dict[str, int]:
253+
return self.storage.memory_usage(self.state)
254+
251255
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()
253263

254-
# TODO : test
255264
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)

tests/core/data_storage/test_cache.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def test_delete_when_is_eternal(cache, storage, period, eternal_period, mocker):
100100
storage.delete.assert_called_once_with(*result)
101101

102102

103-
def test_get_memory_usage(cache, storage, mocker):
103+
def test_memory_usage(cache, storage, mocker):
104104
mocker.patch.object(storage, "memory_usage")
105105
cache.memory_usage()
106106

@@ -115,3 +115,29 @@ def test_known_periods(cache, period, array):
115115
result = cache.known_periods()
116116

117117
assert period in result
118+
119+
120+
def test_get_known_periods(cache, mocker):
121+
mocker.patch.object(cache, "known_periods")
122+
123+
with pytest.warns(DeprecationWarning):
124+
cache.get_known_periods() # act
125+
cache.known_periods.assert_called_once()
126+
127+
128+
def test_get_memory_usage(cache, storage, mocker):
129+
mocker.patch.object(storage, "memory_usage")
130+
131+
with pytest.warns(DeprecationWarning):
132+
cache.get_memory_usage()
133+
result = {}
134+
storage.memory_usage.assert_called_once_with(result)
135+
136+
137+
def test_restore(cache, storage, mocker):
138+
mocker.patch.object(storage, "restore")
139+
140+
with pytest.warns(DeprecationWarning):
141+
cache.restore()
142+
result = {}
143+
storage.restore.assert_called_once_with(result)

0 commit comments

Comments
 (0)