forked from nogibjj/IDS-706_rg361_week-5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
103 lines (87 loc) · 3.43 KB
/
main.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
"""
Query Scripts Using SQLite and Python which can be exceuted via CLI
"""
# Import libraries
import sys
import argparse
sys.path.insert(0, "./mylib")
# Import Custom Libraries functions
from mylib.logs import clear_log # noqa: E402
from mylib.data_csv import create_data, delete_data # noqa: E402
from mylib.create import create_db # noqa: E402
from mylib.read import read_db # noqa: E402
from mylib.update import update_db # noqa: E402
from mylib.delete import delete_record # noqa: E402
def handle_arguments(args):
"""To Handle initial arguments"""
parser = argparse.ArgumentParser(description="CRUD Operations on SQLite DB")
parser.add_argument(
"action",
choices=[
"create",
"read",
"update",
"delete",
"create_data",
"delete_data",
"clear_log",
],
)
args = parser.parse_args(args[:1])
print(args.action)
if args.action == "create":
parser.add_argument("db_name", type=str, nargs="?", default="Master.db")
parser.add_argument("dataset_name", type=str, nargs="?", default="Master.csv")
parser.add_argument("auto", type=str, nargs="?", default="T")
elif args.action in ["read", "update", "delete"]:
parser.add_argument("db_name", type=str, nargs="?", default="Master.db")
parser.add_argument("table_name", type=str, nargs="?", default="Master")
parser.add_argument("query", type=str, nargs="?", default=None)
elif args.action == "create_data":
parser.add_argument(
"source",
type=str,
nargs="?",
default="https://github.com/Opensourcefordatascience/Data-sets/raw/master/automotive_data.csv",
)
parser.add_argument("file_name", type=str, nargs="?", default="Master.csv")
parser.add_argument("auto", type=str, nargs="?", default="T")
elif args.action == "delete_data":
parser.add_argument("file_name", type=str, nargs="?", default="Master.csv")
parser.add_argument("auto", type=str, nargs="?", default="T")
elif args.action == "clear_log":
parser.add_argument("log_file", type=str, nargs="?", default="./query_logs.md")
# parse again with ever
return parser.parse_args(sys.argv[1:])
def main():
"""To call other fucntions based on the arguments"""
args = handle_arguments(sys.argv[1:])
if args.action == "create":
print("creating...")
create_db(args.db_name, args.dataset_name, args.auto)
return "created"
elif args.action == "read":
print("processing...")
return read_db(args.db_name, args.table_name, args.query)
elif args.action == "update":
print("processing...")
return update_db(args.db_name, args.table_name, args.query)
elif args.action == "delete":
print("processing...")
return delete_record(args.db_name, args.table_name, args.query)
elif args.action == "create_data":
print("processing...")
create_data(args.source, args.file_name, args.auto)
return "processed"
elif args.action == "delete_data":
print("processing...")
delete_data(args.file_name, args.auto)
return "processed"
elif args.action == "clear_log":
print("processing...")
clear_log(args.log_file)
return "processed"
else:
return f"Unknown Input: {args.action}"
if __name__ == "__main__":
print(main())