@@ -425,44 +425,20 @@ def extract_dates(key: Union[str, Sequence[str]]) -> Optional[TimeValues]:
425
425
return None
426
426
values : TimeValues = []
427
427
428
- def push_range (first : str , last : str ):
429
- first_d = parse_date (first )
430
- last_d = parse_date (last )
431
- if first_d == last_d :
432
- # the first and last numbers are the same, just treat it as a singe value
433
- return first_d
434
- if last_d > first_d :
435
- # add the range as an array
436
- return (first_d , last_d )
437
- # the range is inverted, this is an error
438
- raise ValidationFailedException (f"{ key } : the given range is inverted" )
439
-
440
428
for part in parts :
441
- if "-" not in part and ":" not in part :
442
- # YYYYMMDD
443
- values .append (parse_date (part ))
444
- continue
429
+ if part == "*" :
430
+ return ["*" ]
445
431
if ":" in part :
446
432
# YYYY-MM-DD:YYYY-MM-DD
447
- range_part = part .split (":" , 2 )
448
- r = push_range (range_part [0 ], range_part [1 ])
449
- if r is None :
450
- return None
451
- values .append (r )
452
- continue
453
- # YYYY-MM-DD or YYYYMMDD-YYYYMMDD
454
- # split on the dash
455
- range_part = part .split ("-" )
456
- if len (range_part ) == 2 :
457
- # YYYYMMDD-YYYYMMDD
458
- r = push_range (range_part [0 ], range_part [1 ])
433
+ range_part = part .split (":" , 1 )
434
+ r = _verify_range (parse_date (range_part [0 ]), parse_date (range_part [1 ]))
459
435
if r is None :
460
436
return None
461
437
values .append (r )
462
438
continue
463
- # YYYY-MM-DD
464
- values . append ( parse_date ( part ) )
465
- # success, return the list
439
+ # parse other date formats
440
+ r = parse_day_value ( part )
441
+ values . append ( r )
466
442
return values
467
443
468
444
def parse_source_signal_sets () -> List [SourceSignalSet ]:
0 commit comments