-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.py
39 lines (33 loc) · 1008 Bytes
/
settings.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
35
36
37
38
39
from json import dumps, loads
from sys import platform
class Settings:
defaults = {
'email_address': '[email protected]',
'email_password': 'x',
'imap_server': 'imap.gmail.com',
'user_phrase': 'root beer',
'price': 1.0,
'venmo_user': '@AnhadS',
'valve_open_time': 10,
'led_brightness': 0.05
}
file = 'settings.json'
def __init__(self):
#if platform == 'linux':
# self.file = '/home/pi/' + self.file
pass
def _load(self):
try:
with open(self.file, 'r') as f:
return loads(f.read())
except FileNotFoundError:
with open(self.file, 'w') as f:
f.write(dumps(self.defaults))
return self._load()
def __getattr__(self, item):
return self._load()[item]
def __setattr__(self, key, value):
s = self._load()
s[key] = value
with open(self.file, 'w') as f:
f.write(dumps(s))