35
("(yes|true)", lambda v: True),
36
("(no|false)", lambda v: False),
37
("-?\d+", lambda v: int(v.group(0))),
38
("-?\d+\.\d+", lambda v: float(v.group(0))),
39
("(-?\d+) ?([kmgt]?b?)", lambda v: int(v.group(1))),
40
("(-?\d+\.\d+) ?([kmgt]?b?)", lambda v: float(v.group(1))),
41
("(-?\d+) ?([kmgt]?hz)", lambda v: int(v.group(1))),
42
("(-?\d+\.\d+) ?([kmgt]?hz)", lambda v: float(v.group(1))))
35
(r"(yes|true)", lambda v: True),
36
(r"(no|false)", lambda v: False),
37
(r"-?\d+", lambda v: int(v.group(0))),
38
(r"-?\d+\.\d+", lambda v: float(v.group(0))),
39
(r"(-?\d+) ?([kmgt]?b?)", lambda v: int(v.group(1))),
40
(r"(-?\d+\.\d+) ?([kmgt]?b?)", lambda v: float(v.group(1))),
41
(r"(-?\d+) ?([kmgt]?hz)", lambda v: int(v.group(1))),
42
(r"(-?\d+\.\d+) ?([kmgt]?hz)", lambda v: float(v.group(1))))
43
43
TYPE_FORMATS = tuple(
44
(re.compile("^%s$" % pattern, re.IGNORECASE), format)
44
(re.compile(r"^%s$" % pattern, re.IGNORECASE), format)
45
45
for pattern, format in TYPE_FORMATS)
47
47
TYPE_MULTIPLIERS = (
51
("gb?", 1024 * 1024 * 1024),
52
("tb?", 1024 * 1024 * 1024 * 1024),
55
("mhz?", 1024 * 1024),
56
("ghz?", 1024 * 1024 * 1024),
57
("thz?", 1024 * 1024 * 1024 * 1024))
50
(r"mb?", 1024 * 1024),
51
(r"gb?", 1024 * 1024 * 1024),
52
(r"tb?", 1024 * 1024 * 1024 * 1024),
55
(r"mhz?", 1024 * 1024),
56
(r"ghz?", 1024 * 1024 * 1024),
57
(r"thz?", 1024 * 1024 * 1024 * 1024))
58
58
TYPE_MULTIPLIERS = tuple(
59
(re.compile("^%s$" % pattern, re.IGNORECASE), multiplier)
59
(re.compile(r"^%s$" % pattern, re.IGNORECASE), multiplier)
60
60
for pattern, multiplier in TYPE_MULTIPLIERS)
62
62
UTC = pytz.timezone("UTC")