Note
Go to the end to download the full example code.
Removing folds with n_splits. Schedule-based before and after-data.#
Dynamic before/after-ranges, with removed partitions.
import pandas
from rics import configure_stuff
from time_split import log_split_progress, plot, split
configure_stuff(datefmt="")
data = pandas.date_range("2022", "2022-2", freq="15s")
config = dict(
schedule="0 0 * * MON,FRI",
before=1,
after=2,
available=data,
n_splits=4,
)
plot(**config, show_removed=True)

<Axes: title={'center': "time_split.split(schedule='0 0 * * MON,FRI', before=1, after=2, n_splits=4, available=pd.DatetimeIndex)"}, ylabel='Fold'>
Any non-zero integer before/after-range may be used. Setting show_removed=True forces plotting of folds that would
be silently discarded by the split()-function. Later folds are preferred.
for fold in log_split_progress(split(**config), logger="my-logger"):
print("Doing work..")
[my-logger:INFO] Begin fold 1/4: '2022-01-10' <= [schedule: '2022-01-14' (Friday)] < '2022-01-21'.
Doing work..
[my-logger:INFO] Finished fold 1/4: [schedule: '2022-01-14' (Friday)] after 17 μs.
[my-logger:INFO] Begin fold 2/4: '2022-01-14' <= [schedule: '2022-01-17' (Monday)] < '2022-01-24'.
Doing work..
[my-logger:INFO] Finished fold 2/4: [schedule: '2022-01-17' (Monday)] after 16 μs.
[my-logger:INFO] Begin fold 3/4: '2022-01-17' <= [schedule: '2022-01-21' (Friday)] < '2022-01-28'.
Doing work..
[my-logger:INFO] Finished fold 3/4: [schedule: '2022-01-21' (Friday)] after 15 μs.
[my-logger:INFO] Begin fold 4/4: '2022-01-21' <= [schedule: '2022-01-24' (Monday)] < '2022-01-31'.
Doing work..
[my-logger:INFO] Finished fold 4/4: [schedule: '2022-01-24' (Monday)] after 15 μs.
Total running time of the script: (0 minutes 0.198 seconds)