[utils] Improve parse_duration
This commit is contained in:
		| @@ -510,6 +510,7 @@ class TestUtil(unittest.TestCase): | ||||
|         self.assertEqual(parse_duration('1 hour 3 minutes'), 3780) | ||||
|         self.assertEqual(parse_duration('87 Min.'), 5220) | ||||
|         self.assertEqual(parse_duration('PT1H0.040S'), 3600.04) | ||||
|         self.assertEqual(parse_duration('PT00H03M30SZ'), 210) | ||||
|  | ||||
|     def test_fix_xml_ampersands(self): | ||||
|         self.assertEqual( | ||||
|   | ||||
| @@ -1773,7 +1773,7 @@ def parse_duration(s): | ||||
|     s = s.strip() | ||||
|  | ||||
|     days, hours, mins, secs, ms = [None] * 5 | ||||
|     m = re.match(r'(?:(?:(?:(?P<days>[0-9]+):)?(?P<hours>[0-9]+):)?(?P<mins>[0-9]+):)?(?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?$', s) | ||||
|     m = re.match(r'(?:(?:(?:(?P<days>[0-9]+):)?(?P<hours>[0-9]+):)?(?P<mins>[0-9]+):)?(?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?Z?$', s) | ||||
|     if m: | ||||
|         days, hours, mins, secs, ms = m.groups() | ||||
|     else: | ||||
| @@ -1790,11 +1790,11 @@ def parse_duration(s): | ||||
|                 )? | ||||
|                 (?: | ||||
|                     (?P<secs>[0-9]+)(?P<ms>\.[0-9]+)?\s*s(?:ec(?:ond)?s?)?\s* | ||||
|                 )?$''', s) | ||||
|                 )?Z?$''', s) | ||||
|         if m: | ||||
|             days, hours, mins, secs, ms = m.groups() | ||||
|         else: | ||||
|             m = re.match(r'(?i)(?:(?P<hours>[0-9.]+)\s*(?:hours?)|(?P<mins>[0-9.]+)\s*(?:mins?\.?|minutes?)\s*)$', s) | ||||
|             m = re.match(r'(?i)(?:(?P<hours>[0-9.]+)\s*(?:hours?)|(?P<mins>[0-9.]+)\s*(?:mins?\.?|minutes?)\s*)Z?$', s) | ||||
|             if m: | ||||
|                 hours, mins = m.groups() | ||||
|             else: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․