annotate resfinder/cge/out/valueparsers.py @ 0:55051a9bc58d draft default tip

Uploaded
author dcouvin
date Mon, 10 Jan 2022 20:06:07 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
1 #!/usr/bin/env python3
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
2
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
3 import dateutil.parser
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
4
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
5
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
6 class ValueParsers():
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
7
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
8 def parse_char64(val):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
9 val = str(val)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
10 if(len(val) != 64):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
11 return ("This field expects a string of lenght 64 but the lenght "
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
12 "of the string is {}. The string is: {}"
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
13 .format(len(val), val))
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
14
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
15 def parse_date(val):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
16 try:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
17 # If the date is just a year it might be an integer (ex. 2018)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
18 dateutil.parser.isoparse(str(val))
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
19 except ValueError:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
20 return ("Date format not recognised. Date format must adhere to "
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
21 "the ISO 8601 format (YYYY-MM-DD). Provided value was: {}"
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
22 .format(val))
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
23
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
24 def parse_integer(val):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
25 try:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
26 val = int(float(val))
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
27 except ValueError:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
28 return "Value must be an integer. Value was: {}".format(val)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
29
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
30 def parse_percentage(val):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
31 try:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
32 val = float(val)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
33 except ValueError:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
34 return "Value must be a number. Value was: {}".format(val)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
35 if(val < 0 or val > 100):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
36 return ("Percentage value must be between 0 and 100. The value "
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
37 "was: {}".format(val))
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
38
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
39 def parse_string(val):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
40 try:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
41 val = str(val)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
42 except ValueError:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
43 return "Value could not be converted to a string."
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
44
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
45 def parse_float(val):
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
46 try:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
47 val = float(val)
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
48 except TypeError:
55051a9bc58d Uploaded
dcouvin
parents:
diff changeset
49 return "Value must be a float. Value was: {}".format(val)