airflow.models.xcom_arg
¶
Module Contents¶
Classes¶
Class that represents a XCom push from a previous operator. |
- class airflow.models.xcom_arg.XComArg(operator: airflow.models.baseoperator.BaseOperator, key: str = XCOM_RETURN_KEY)[source]¶
Bases:
airflow.models.taskmixin.TaskMixin
Class that represents a XCom push from a previous operator. Defaults to “return_value” as only key.
- Current implementation supports
xcomarg >> op xcomarg << op op >> xcomarg (by BaseOperator code) op << xcomarg (by BaseOperator code)
Example: The moment you get a result from any operator (decorated or regular) you can
any_op = AnyOperator() xcomarg = XComArg(any_op) # or equivalently xcomarg = any_op.output my_op = MyOperator() my_op >> xcomarg
This object can be used in legacy Operators via Jinja.
Example: You can make this result to be part of any generated string
any_op = AnyOperator() xcomarg = any_op.output op1 = MyOperator(my_text_message=f"the value is {xcomarg}") op2 = MyOperator(my_text_message=f"the value is {xcomarg['topic']}")
- Parameters
operator (airflow.models.baseoperator.BaseOperator) – operator to which the XComArg belongs to
key (str) – key value which is used for xcom_pull (key in the XCom table)
- __str__(self)[source]¶
Backward compatibility for old-style jinja used in Airflow Operators
Example: to use XComArg at BashOperator:
BashOperator(cmd=f"... { xcomarg } ...")
- Returns
- property operator(self) airflow.models.baseoperator.BaseOperator [source]¶
Returns operator of this XComArg.
- property roots(self) List[airflow.models.baseoperator.BaseOperator] [source]¶
Required by TaskMixin
- property leaves(self) List[airflow.models.baseoperator.BaseOperator] [source]¶
Required by TaskMixin
- set_upstream(self, task_or_task_list: Union[airflow.models.taskmixin.TaskMixin, Sequence[airflow.models.taskmixin.TaskMixin]], edge_modifier: Optional[airflow.utils.edgemodifier.EdgeModifier] = None)[source]¶
Proxy to underlying operator set_upstream method. Required by TaskMixin.
- set_downstream(self, task_or_task_list: Union[airflow.models.taskmixin.TaskMixin, Sequence[airflow.models.taskmixin.TaskMixin]], edge_modifier: Optional[airflow.utils.edgemodifier.EdgeModifier] = None)[source]¶
Proxy to underlying operator set_downstream method. Required by TaskMixin.