airflow.timetables.simple

Attributes

BaseAsset

log

DEFAULT_PARTITION_MAPPER

Classes

NullTimetable

Timetable that never schedules anything.

OnceTimetable

Timetable that schedules the execution once as soon as possible.

ContinuousTimetable

Timetable that schedules continually, while still respecting start_date and end_date.

PartitionedAssetTimetable

Asset-driven timetable that listens for partitioned assets.

Module Contents

type airflow.timetables.simple.BaseAsset = SerializedAssetBase[source]
airflow.timetables.simple.log[source]
class airflow.timetables.simple.NullTimetable[source]

Bases: _TrivialTimetable

Timetable 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 NullTimetable sets 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:
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:

airflow.timetables.base.DagRunInfo | None

class airflow.timetables.simple.OnceTimetable[source]

Bases: _TrivialTimetable

Timetable 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:
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:

airflow.timetables.base.DagRunInfo | None

class airflow.timetables.simple.ContinuousTimetable[source]

Bases: _TrivialTimetable

Timetable 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 for ContinuousTimetable.

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:
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:

airflow.timetables.base.DagRunInfo | None

airflow.timetables.simple.DEFAULT_PARTITION_MAPPER[source]
class airflow.timetables.simple.PartitionedAssetTimetable(*, assets, partition_mapper_config=None, default_partition_mapper=DEFAULT_PARTITION_MAPPER)[source]

Bases: AssetTriggeredTimetable

Asset-driven timetable that listens for partitioned assets.

partitioned = True[source]

Whether this timetable considers asset partitions.

This is True for timetables that switch scheduling to use partitions instead of the traditional logic based on logical dates and data intervals.

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_config[source]
default_partition_mapper[source]
get_partition_mapper(*, name='', uri='')[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 deserialize when 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. data will be whatever was returned by serialize during DAG serialization. The default implementation constructs the timetable without any arguments.

Was this entry helpful?