utils: lookup_unit_table: Use a stricter regex

In parse_count multiple units start with the same letter, so it would match different units depending on the order they were sorted when iterating over them.
pull/8805/merge
Jaime Marquínez Ferrándiz 9 years ago
parent 4c3b16d5d1
commit 09fc33198a

@ -1346,7 +1346,7 @@ def format_bytes(bytes):
def lookup_unit_table(unit_table, s): def lookup_unit_table(unit_table, s):
units_re = '|'.join(re.escape(u) for u in unit_table) units_re = '|'.join(re.escape(u) for u in unit_table)
m = re.match( m = re.match(
r'(?P<num>[0-9]+(?:[,.][0-9]*)?)\s*(?P<unit>%s)' % units_re, s) r'(?P<num>[0-9]+(?:[,.][0-9]*)?)\s*(?P<unit>%s)$' % units_re, s)
if not m: if not m:
return None return None
num_str = m.group('num').replace(',', '.') num_str = m.group('num').replace(',', '.')

Loading…
Cancel
Save