airflow.timetables.simple

Attributes

BaseAsset

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.

PartitionMapper

Base partition mapper class.

IdentityMapper

Partition mapper that does not change the key.

PartitionedAssetTimetable

Asset-driven timetable that listens for partitioned assets.

Module Contents

type airflow.timetables.simple.BaseAsset = SerializedAssetBase[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

class airflow.timetables.simple.PartitionMapper[source]

Bases: abc.ABC

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

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

Asset-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 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?