utils: lookup_unit_table: Use a stricter regex
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Fri, 18 Mar 2016 18:18:55 +0000 (19:18 +0100)
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Fri, 18 Mar 2016 18:23:06 +0000 (19:23 +0100)
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.

youtube_dl/utils.py

index ef6e7c7cb104a9087637490a7067d2dc92b26f00..bad1c4ea87dd086a34d93f6872d9ce5d9f2209f9 100644 (file)
@@ -1346,7 +1346,7 @@ def format_bytes(bytes):
 def lookup_unit_table(unit_table, s):
     units_re = '|'.join(re.escape(u) for u in unit_table)
     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:
         return None
     num_str = m.group('num').replace(',', '.')