-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathframework1.py
141 lines (124 loc) · 3.74 KB
/
framework1.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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
"""Framework program"""
import otp_program
def print_record_not_found():
print("Record is not found.")
def print_record(field_values):
index = 1
for field_name in field_names:
print(field_name + ": " + end = "")
print(field_values[index])
index += 1
def save_all_records():
with open(data_file_name, 'w') as data_obj:
data_obj.write(str(records))
data_obj.close()
def create_record():
field_values = []
status = 'A'
field_values.append(status)
index = 1
for field_name in field_names:
print("Enter " + field_name + ": ", end = "")
field_value = input()
field_values.append(field_value)
records.append(field_values)
save_all_records()
print("Record is inserted.")
def print_all_records():
for record in records:
if record[0] == 'A':
print_record(record)
def search_record():
print("Enter " + field_names[0] + ": ", end = "")
id = input()
status = False
for record in records:
if record[0] == 'A' and record[1] == str(id):
print("Record details\n")
print_record(record)
status = True
break
if status == False:
print_record_not_found()
def update_record():
print("Enter " + field_names[0].rstrip() + ": ", end = "")
id = input()
is_record_found = False
counter = 1
for record in records:
if record[0] == 'A' and record[1] == str(id):
is_record_found = True
for field_position in updatable_fields_position:
print(str(counter) + ". Update" + field_names[int(field_position.rstrip()) - 1])
counter += 1
choice = int(input("Enter a number: "))
print("Enter " + field_names[int(updatable_fields_position[choice - 1].rstrip()) - 1] +": ", end = "")
record[int(updatable_fields_position[choice - 1].rstrip())] = input()
print(field_names[int(updatable_fields_position[choice - 1].rstrip()) - 1] + "is updated.")
save_all_records()
if is_record_found == False:
print_record_not_found()
def delete_record():
print("Enter " + field_names[0] + ": ", end = "")
id = input()
is_record_found = False
for record in records:
if record[0] == 'A' and record[1] == str(id):
is_record_found = True
record[0] ='D'
print("Record is deleted.")
save_all_records()
if is_record_found == False:
print_record_not_found()
def confirm_to_exit():
print("Do you want to exit? ")
print("Press Y or N" + ": ", end = "")
choice = input()
if choice == 'Y':
exit()
otp_program.validate_otp()
file_not_found_message = "File does not exist or unable to open the file."
menu_file_name = "menu.cfg"
with open(menu_file_name) as menu_file_obj:
try:
menu = menu_file_obj.read()
except FileNotFoundError:
print(file_not_found_message)
else:
menu_file_obj.close()
try:
data_file_name = "data.dat"
with open(data_file_name) as data_obj:
records = data_obj.read()
records = eval(records)
except FileNotFoundError:
with open(data_file_name, 'w') as data_obj:
records = []
data_obj.write(str(records))
data_obj.close()
updatable_fields_position_file = "updatable_fields_position.cfg"
with open(updatable_fields_position_file) as updatable_fields_position_obj:
try:
updatable_fields_position = updatable_fields_position_obj.readlines()
except FileNotFoundError:
print(file_not_found_message)
else:
updatable_fields_position_obj.close()
field_names_file = "fields.cfg"
with open(field_names_file) as field_names_obj:
try:
field_names = field_names_obj.read()
field_names = eval(field_names)
except FileNotFoundError:
print(file_not_found_message)
else:
field_names_obj.close()
functions_list = [create_record, search_record, print_all_records, update_record, delete_record, confirm_to_exit]
while True:
print(menu)
user_choice = input("Enter a number: ")
user_choice = int(user_choice)
if user_choice > 0 and user_choice <= 6:
functions_list[user_choice - 1]()
else:
print("ENTER A VALID NUMBER.")