airflow.timetables.base¶
Module Contents¶
- 
class airflow.timetables.base.DataInterval[source]¶
- Bases: - typing.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: - typing.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: - typing.NamedTuple- Information to schedule a DagRun. - Instances of this will be returned by timetables when they are asked to schedule a DagRun creation. - 
run_after:DateTime[source]¶
- The earliest time this DagRun is created and its tasks scheduled. - This MUST be "aware", i.e. contain timezone information. 
 - 
logical_date[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.
 - 
classmethod interval(cls, start: DateTime, end: DateTime)[source]¶
- Represent a run on a continuous schedule. - In such a schedule, each data interval starts right after the previous one ends, and each run is scheduled right after the interval ends. This applies to all schedules prior to AIP-39 except - @onceand- None.
 
- 
- 
class airflow.timetables.base.Timetable[source]¶
- Bases: - airflow.typing_compat.Protocol- Protocol that all Timetable classes are expected to implement. - 
periodic:bool = True[source]¶
- Whether this timetable runs periodically. - This defaults to and should generally be True, but some special setups like - schedule_interval=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.
 - 
summary[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. 
 - 
classmethod deserialize(cls, data: Dict[str, Any])[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(self)[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(self)[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. 
 
 - 
infer_manual_data_interval(self, *, run_after: DateTime)[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.
 - 
next_dagrun_info(self, *, last_automated_data_interval: Optional[DataInterval], restriction: TimeRestriction)[source]¶
- Provide information to schedule the next DagRun. - The default implementation raises - NotImplementedError.- Parameters
- last_automated_data_interval -- The data interval of the associated DAG's last scheduled or backfilled run (manual runs not considered). 
- restriction -- 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. 
 
 
-