Thin DSL for creating time scheduling specifications
A DSL to assist with writing specifications describing intervals and durations of time with filters.
Why the name?
Because time_spec was uninspiring and a good friend suggested timepiece.
Naming things is difficult!
Because I wanted to represent when scheduled actions should take place and I was starting to have too many columns in my database representing everything I wanted to be able to do.
pip install timepiece
Or if you’re developing it:
pip install -e . pip install -e ".[tests]"
Just create the timepiece and give it a specification!
from timepiece.spec import make_timepiece from datetime import datetime timepiece = make_timepiece() obj = timepiece.time_spec_to_object("between(start: now()) & interval(every: amount(num:1 size: hour))") print("Next time is: ", obj.following(datetime.utcnow()))
See The docs at https://timepiece.readthedocs.io for more information!
To run the tests in this project, just use the helpful script:
Or run tox: