Note
Go to the end to download the full example code.
Cron schedule, keeping all data before the schedule.#
Using a cron schedule with data, showing number of rows in each partition.
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-1-21", freq="38min")
config = dict(
schedule="0 0 * * MON,FRI",
before="all",
after="3d",
available=data,
)
plot(**config)

👻 Configured some stuff just the way I like it!
<Axes: title={'center': "time_split.split(schedule='0 0 * * MON,FRI', before='all', after='3d', available=pd.DatetimeIndex)"}, ylabel='Fold'>
The vertical, dashed lines shown denote the outer bounds of the data, beyond which the schedule may not extend.
for fold in log_split_progress(split(**config), logger="my-logger"):
print("Doing work..")
[my-logger:INFO] Begin fold 1/5: '2022-01-01' <= [schedule: '2022-01-04' (Tuesday)] < '2022-01-07'.
Doing work..
[my-logger:INFO] Finished fold 1/5: [schedule: '2022-01-04' (Tuesday)] after 17 μs.
[my-logger:INFO] Begin fold 2/5: '2022-01-01' <= [schedule: '2022-01-07' (Friday)] < '2022-01-10'.
Doing work..
[my-logger:INFO] Finished fold 2/5: [schedule: '2022-01-07' (Friday)] after 15 μs.
[my-logger:INFO] Begin fold 3/5: '2022-01-01' <= [schedule: '2022-01-11' (Tuesday)] < '2022-01-14'.
Doing work..
[my-logger:INFO] Finished fold 3/5: [schedule: '2022-01-11' (Tuesday)] after 15 μs.
[my-logger:INFO] Begin fold 4/5: '2022-01-01' <= [schedule: '2022-01-14' (Friday)] < '2022-01-17'.
Doing work..
[my-logger:INFO] Finished fold 4/5: [schedule: '2022-01-14' (Friday)] after 15 μs.
[my-logger:INFO] Begin fold 5/5: '2022-01-01' <= [schedule: '2022-01-18' (Tuesday)] < '2022-01-21'.
Doing work..
[my-logger:INFO] Finished fold 5/5: [schedule: '2022-01-18' (Tuesday)] after 14 μs.
Total running time of the script: (0 minutes 0.147 seconds)