-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path_EditDatabase.py
More file actions
executable file
·75 lines (60 loc) · 2.2 KB
/
_EditDatabase.py
File metadata and controls
executable file
·75 lines (60 loc) · 2.2 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
75
#!/usr/bin/env python3
import driver
import util
CLASSES = [driver.model.Account, driver.model.Location, driver.model.Person]
def func_append():
print("\nWhat to add:")
aClass, index = util.Serialization.pick_from_list(CLASSES)
filepath = getattr(aClass, "FILE", None)
assert(filepath is not None)
init_code = aClass.__init__.__code__
init_vars = init_code.co_varnames[1:init_code.co_argcount]
args = {}
print("\nAdd " + aClass.__name__)
for var in init_vars:
print(var + ": ", end='')
args[var] = input()
new = aClass(**args)
print(new)
util.Serialization.append(item=new, path=filepath)
print("\n\nFILE:")
print('\n'.join([str(x) for x in util.Serialization.load(filepath)]))
def func_remove():
print("\nWhat to remove:")
aClass, index = util.Serialization.pick_from_list(CLASSES)
filepath = getattr(aClass, "FILE", None)
assert(filepath is not None)
print("\nRemove which " + aClass.__name__)
list = util.Serialization.load(filepath)
instance, index = util.Serialization.pick_from_list(list)
list.remove(instance)
util.Serialization.save(path=filepath, list=list)
print("\nRemoved " + str(instance))
print("\n\nFILE:")
print('\n'.join([str(x) for x in util.Serialization.load(filepath)]))
def func_list():
print("\nList what:")
aClass, index = util.Serialization.pick_from_list(CLASSES)
filepath = getattr(aClass, "FILE", None)
assert(filepath is not None)
print("\n" + aClass.__name__ + " on file:")
list, all = util.Serialization.load(filepath, filter_class=aClass)
util.Serialization.print_list(list)
def main():
run = True
while run:
func_map = {"Add": func_append,
"Remove": func_remove,
"List": func_list}
value, index = util.Serialization.pick_from_list(
list(func_map.keys()), sort=False)
func_map[value]()
if not util.Utils.query_yes_no("\nAgain?", "no"):
run = False
# ///////////////////////////
# ////////// MAIN ///////////
# ///////////////////////////
if __name__ == "__main__":
util.Utils.clear_screen("_EditModelInstrances.py")
main()
print("\nDone\n")