-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata_manager.py
34 lines (25 loc) · 874 Bytes
/
data_manager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import json
import os
from typing import Any
from singleton_metaclass import SingletonMeta
class DataManager(metaclass=SingletonMeta):
DATA_FILE = "crypto_data.json"
def __init__(self) -> None:
self.data = self.load_data()
def load_data(self) -> Any:
if not os.path.exists(self.DATA_FILE):
return None
with open(self.DATA_FILE, "r") as file:
return json.load(file)
def get_value(self, key: str) -> Any:
if self.data and key in self.data:
return self.data[key]
return None
def save_data(self, balance: float, purchases: dict[str, float]) -> None:
data = {
"balance": balance,
"purchases": purchases
}
with open(self.DATA_FILE, "w") as f:
json.dump(data, f)
print("Data saved.")