diff options
Diffstat (limited to 'unit_trace/viz/util.py')
-rw-r--r-- | unit_trace/viz/util.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/unit_trace/viz/util.py b/unit_trace/viz/util.py index 430063b..12d65f4 100644 --- a/unit_trace/viz/util.py +++ b/unit_trace/viz/util.py | |||
@@ -63,6 +63,29 @@ class Sec(TimeUnit): | |||
63 | if time is None: return time | 63 | if time is None: return time |
64 | return time * 1000000000.0 | 64 | return time * 1000000000.0 |
65 | 65 | ||
66 | def parse_time(text): | ||
67 | # perhaps the user didn't put a space between the number and | ||
68 | # the time unit | ||
69 | for i, char in enumerate(text): | ||
70 | if char == ' ': | ||
71 | break | ||
72 | elif char.isalpha(): | ||
73 | text = text[0:i] + ' ' + text[i:] | ||
74 | break | ||
75 | |||
76 | tokens = text.split() | ||
77 | |||
78 | if len(tokens) > 2 or len(tokens) == 0: | ||
79 | raise ValueError | ||
80 | |||
81 | unit = None | ||
82 | if len(tokens) == 2: | ||
83 | unit = parse_unit(tokens[1]) | ||
84 | else: | ||
85 | unit = MilliSec() | ||
86 | |||
87 | return unit.native_to_nsec(float(tokens[0])) | ||
88 | |||
66 | def parse_unit(expr): | 89 | def parse_unit(expr): |
67 | expr = expr.strip().lower() | 90 | expr = expr.strip().lower() |
68 | 91 | ||