title: Is there any way to pass multiple arguments to a python callable through XComArgs in Airflow?
body: <p>Since version 2.0.0 of Apache Airflow, we can pass the output from one function as an input to another, easily through the decorator <code>@task</code>, as shown in the code below</p>
  <pre><code>from airflow import DAG
  from airflow.decorators import task
  from airflow.utils.dates import days_ago
  from airflow.operators.python import PythonOperator
  
  @task(multiple_outputs=True)
  def values():
      return {
          &quot;value_one&quot;: &quot;I'm a value!&quot;,
          &quot;value_two&quot;: &quot;I'm another value!&quot;,
      }
  
  @task
  def show(value_one, value_two):
      print(value_one, value_two)
  
  with DAG(
      dag_id=&quot;task_decorator&quot;,
      start_date=days_ago(1),
      schedule_interval=None,
  ) as dag:
  
      values = values()
      show(values[&quot;value_one&quot;], values[&quot;value_two&quot;])
  </code></pre>
  <p>A similar version of the above code, using only XComArgs (feature behind <code>@task</code>), can be done as follows</p>
  <pre><code>from airflow import DAG
  from airflow.utils.dates import days_ago
  from airflow.operators.python import PythonOperator
  
  def values():
      return {
          &quot;value_one&quot;: &quot;I'm a value!&quot;,
          &quot;value_two&quot;: &quot;I'm another value!&quot;,
      }
  
  def show(value):
      print(value)
  
  with DAG(
      dag_id=&quot;task_decorator&quot;,
      start_date=days_ago(1),
      schedule_interval=None,
  ) as dag:
  
      values_task = PythonOperator(
          task_id=&quot;values&quot;,
          python_callable=values,
      )
      show_task = PythonOperator(
          task_id=&quot;show&quot;,
          python_callable=show,
          op_args=[values_task.output],
      )
      values_task &gt;&gt; show_task
  </code></pre>
  <p>However, that way I can't pass the outputs as arguments separately as done using <code>@task</code></p>
  <p>So, does anyone know any workaround to allow something like the code bellow?</p>
  <pre><code>show_task = PythonOperator(
      task_id=&quot;show&quot;,
      python_callable=show,
      op_args=[values_task.output[&quot;value_one&quot;], values_task.output[&quot;value_two&quot;]],
  )
  </code></pre>