-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcaips.py
More file actions
74 lines (65 loc) · 2.16 KB
/
Copy pathcaips.py
File metadata and controls
74 lines (65 loc) · 2.16 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import os
import libs
import front
from libs import settings_manager as sm, error_handler
def main(*args):
# --------------------------------------------------
# We limit the number of arguments to 2.
# Use flag -debug to debug this program
# or
# Use flag -release to use release version of script
# --------------------------------------------------
if not(len(*args) == 2):
error_handler.raise_error(
msg=f"You should use one flag: -debug, -release or -change_settings"
)
# ----------------------------------
# Check the correctness of the flags
# args[0] include a path of the script
# ----------------------------------
mode = args[0][1]
settings_manager = sm.SettingsManager()
if mode == "-debug":
debug_mode = True
elif mode == "-release":
debug_mode = False
elif mode == "-change_settings":
settings_manager.change_settings(
required_keys={x: str(type(libs.STD_SETTINGS[x]))[8:-2] for x in libs.STD_SETTINGS.keys()},
path="settings"
)
exit(0)
else:
error_handler.raise_error(
msg=f"Error: unexpected flag: {mode}"
)
# -----------------
# Check and load the settings
# -----------------
if os.path.exists("settings"):
settings = settings_manager.load("settings")
else:
error_handler.raise_warning(
msg="Setting file was not found, std_settings were used"
)
settings = libs.STD_SETTINGS
settings_manager.save(settings, "settings")
if not(all(x in settings.keys() for x in libs.STD_SETTINGS.keys())):
os.remove("settings")
error_handler.raise_error(
msg="setting file was corrupted"
)
# -----------------------------------
# log info about setting and init DPG
# -----------------------------------
error_handler.raise_info(
msg="setting file was successfully used, starting GUI..."
) if debug_mode else None
gui = front.GUI(
settings=settings,
debug_mode=debug_mode,
)
gui.run()
if __name__ == '__main__':
import sys
main(sys.argv)