|
| 1 | +<div class="wide-logos"> |
| 2 | + <p><img src="/posts/assets/airflow.png" alt="airflow" /></p> |
| 3 | +</div> |
| 4 | + |
| 5 | +<p>Airflow’s context dictionary can be found in the <code class="language-plaintext highlighter-rouge">get_template_context</code> method, |
| 6 | +in Airflow’s |
| 7 | +<a href="https://github.com/databricks/incubator-airflow/blob/master/airflow/models.py">models.py</a>.</p> |
| 8 | + |
| 9 | +<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span> |
| 10 | + <span class="s">'dag'</span><span class="p">:</span> <span class="n">task</span><span class="p">.</span><span class="n">dag</span><span class="p">,</span> |
| 11 | + <span class="s">'ds'</span><span class="p">:</span> <span class="n">ds</span><span class="p">,</span> |
| 12 | + <span class="s">'ds_nodash'</span><span class="p">:</span> <span class="n">ds_nodash</span><span class="p">,</span> |
| 13 | + <span class="s">'ts'</span><span class="p">:</span> <span class="n">ts</span><span class="p">,</span> |
| 14 | + <span class="s">'ts_nodash'</span><span class="p">:</span> <span class="n">ts_nodash</span><span class="p">,</span> |
| 15 | + <span class="s">'yesterday_ds'</span><span class="p">:</span> <span class="n">yesterday_ds</span><span class="p">,</span> |
| 16 | + <span class="s">'yesterday_ds_nodash'</span><span class="p">:</span> <span class="n">yesterday_ds_nodash</span><span class="p">,</span> |
| 17 | + <span class="s">'tomorrow_ds'</span><span class="p">:</span> <span class="n">tomorrow_ds</span><span class="p">,</span> |
| 18 | + <span class="s">'tomorrow_ds_nodash'</span><span class="p">:</span> <span class="n">tomorrow_ds_nodash</span><span class="p">,</span> |
| 19 | + <span class="s">'END_DATE'</span><span class="p">:</span> <span class="n">ds</span><span class="p">,</span> |
| 20 | + <span class="s">'end_date'</span><span class="p">:</span> <span class="n">ds</span><span class="p">,</span> |
| 21 | + <span class="s">'dag_run'</span><span class="p">:</span> <span class="n">dag_run</span><span class="p">,</span> |
| 22 | + <span class="s">'run_id'</span><span class="p">:</span> <span class="n">run_id</span><span class="p">,</span> |
| 23 | + <span class="s">'execution_date'</span><span class="p">:</span> <span class="bp">self</span><span class="p">.</span><span class="n">execution_date</span><span class="p">,</span> |
| 24 | + <span class="s">'prev_execution_date'</span><span class="p">:</span> <span class="n">prev_execution_date</span><span class="p">,</span> |
| 25 | + <span class="s">'next_execution_date'</span><span class="p">:</span> <span class="n">next_execution_date</span><span class="p">,</span> |
| 26 | + <span class="s">'latest_date'</span><span class="p">:</span> <span class="n">ds</span><span class="p">,</span> |
| 27 | + <span class="s">'macros'</span><span class="p">:</span> <span class="n">macros</span><span class="p">,</span> |
| 28 | + <span class="s">'params'</span><span class="p">:</span> <span class="n">params</span><span class="p">,</span> |
| 29 | + <span class="s">'tables'</span><span class="p">:</span> <span class="n">tables</span><span class="p">,</span> |
| 30 | + <span class="s">'task'</span><span class="p">:</span> <span class="n">task</span><span class="p">,</span> |
| 31 | + <span class="s">'task_instance'</span><span class="p">:</span> <span class="bp">self</span><span class="p">,</span> |
| 32 | + <span class="s">'ti'</span><span class="p">:</span> <span class="bp">self</span><span class="p">,</span> |
| 33 | + <span class="s">'task_instance_key_str'</span><span class="p">:</span> <span class="n">ti_key_str</span><span class="p">,</span> |
| 34 | + <span class="s">'conf'</span><span class="p">:</span> <span class="n">configuration</span><span class="p">,</span> |
| 35 | + <span class="s">'test_mode'</span><span class="p">:</span> <span class="bp">self</span><span class="p">.</span><span class="n">test_mode</span><span class="p">,</span> |
| 36 | + <span class="s">'var'</span><span class="p">:</span> <span class="p">{</span> |
| 37 | + <span class="s">'value'</span><span class="p">:</span> <span class="n">VariableAccessor</span><span class="p">(),</span> |
| 38 | + <span class="s">'json'</span><span class="p">:</span> <span class="n">VariableJsonAccessor</span><span class="p">()</span> |
| 39 | + <span class="p">}</span> |
| 40 | +<span class="p">}</span> |
| 41 | +</code></pre></div></div> |
| 42 | + |
| 43 | +<p>An explanation of each item is found in the documentation under |
| 44 | +<a href="https://airflow.apache.org/docs/stable/macros-ref.html">Macros</a>.</p> |
| 45 | + |
| 46 | +<p>Incidentally, you can generate the context from a TaskInstance.</p> |
| 47 | + |
| 48 | +<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">context</span> <span class="o">=</span> <span class="n">TaskInstance</span><span class="p">(</span> |
| 49 | + <span class="n">task</span><span class="o">=</span><span class="n">task</span><span class="p">,</span> |
| 50 | + <span class="n">execution_date</span><span class="o">=</span><span class="n">datetime</span><span class="p">.</span><span class="n">now</span><span class="p">()</span> |
| 51 | +<span class="p">).</span><span class="n">get_template_context</span><span class="p">()</span> |
| 52 | +</code></pre></div></div> |
0 commit comments