blob: 3d25e470183cbddc9f7da24bbe2b1f13063616b2 [file] [log] [blame]
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
airflow.sdk API Reference
=========================
This page documents the full public API exposed in Airflow 3.0+ via the Task SDK python module.
If something is not on this page it is best to assume that it is not part of the public API and use of it is entirely at your own risk
-- we won't go out of our way break usage of them, but we make no promises either.
Defining Dags
-------------
.. autoapiclass:: airflow.sdk.DAG
Configuration
-------------
The ``conf`` object is available as part of the Task SDK. It provides an interface to the
configurations, allowing you to read and interact with Airflow configuration values.
Macros
------
The ``macros`` module is available as part of the Task SDK. It provides builtin utility functions
for date manipulation and other common operations in Jinja templates and task code.
Available functions include:
- ``ds_add(ds, days)`` - Add or subtract days from a date string
- ``ds_format(ds, input_format, output_format)`` - Format datetime strings
- ``ds_format_locale(ds, input_format, output_format, locale)`` - Format datetime strings with locale support
- ``datetime_diff_for_humans(dt, since)`` - Human-readable datetime differences
The module also provides direct access to commonly used standard library modules:
``json``, ``time``, ``uuid``, ``dateutil``, and ``random``.
Decorators
----------
.. autoapifunction:: airflow.sdk.dag
.. autoapifunction:: airflow.sdk.task
Task Decorators:
- ``@task.run_if(condition, skip_message=None)``
Run the task only if the given condition is met; otherwise the task is skipped. The condition is a callable
that receives the task execution context and returns either a boolean or a tuple ``(bool, message)``.
- ``@task.skip_if(condition, skip_message=None)``
Skip the task if the given condition is met, raising a skip exception with an optional message.
- Provider-specific task decorators under ``@task.<provider>``, e.g. ``@task.python``, ``@task.docker``, etc., dynamically loaded from registered providers.
.. autoapifunction:: airflow.sdk.task_group
.. autoapifunction:: airflow.sdk.setup
.. autoapifunction:: airflow.sdk.teardown
.. autofunction:: airflow.sdk.task
.. autofunction:: airflow.sdk.setup
.. autofunction:: airflow.sdk.teardown
.. autofunction:: airflow.sdk.asset
Bases
-----
.. autoapiclass:: airflow.sdk.BaseAsyncOperator
.. autoapiclass:: airflow.sdk.BaseOperator
.. autoapiclass:: airflow.sdk.BaseSensorOperator
.. autoapiclass:: airflow.sdk.BaseNotifier
.. autoapiclass:: airflow.sdk.BaseOperatorLink
.. autoapiclass:: airflow.sdk.BaseXCom
.. autoapiclass:: airflow.sdk.PokeReturnValue
.. autoapiclass:: airflow.sdk.BaseHook
Callbacks
---------
.. autoclass:: airflow.sdk.AsyncCallback
.. autoclass:: airflow.sdk.SyncCallback
Deadline Alerts
---------------
.. autoclass:: airflow.sdk.DeadlineAlert
.. autoclass:: airflow.sdk.DeadlineReference
Connections & Variables
-----------------------
.. autoapiclass:: airflow.sdk.Connection
.. autoapiclass:: airflow.sdk.Variable
Tasks & Operators
-----------------
.. autoapiclass:: airflow.sdk.TaskGroup
.. autoapiclass:: airflow.sdk.XComArg
.. autoapifunction:: airflow.sdk.literal
.. autoapiclass:: airflow.sdk.Param
.. autoclass:: airflow.sdk.ParamsDict
.. autoclass:: airflow.sdk.TriggerRule
.. autoapifunction:: airflow.sdk.get_current_context
.. autoapifunction:: airflow.sdk.get_parsing_context
State Enums
-----------
.. autoclass:: airflow.sdk.TaskInstanceState
.. autoclass:: airflow.sdk.DagRunState
.. autoclass:: airflow.sdk.WeightRule
Setting Dependencies
~~~~~~~~~~~~~~~~~~~~
.. autoapifunction:: airflow.sdk.chain
.. autoapifunction:: airflow.sdk.chain_linear
.. autoapifunction:: airflow.sdk.cross_downstream
Edges & Labels
~~~~~~~~~~~~~~
.. autoapiclass:: airflow.sdk.EdgeModifier
.. autoapiclass:: airflow.sdk.Label
Assets
------
.. autoapiclass:: airflow.sdk.Asset
.. autoapiclass:: airflow.sdk.AssetAlias
.. autoapiclass:: airflow.sdk.AssetAll
.. autoapiclass:: airflow.sdk.AssetAny
.. autoapiclass:: airflow.sdk.AssetWatcher
.. autoapiclass:: airflow.sdk.Metadata
Timetables
----------
.. autoapiclass:: airflow.sdk.AssetOrTimeSchedule
.. autoapiclass:: airflow.sdk.CronDataIntervalTimetable
.. autoapiclass:: airflow.sdk.CronTriggerTimetable
.. autoapiclass:: airflow.sdk.CronPartitionTimetable
.. autoapiclass:: airflow.sdk.DeltaDataIntervalTimetable
.. autoapiclass:: airflow.sdk.DeltaTriggerTimetable
.. autoapiclass:: airflow.sdk.EventsTimetable
.. autoapiclass:: airflow.sdk.MultipleCronTriggerTimetable
.. autoapiclass:: airflow.sdk.PartitionedAssetTimetable
Partition Mapper
----------------
.. autoapiclass:: airflow.sdk.PartitionMapper
.. autoapiclass:: airflow.sdk.IdentityMapper
.. autoapiclass:: airflow.sdk.HourlyMapper
.. autoapiclass:: airflow.sdk.DailyMapper
.. autoapiclass:: airflow.sdk.WeeklyMapper
.. autoapiclass:: airflow.sdk.MonthlyMapper
.. autoapiclass:: airflow.sdk.QuarterlyMapper
.. autoapiclass:: airflow.sdk.YearlyMapper
I/O Helpers
-----------
.. autoapiclass:: airflow.sdk.ObjectStoragePath
Execution Time Components
-------------------------
.. rubric:: Context
.. autoapiclass:: airflow.sdk.Context
The ``Context`` object represents the execution-time context available to tasks.
It corresponds to the same context that is exposed to Jinja templates during task execution.
For a complete list of available context variables (such as ``dag_run``,
``task_instance``, ``logical_date``, etc.), see the
:ref:`Templates reference <templates-ref>`.
.. rubric:: Logging
.. autofunction:: airflow.sdk.log.mask_secret
Observability
-------------
.. autoclass:: airflow.sdk.Trace
Everything else
---------------
.. autoapimodule:: airflow.sdk
:members:
:special-members: __version__
:exclude-members: BaseAsyncOperator, BaseOperator, DAG, dag, asset, Asset, AssetAlias, AssetAll, AssetAny, AssetWatcher, TaskGroup, XComArg, get_current_context, get_parsing_context
:undoc-members:
:imported-members:
:no-index: