airflow.timetables.base¶
Module Contents¶
Classes¶
| A data interval for a DagRun to operate over. | |
| Restriction on when a DAG can be scheduled for a run. | |
| Information to schedule a DagRun. | |
| Protocol that all Timetable classes are expected to implement. | 
- class airflow.timetables.base.DataInterval[source]¶
- Bases: - NamedTuple- A data interval for a DagRun to operate over. - Both - startand- endMUST be “aware”, i.e. contain timezone information.
- class airflow.timetables.base.TimeRestriction[source]¶
- Bases: - NamedTuple- Restriction on when a DAG can be scheduled for a run. - Specifically, the run must not be earlier than - earliest, nor later than- latest. If- catchupis False, the run must also not be earlier than the current time, i.e. “missed” schedules are not backfilled.- These values are generally set on the DAG or task’s - start_date,- end_date, and- catchuparguments.- Both - earliestand- latest, if not None, are inclusive; a DAG run can happen exactly at either point of time. They are guaranteed to be aware (i.e. contain timezone information) for- TimeRestrictioninstances created by Airflow.
- class airflow.timetables.base.DagRunInfo[source]¶
- Bases: - NamedTuple- Information to schedule a DagRun. - Instances of this will be returned by timetables when they are asked to schedule a DagRun creation. - property logical_date: pendulum.DateTime[source]¶
- Infer the logical date to represent a DagRun. - This replaces - execution_datein Airflow 2.1 and prior. The idea is essentially the same, just a different name.
 
- class airflow.timetables.base.Timetable[source]¶
- Bases: - airflow.typing_compat.Protocol- Protocol that all Timetable classes are expected to implement. - property summary: str[source]¶
- A short summary for the timetable. - This is used to display the timetable in the web UI. A cron expression timetable, for example, can use this to display the expression. The default implementation returns the timetable’s type name. 
 - description :str =[source]¶
- Human-readable description of the timetable. - For example, this can produce something like - 'At 21:30, only on Friday'from the cron expression- '30 21 * * 5'. This is used in the webserver UI.
 - periodic :bool = True[source]¶
- Whether this timetable runs periodically. - This defaults to and should generally be True, but some special setups like - schedule=Noneand- "@once"set it to False.
 - can_run :bool = True[source]¶
- Whether this timetable can actually schedule runs. - This defaults to and should generally be True, but - NullTimetablesets this to False.
 - run_ordering :Sequence[str] = ['data_interval_end', 'execution_date'][source]¶
- How runs triggered from this timetable should be ordered in UI. - This should be a list of field names on the DAG run object. 
 - classmethod deserialize(data)[source]¶
- Deserialize a timetable from data. - This is called when a serialized DAG is deserialized. - datawill be whatever was returned by- serializeduring DAG serialization. The default implementation constructs the timetable without any arguments.
 - serialize()[source]¶
- Serialize the timetable for JSON encoding. - This is called during DAG serialization to store timetable information in the database. This should return a JSON-serializable dict that will be fed into - deserializewhen the DAG is deserialized. The default implementation returns an empty dict.
 - validate()[source]¶
- Validate the timetable is correctly specified. - Override this method to provide run-time validation raised when a DAG is put into a dagbag. The default implementation does nothing. - Raises
- AirflowTimetableInvalid on validation failure. 
 
 - abstract infer_manual_data_interval(*, run_after)[source]¶
- When a DAG run is manually triggered, infer a data interval for it. - This is used for e.g. manually-triggered runs, where - run_afterwould be when the user triggers the run. The default implementation raises- NotImplementedError.
 - abstract next_dagrun_info(*, last_automated_data_interval, restriction)[source]¶
- Provide information to schedule the next DagRun. - The default implementation raises - NotImplementedError.- Parameters
- last_automated_data_interval (DataInterval | None) – The data interval of the associated DAG’s last scheduled or backfilled run (manual runs not considered). 
- restriction (TimeRestriction) – Restriction to apply when scheduling the DAG run. See documentation of - TimeRestrictionfor details.
 
- Returns
- Information on when the next DagRun can be scheduled. None means a DagRun will not happen. This does not mean no more runs will be scheduled even again for this DAG; the timetable can return a DagRunInfo object when asked at another time. 
- Return type
- DagRunInfo | None 
 
 
