solarforecastarbiter.utils.merge_ranges¶
-
solarforecastarbiter.utils.
merge_ranges
(ranges)[source]¶ Generator to merge the ranges like (min_val, max_val) removing any overlap. Results will be sorted in ascending order. The type of values in each range set should have well defined behaviour with the comparison operators, namely >, >=, <, <=.
Parameters: ranges (iterable) –
Yields: next_value (same type as ranges[0])
Raises: ValueError
– If any range is not properly sortedTypeError
– If any range values cannot be compared
Examples
>>> list(merge_ranges([[0, 1], [9, 15], [-1, 3]])) [[-1, 3], [9, 15]]
>>> list(merge_ranges([ ... (pd.Timestamp('2020-01-01T00:00Z'), pd.Timestamp('2020-01-05T12:00Z')), ... (pd.Timestamp('2020-01-02T00:00Z'), pd.Timestamp('2020-01-03T12:00Z')), ... ])) [(pd.Timestamp('2020-01-01T00:00Z'), pd.Timestamp('2020-01-05T12:00Z'))]