.. _condition-handbook: 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: .. code-block:: python >>> 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)``). .. toctree:: :maxdepth: 3 :caption: Contents: api/index syntax/index classes/index comparisons