airflow.models.param

模块内容

Param

用于保存 Param 的默认值和进行验证的规则集的类。

ParamsDict

用于保存 DAG 或任务的所有参数的类。

DagParam

DAG 运行参数参考。

函数

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

合并、验证参数并将其转换为简单的字典。

属性

logger

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

用于保存 Param 的默认值和进行验证的规则集的类。

如果没有规则集,它总是验证并返回默认值。

参数
  • default (Any) – 此 Param 对象持有的值

  • description (str | None) – Param 的可选帮助文本

  • schema – Param 的验证模式,如果未给定,则除了 default & description 之外的所有 kwargs 都将构成模式

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

运行验证并返回 Param 的最终值。

如果验证失败,可能会引发 ValueError;如果没有传递值且不存在值,则会引发 TypeError。我们首先检查该值是否可 JSON 序列化;如果不是,则发出警告。在未来的版本中,我们将要求该值可 JSON 序列化。

参数
  • value (Any) – 要为 Param 更新的值

  • suppress_exception (bool) – 验证失败时是否引发异常。如果为 true 且验证失败,则返回值将为 None。

dump()[source]

将 Param 转储为字典。

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

基类: MutableMapping[str, Any]

用于保存 DAG 或任务的所有参数的类。

所有键都严格为字符串,如果值还不是 Param 对象,则会将其转换为 Param 对象。此类用于隐式替换参数的字典,理想情况下不需要直接使用。

参数
  • dict_obj (MutableMapping | None) – 用于初始化 ParamsDict 的字典或类似字典的对象

  • suppress_exception (bool) – 在初始化 ParamsDict 时抑制值异常的标志

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

返回 self==value。

__copy__()[source]
__deepcopy__(memo)[源代码]
__contains__(o)[源代码]
__len__()[源代码]
__delitem__(v)[源代码]
__iter__()[源代码]
__repr__()[源代码]

返回 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)[源代码]

基类:airflow.utils.mixins.ResolveMixin

DAG 运行参数参考。

这将一个简单的 Param 对象绑定到 DAG 实例中的名称,以便可以在运行时通过 {{ context }} 字典解析它。 此类的理想用例是隐式转换传递给由 @dag 修饰的方法的 args。

它可用于参数化 DAG。 您可以通过在触发 DagRun 时在 conf 上设置值来覆盖其值。

也可以通过访问 {{ context.params }} 在模板中使用它。

示例:

with DAG(…) as dag

EmailOperator(subject=dag.param(‘subject’, ‘来自 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)[源代码]

合并、验证参数并将其转换为简单的字典。

此条目是否有帮助?