|
7 | 7 |
|
8 | 8 |
|
9 | 9 | from ._exceptions import ValidationFailedException
|
10 |
| -from .utils import days_in_range, weeks_in_range, guess_time_value_is_day, guess_time_value_is_week, TimeValues, time_values_to_ranges |
| 10 | +from .utils import days_in_range, weeks_in_range, guess_time_value_is_day, guess_time_value_is_week, TimeValues, days_to_ranges, weeks_to_ranges |
11 | 11 |
|
12 | 12 |
|
13 | 13 | def _parse_common_multi_arg(key: str) -> List[Tuple[str, Union[bool, Sequence[str]]]]:
|
@@ -129,6 +129,16 @@ def count(self) -> float:
|
129 | 129 | return sum(1 if isinstance(v, int) else weeks_in_range(v) for v in self.time_values)
|
130 | 130 | return sum(1 if isinstance(v, int) else days_in_range(v) for v in self.time_values)
|
131 | 131 |
|
| 132 | + def to_ranges(self): |
| 133 | + """ |
| 134 | + returns this pair with times converted to ranges |
| 135 | + """ |
| 136 | + if isinstance(self.time_values, bool): |
| 137 | + return TimePair(self.time_type, self.time_values) |
| 138 | + if self.time_type == 'week': |
| 139 | + return TimePair(self.time_type, weeks_to_ranges(self.time_values)) |
| 140 | + return TimePair(self.time_type, days_to_ranges(self.time_values)) |
| 141 | + |
132 | 142 |
|
133 | 143 | def _verify_range(start: int, end: int) -> Union[int, Tuple[int, int]]:
|
134 | 144 | if start == end:
|
@@ -226,7 +236,7 @@ def parse_time_arg(key: str = "time") -> Optional[TimePair]:
|
226 | 236 | return time_pair
|
227 | 237 | else:
|
228 | 238 | merged.extend(time_pair.time_values)
|
229 |
| - return TimePair(time_pairs[0].time_type, time_values_to_ranges(merged)) |
| 239 | + return TimePair(time_pairs[0].time_type, merged).to_ranges() |
230 | 240 |
|
231 | 241 |
|
232 | 242 | def parse_single_time_arg(key: str) -> TimePair:
|
|
0 commit comments