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 值。字典將展開為以其鍵作為 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)[原始碼]

在建立運算子時衍生。

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[原始碼]
op_kwargs_expand_input: airflow.models.expandinput.ExpandInput[原始碼]
__hash__()[原始碼]

傳回 hash(self)。

__attrs_post_init__()[原始碼]
class airflow.decorators.base.Task[原始碼]

基底類別: airflow.typing_compat.Protocol, Generic[FParams, FReturn]

用於類型檢查的 @task 裝飾可調用物件的宣告。

此類型的實例繼承了包裝在其中的裝飾函式的呼叫簽名(不完全是,因為它實際上返回 XComArg,但目前無法表達),並提供兩種額外的方法用於任務映射。

此類型由運行時的 _TaskDecorator 實作。

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

基底類別: airflow.typing_compat.Protocol

用於 task_decorator_factory 返回類型的類型宣告。

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

適用於裝飾器工廠 @task() 的情況。

override(**kwargs)[原始碼]
airflow.decorators.base.task_decorator_factory(python_callable=None, *, multiple_outputs=None, decorated_operator_class, **kwargs)[原始碼]

產生一個包裝器,將函式包裝到 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 在實例化時直接轉發到基礎運算子類別。

此條目是否有幫助?