-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalidateFormat.py
48 lines (41 loc) · 1.4 KB
/
validateFormat.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
# Libraries
import re
import datetime
import sys
def validateDateTime(dateText):
try:
datetime.datetime.fromisoformat(dateText)
except ValueError:
raise ValueError("Incorrect data format, should be the following attributes: year, month, day, hour, minute, second, microsecond, and tzinfo.")
def validateDate(dateText):
try:
datetime.date.fromisoformat(dateText)
except ValueError:
raise ValueError("Incorrect data format, should be YYYY-MM-DD")
def validateTime(dateText):
try:
datetime.time.fromisoformat(dateText)
except ValueError:
raise ValueError("Incorrect data format, should be attributes: hour, minute, second, microsecond, and tzinfo.")
def validateMail(email):
regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b'
if not re.fullmatch(regex, email):
print("Invalid Email")
def validateURI(uri):
pattern = "^https:\/\/[0-9A-z.]+.[0-9A-z.]+.[a-z]+$"
if not re.match(pattern, uri):
print("Incorret URI")
# Check all formats found in Beacon
def returnFormat(result, type):
if type == "date-time":
validateDateTime(result)
elif type == "date":
validateDate(result)
elif type == "time":
validateTime(result)
elif type == "email":
validateMail(result)
elif type == "uri":
validateURI(result)
else:
sys.exit(f"Format {type} not found")