diff options
Diffstat (limited to 'module/plugins/internal/utils.py')
-rw-r--r-- | module/plugins/internal/utils.py | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/module/plugins/internal/utils.py b/module/plugins/internal/utils.py index f7244f2df..651ccce78 100644 --- a/module/plugins/internal/utils.py +++ b/module/plugins/internal/utils.py @@ -77,27 +77,6 @@ def uniqify(seq): return [x for x in seq if x not in seen and not seen_add(x)] -def parse_size(value, unit=""): #: returns bytes - m = re.match(r"([\d.,]+)\s*([\w^_]*)", value.lower()) - - if m is None: - return 0 - - traffic = float(m.group(1).replace(',', '.')) - unit = (unit.strip().lower() or m.group(2) or "byte")[0] - - if unit is "b": - return int(traffic) - - sizes = ['b', 'k', 'm', 'g', 't', 'p', 'e'] - sizemap = dict((u, i * 10) for i, u in enumerate(sizes)) - - increment = sizemap[unit] - integer, decimal = map(int, ("%.3f" % traffic).split('.')) - - return (integer << increment) + (decimal << increment - 10) - - def fixup(m): text = m.group(0) if text[:2] == "&#": @@ -258,6 +237,27 @@ def parse_name(value, safechar=True): return fixname(name) if safechar else name +def parse_size(value, unit=""): #: returns bytes + m = re.match(r"([\d.,]+)\s*([\w^_]*)", value.lower()) + + if m is None: + return 0 + + traffic = float(m.group(1).replace(',', '.')) + unit = (unit.strip().lower() or m.group(2) or "byte")[0] + + if unit is "b": + return int(traffic) + + sizes = ['b', 'k', 'm', 'g', 't', 'p', 'e'] + sizemap = dict((u, i * 10) for i, u in enumerate(sizes)) + + increment = sizemap[unit] + integer, decimal = map(int, ("%.3f" % traffic).split('.')) + + return (integer << increment) + (decimal << increment - 10) + + def str2int(value): try: return int(value) |