forked from pn11/mdcal
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathargvChecking.py
More file actions
129 lines (112 loc) Β· 3.93 KB
/
argvChecking.py
File metadata and controls
129 lines (112 loc) Β· 3.93 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
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
import mdcal
USAGE = "Usage: python mdcal.py [year] [month]<Start with Sunday><Display week number><Only this month><language>"
INVALID = "Invalid argument."
"""
Sanity check for the arguments
"""
# Helper methods
def check_start_from_sun(argv):
if argv.lower() in ["true", "t", "1", "sun", "sunday", "s", "yes", "y"]:
mdcal.START_FROM_SUN = True
return True
elif argv.lower() in ["false", "f", "0", "mon", "monday", "m", "no", "n"]:
mdcal.START_FROM_SUN = False
return True
else:
return False
def check_true_false(argv):
if argv.lower() in ["true", "t", "1", "yes", "y"]:
return True
elif argv.lower() in ["false", "f", "0", "no", "n"]:
return False
else:
return None
def check_language(argv):
if argv.lower() in ["en", "english", "eng", "e"]:
mdcal.LANG = mdcal.ENGLISH
elif argv.lower() in ["ja", "japanese", "jp", "j"]:
mdcal.LANG = mdcal.JAPANESE
elif argv.lower() in ["cht", "chinese", "cn", "c", "zh", "ch"]:
mdcal.LANG = mdcal.CHINESE
else:
return False
return True
# ############################################# #
# argv2 = y
def check_argv_2(argv):
if argv[1].isdigit():
year = int(argv[1])
if year < 2:
print(INVALID)
else:
for month in range(1, 13):
mdcal.print_calendar(year, month)
else:
print(USAGE)
# argv3 = y, m
def check_argv_3(argv):
if argv[1].isdigit() and argv[2].isdigit():
year, month = [int(a) for a in argv[1:3]]
if month < 1 or month > 12 or year < 2:
print(INVALID+USAGE)
else:
mdcal.print_calendar(year, month)
else:
print(USAGE)
# argv4 = y, m, sun
def check_argv_4(argv):
if argv[1].isdigit() and argv[2].isdigit():
year, month = [int(a) for a in argv[1:3]]
if month < 1 or month > 12 or year < 2:
print(INVALID+USAGE)
else:
if check_start_from_sun(argv[3]):
mdcal.print_calendar(year, month)
else:
print(INVALID+USAGE)
else:
print(USAGE)
# argv5 = y, m, sun, iso
def check_argv_5(argv):
if argv[1].isdigit() and argv[2].isdigit():
year, month = [int(a) for a in argv[1:3]]
if month < 1 or month > 12 or year < 2:
print(INVALID+USAGE)
else:
if check_start_from_sun(argv[3]) and check_true_false(argv[4]) != None:
mdcal.WITH_ISOWEEK = check_true_false(argv[4])
mdcal.print_calendar(year, month)
else:
print(INVALID+USAGE)
else:
print(USAGE)
# argv6 = y, m, sun, iso, only
def check_argv_6(argv):
if argv[1].isdigit() and argv[2].isdigit():
year, month = [int(a) for a in argv[1:3]]
if month < 1 or month > 12 or year < 2:
print(INVALID+USAGE)
else:
if check_start_from_sun(argv[3]) and check_true_false(argv[4]) != None and check_true_false(argv[5]) != None:
mdcal.WITH_ISOWEEK = check_true_false(argv[4])
mdcal.ONLY_THIS_MONTH = check_true_false(argv[5])
mdcal.print_calendar(year, month)
else:
print(INVALID+USAGE)
else:
print(USAGE)
# argv7 = y, m, sun, iso, only, lang
def check_argv_7(argv):
if argv[1].isdigit() and argv[2].isdigit():
year, month = [int(a) for a in argv[1:3]]
if month < 1 or month > 12 or year < 2:
print(INVALID+USAGE)
else:
if check_start_from_sun(argv[3]) and check_true_false(argv[4]) != None and check_true_false(argv[5]) != None and check_language(argv[6]):
mdcal.WITH_ISOWEEK = check_true_false(argv[4])
mdcal.ONLY_THIS_MONTH = check_true_false(argv[5])
mdcal.print_calendar(year, month)
else:
print(INVALID+USAGE)
else:
print(USAGE)