-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__main__.py
56 lines (45 loc) · 1.96 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
from toolkit import check_arguments, main_arguments, UnreconizedParmException
from uploader import Uploader
import sys
required_args = ['website', 'frequency', 'name', 'snapshotdate', 'target']
website_args = ['booking', 'campings', 'maeva', 'edomizil']
frequency_args = ['1','3','7']
def validate_args(args:object) -> None:
global required_args
args = vars(args)
arg_params = list(args.keys())
arg_params.sort()
required_args.sort()
if arg_params != required_args:
message = f"{list(set(args.keys()).difference(required_args))} arguments are missing or incorrect"
raise UnreconizedParmException(message)
for required_arg in required_args:
arg = args[required_arg].lower()
match(required_arg):
case 'website':
if arg not in website_args:
raise UnreconizedParmException(f"website should be in {website_args}")
case 'frequency':
if arg not in frequency_args:
raise UnreconizedParmException(f"frequency should be in {frequency_args} not {arg}")
case 'name':
if arg == '':
raise UnreconizedParmException(f"name should be define")
case 'snapshotdate':
if arg == '':
raise UnreconizedParmException(f"snapshotdate should be define")
if __name__=="__main__":
args = main_arguments()
validate_args(args)
miss_args = check_arguments(args, ['-w', '-f', '-n', '-d'])
if not len(miss_args) :
u = Uploader(
website=args.website,
freq=args.frequency,
filename=args.name,
target=args.target,
date_snapshot=args.snapshotdate
)
u.create_log()
u.load_history()
u.upload()