Conditions¶
Rocketry’s scheduling system works with conditions that are either true or false. A simple condition could be time is now between 8 am and 2 pm (12-hour clock) or time is now between 08:00 and 14:00 (24-hour clock). If current time is inside this range, the condition is true and if not, then it’s false. If this is a condition for a task, the task is run if the the current time is in the range.
The conditions can be combinded using logical operations: AND, OR, NOT. They also can be nested using parentheses.
There are three ways of creating conditions in Rocketry:
Condition syntax
Condition API
Condition classes
All of the above generate condition instances that can be used as:
The start condition of a task (task starts if the condition is true)
The end condition of a task (task terminates if the condition is true and the task is running)
The shut condition of the scheduler (scheduler shuts down if the condition is true, useful in testing)
When evaluating a condition, the system uses method observe
to get
the state of the condition. You can test the status of a condition by:
>>> from rocketry.conds import time_of_day
>>> condition = time_of_day.between("10:00", "14:00")
>>> condition.observe()
True
The above returns True
if your current time is between 10:00 (10 AM) and 14:00 (2 PM).
Some conditions might rely on a task or the session
(passed as .observe(task=task, session=session)
).