airflow.decorators.base
¶
模块内容¶
类¶
包装 Python 可调用对象,并在调用执行时捕获 args/kwargs。 |
|
用于 @task 修饰的任务函数的 MappedOperator 实现。 |
|
为类型检查声明 @task 修饰的可调用对象。 |
|
|
函数¶
|
生成给定 DAG 的唯一任务 ID (或者如果在 DAG 上下文中运行)。 |
|
生成一个将函数包装到 Airflow 操作符的包装器。 |
属性¶
- airflow.decorators.base.get_unique_task_id(task_id, dag=None, task_group=None)[源代码]¶
生成给定 DAG 的唯一任务 ID (或者如果在 DAG 上下文中运行)。
ID 通过在原始任务 ID 的末尾附加唯一数字生成。
- 示例
task_id task_id__1 task_id__2 … task_id__20
- class airflow.decorators.base.DecoratedOperator(*, python_callable, task_id, op_args=None, op_kwargs=None, kwargs_to_upstream=None, **kwargs)[源代码]¶
基类:
airflow.models.baseoperator.BaseOperator
包装 Python 可调用对象,并在调用执行时捕获 args/kwargs。
- 参数
python_callable (Callable) – 对可调用对象的引用
op_kwargs (Mapping[str, Any] | None) – 关键字参数的字典,它将在函数中解包(模板化)
op_args (Collection[Any] | None) – 位置参数的列表,它将在调用可调用对象时解包(模板化)
multiple_outputs – 如果设置为 True,则修饰函数的返回值将展开为多个 XCom 值。Dict 将以其键作为 XCom 键展开为 XCom 值。默认为 False。
kwargs_to_upstream (dict[str, Any] | None) – 对于某些操作符,我们可能需要向上游传递某些参数,否则这些参数将被 DecoratedOperator 吸收(例如,PythonOperator 的 python_callable)。这为用户提供了根据需要向上游传递 kwargs 的选项。
- class airflow.decorators.base.DecoratedMappedOperator(context=None)[源代码]¶
基类:
airflow.models.mappedoperator.MappedOperator
用于 @task 修饰的任务函数的 MappedOperator 实现。
- class airflow.decorators.base.Task[source]¶
基类:
airflow.typing_compat.Protocol
,Generic
[FParams
,FReturn
]为类型检查声明 @task 修饰的可调用对象。
此类型的实例继承了包装在其中的被装饰函数的调用签名(并非完全相同,因为它实际上返回一个 XComArg,但目前无法表达这一点),并提供了两个用于任务映射的额外方法。
此类型在运行时由
_TaskDecorator
实现。
- class airflow.decorators.base.TaskDecorator[source]¶
基类:
airflow.typing_compat.Protocol
task_decorator_factory
返回类型的类型声明。
- airflow.decorators.base.task_decorator_factory(python_callable=None, *, multiple_outputs=None, decorated_operator_class, **kwargs)[source]¶
生成一个将函数包装到 Airflow 操作符的包装器。
可以在单个 DAG 中重复使用。
- 参数
python_callable (Callable | None) – 要装饰的函数。
multiple_outputs (bool | None) – 如果设置为 True,则将装饰函数的返回值展开为多个 XCom 值。字典将使用其键作为 XCom 键展开为 XCom 值。如果设置为 False(默认值),则最多只推送一个 XCom 值。
decorated_operator_class (type[airflow.models.baseoperator.BaseOperator]) – 在正确环境中执行运行 Python 函数所需逻辑的运算符。
其他 kwargs 在实例化时直接转发到底层运算符类。