airflow.models.param

模組內容

類別

Param

類別用於保存 Param 的預設值和規則集以進行驗證。

ParamsDict

類別用於保存 dag 或任務的所有參數。

DagParam

DAG 執行參數參考。

函式

process_params(dag, task, dag_run, *, suppress_exception)

合併、驗證參數,並將它們轉換為簡單的字典。

屬性

logger

airflow.models.param.logger[原始碼]
class airflow.models.param.Param(default=NOTSET, description=None, **kwargs)[原始碼]

類別用於保存 Param 的預設值和規則集以進行驗證。

沒有規則集,它始終驗證並傳回預設值。

參數
  • default (Any) – 此 Param 物件持有的值

  • description (str | None) – Param 的選填說明文字

  • schema – Param 的驗證結構描述,如果未給定,則除了 default 和 description 之外的所有 kwargs 都將構成結構描述

property has_value: bool[原始碼]
__version__: ClassVar[int] = 1[原始碼]
CLASS_IDENTIFIER = '__class'[原始碼]
__copy__()[原始碼]
resolve(value=NOTSET, suppress_exception=False)[原始碼]

執行驗證並傳回 Param 的最終值。

驗證失敗時可能會引發 ValueError,如果未傳遞值且尚不存在任何值,則可能會引發 TypeError。 我們首先檢查值是否可序列化為 json;如果不是,則發出警告。 在未來的版本中,我們將要求值可序列化為 json。

參數
  • value (Any) – 要為 Param 更新的值

  • suppress_exception (bool) – 驗證失敗時是否引發例外。 如果為 true 且驗證失敗,則傳回值將為 None。

dump()[原始碼]

將 Param 轉儲為字典。

serialize()[原始碼]
static deserialize(data, version)[原始碼]
class airflow.models.param.ParamsDict(dict_obj=None, suppress_exception=False)[原始碼]

Bases: MutableMapping[str, Any]

類別用於保存 dag 或任務的所有參數。

所有鍵都嚴格為字串,值會轉換為 Param 的物件(如果它們還不是)。 此類別用於隱式替換參數字典,理想情況下不需要直接使用。

參數
  • dict_obj (MutableMapping | None) – 用於初始化 ParamsDict 的字典或類似字典的物件

  • suppress_exception (bool) – 在初始化 ParamsDict 時抑制值例外的標誌

__version__: ClassVar[int] = 1[原始碼]
__slots__ = ['__dict', 'suppress_exception'][原始碼]
__bool__()[原始碼]
__eq__(other)[原始碼]

Return self==value.

__copy__()[原始碼]
__deepcopy__(memo)[原始碼]
__contains__(o)[原始碼]
__len__()[原始碼]
__delitem__(v)[原始碼]
__iter__()[原始碼]
__repr__()[原始碼]

Return repr(self).

__setitem__(key, value)[原始碼]

覆寫字典的 setitem 方法,以確保所有值都僅為 Param 的類型。

參數
  • key (str) – 需要在字典中插入或更新的鍵

  • value (Any) – 需要針對鍵設定的值。 它可以是任何類型,但最終將轉換並儲存為 Param 物件。

__getitem__(key)[原始碼]

覆寫字典的 getitem 方法,以在擷取鍵後呼叫 resolve 方法。

參數

key (str) – 要擷取的鍵

get_param(key)[原始碼]

取得此鍵的內部 Param 物件。

items()[原始碼]

D.items() -> 一個類似集合的物件,提供 D 項目視圖

values()[原始碼]

D.values() -> 一個物件,提供 D 值視圖

update(*args, **kwargs)[原始碼]

D.update([E, ]**F) -> None。 從映射/可迭代 E 和 F 更新 D。 如果 E 存在並且具有 .keys() 方法,則執行:for k in E: D[k] = E[k] 如果 E 存在並且缺少 .keys() 方法,則執行:for (k, v) in E: D[k] = v 在任何一種情況下,後面都是:for k, v in F.items(): D[k] = v

dump()[原始碼]

將 ParamsDict 物件轉儲為字典,同時抑制例外。

validate()[原始碼]

驗證並傳回字典中儲存的所有 Params 物件。

serialize()[原始碼]
static deserialize(data, version)[原始碼]
class airflow.models.param.DagParam(current_dag, name, default=NOTSET)[原始碼]

Bases: airflow.utils.mixins.ResolveMixin

DAG 執行參數參考。

這將簡單的 Param 物件繫結到 DAG 實例中的名稱,以便可以在執行時透過 {{ context }} 字典解析它。 此類別的理想用例是隱式轉換傳遞給由 @dag 修飾的方法的 args。

它可用於參數化 DAG。 您可以透過在觸發 DagRun 時在 conf 上設定其值來覆寫其值。

這也可以在範本中使用,方法是存取 {{ context.params }}

範例:

with DAG(…) as dag

EmailOperator(subject=dag.param(‘subject’, ‘Hi from Airflow!’))

參數
  • current_dag (airflow.models.dag.DAG) – 用於參數的 Dag。

  • name (str) – 用於設定參數的鍵值

  • default (Any) – 如果未設定任何參數,則使用的預設值。

resolve(context, *, include_xcom=True)[原始碼]

從 DagRun 內容中提取 DagParam 值。 此方法在 op.execute() 期間執行。

airflow.models.param.process_params(dag, task, dag_run, *, suppress_exception)[原始碼]

合併、驗證參數,並將它們轉換為簡單的字典。

這個條目對您有幫助嗎?