airflow.timetables.simple
Attributes
Classes
Timetable that never schedules anything. |
|
Timetable that schedules the execution once as soon as possible. |
|
Timetable that schedules continually, while still respecting start_date and end_date. |
|
Base partition mapper class. |
|
Partition mapper that does not change the key. |
|
Asset-driven timetable that listens for partitioned assets. |
Module Contents
- type airflow.timetables.simple.BaseAsset = SerializedAssetBase[source]
- class airflow.timetables.simple.NullTimetable[source]
Bases:
_TrivialTimetableTimetable that never schedules anything.
This corresponds to
schedule=None.- can_be_scheduled = False[source]
Whether this timetable can actually schedule runs in an automated manner.
This defaults to and should generally be True (including non periodic execution types like @once and data triggered tables), but
NullTimetablesets this to False.
- description: str = 'Never, external triggers only'[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.
- 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.
- 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 (airflow.timetables.base.DataInterval | None) – The data interval of the associated DAG’s last scheduled or backfilled run (manual runs not considered).
restriction (airflow.timetables.base.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:
- class airflow.timetables.simple.OnceTimetable[source]
Bases:
_TrivialTimetableTimetable that schedules the execution once as soon as possible.
This corresponds to
schedule="@once".- description: str = 'Once, as soon as possible'[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.
- 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.
- 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 (airflow.timetables.base.DataInterval | None) – The data interval of the associated DAG’s last scheduled or backfilled run (manual runs not considered).
restriction (airflow.timetables.base.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:
- class airflow.timetables.simple.ContinuousTimetable[source]
Bases:
_TrivialTimetableTimetable that schedules continually, while still respecting start_date and end_date.
This corresponds to
schedule="@continuous".- description: str = 'As frequently as possible, but only one run at a time.'[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.
- active_runs_limit = 1[source]
Maximum active runs that can be active at one time for a DAG.
This is called during DAG initialization, and the return value is used as the DAG’s default
max_active_runs. This should generally return None, but there are good reasons to limit DAG run parallelism in some cases, such as forContinuousTimetable.
- 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.
- 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 (airflow.timetables.base.DataInterval | None) – The data interval of the associated DAG’s last scheduled or backfilled run (manual runs not considered).
restriction (airflow.timetables.base.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:
- class airflow.timetables.simple.PartitionMapper[source]
Bases:
abc.ABCBase partition mapper class.
Maps keys from asset events to target dag run partitions.
- abstract to_downstream(key)[source]
Return the target key that the given source partition key maps to.
- abstract to_upstream(key)[source]
Yield the source keys that map to the given target partition key.
- serialize()[source]
- classmethod deserialize(data)[source]
- class airflow.timetables.simple.IdentityMapper[source]
Bases:
PartitionMapperPartition mapper that does not change the key.
- to_downstream(key)[source]
Return the target key that the given source partition key maps to.
- to_upstream(key)[source]
Yield the source keys that map to the given target partition key.
- class airflow.timetables.simple.PartitionedAssetTimetable(assets, partition_mapper)[source]
Bases:
AssetTriggeredTimetableAsset-driven timetable that listens for partitioned assets.
- 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.
- partition_mapper[source]
- 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.
- classmethod deserialize(data)[source]
Deserialize a timetable from data.
This is called when a serialized DAG is deserialized.
datawill be whatever was returned byserializeduring DAG serialization. The default implementation constructs the timetable without any arguments.