airflow.decorators.base

模块内容

DecoratedOperator

包装 Python 可调用对象,并在调用执行时捕获 args/kwargs。

DecoratedMappedOperator

用于 @task 修饰的任务函数的 MappedOperator 实现。

Task

为类型检查声明 @task 修饰的可调用对象。

TaskDecorator

task_decorator_factory 返回类型的类型声明。

函数

get_unique_task_id(task_id[, dag, task_group])

生成给定 DAG 的唯一任务 ID (或者如果在 DAG 上下文中运行)。

task_decorator_factory([python_callable, multiple_outputs])

生成一个将函数包装到 Airflow 操作符的包装器。

属性

FParams

FReturn

OperatorSubclass

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 的选项。

template_fields: Sequence[str] = ('op_args', 'op_kwargs')[源代码]
template_fields_renderers[源代码]
shallow_copy_attrs: Sequence[str] = ('python_callable',)[源代码]
execute(context)[源代码]

在创建操作符时派生。

上下文与渲染 Jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

get_python_source()[源代码]
airflow.decorators.base.FParams[源代码]
airflow.decorators.base.FReturn[源代码]
airflow.decorators.base.OperatorSubclass[源代码]
class airflow.decorators.base.DecoratedMappedOperator(context=None)[源代码]

基类: airflow.models.mappedoperator.MappedOperator

用于 @task 修饰的任务函数的 MappedOperator 实现。

multiple_outputs: bool[源代码]
python_callable: Callable[source]
op_kwargs_expand_input: airflow.models.expandinput.ExpandInput[source]
__hash__()[source]

返回 hash(self)。

__attrs_post_init__()[source]
class airflow.decorators.base.Task[source]

基类:airflow.typing_compat.Protocol, Generic[FParams, FReturn]

为类型检查声明 @task 修饰的可调用对象。

此类型的实例继承了包装在其中的被装饰函数的调用签名(并非完全相同,因为它实际上返回一个 XComArg,但目前无法表达这一点),并提供了两个用于任务映射的额外方法。

此类型在运行时由 _TaskDecorator 实现。

property __wrapped__: Callable[FParams, FReturn][source]
__call__: Callable[FParams, airflow.models.xcom_arg.XComArg][source]
function: Callable[FParams, FReturn][source]
partial(**kwargs)[source]
expand(**kwargs)[source]
expand_kwargs(kwargs, *, strict=True)[source]
override(**kwargs)[source]
class airflow.decorators.base.TaskDecorator[source]

基类:airflow.typing_compat.Protocol

task_decorator_factory 返回类型的类型声明。

__call__(python_callable: Callable[FParams, FReturn]) Task[FParams, FReturn][source]
__call__(*, multiple_outputs: bool | None = None, **kwargs: Any) Callable[[Callable[FParams, FReturn]], Task[FParams, FReturn]]

对于装饰器工厂 @task() 的情况。

override(**kwargs)[source]
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 在实例化时直接转发到底层运算符类。

此条目是否有帮助?