http://git-wip-us.apache.org/repos/asf/incubator-airflow-site/blob/1f06fa0e/_modules/airflow/models.html
----------------------------------------------------------------------
diff --git a/_modules/airflow/models.html b/_modules/airflow/models.html
index 6860ce6..49046b8 100644
--- a/_modules/airflow/models.html
+++ b/_modules/airflow/models.html
@@ -202,6 +202,7 @@
 <span class="kn">import</span> <span class="nn">logging</span>
 <span class="kn">import</span> <span class="nn">numbers</span>
 <span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">pendulum</span>
 <span class="kn">import</span> <span class="nn">pickle</span>
 <span class="kn">import</span> <span class="nn">re</span>
 <span class="kn">import</span> <span class="nn">signal</span>
@@ -222,7 +223,9 @@
 <span class="kn">from</span> <span 
class="nn">sqlalchemy.ext.declarative</span> <span class="k">import</span> 
<span class="n">declarative_base</span><span class="p">,</span> <span 
class="n">declared_attr</span>
 <span class="kn">from</span> <span class="nn">sqlalchemy.orm</span> <span 
class="k">import</span> <span class="n">reconstructor</span><span 
class="p">,</span> <span class="n">relationship</span><span class="p">,</span> 
<span class="n">synonym</span>
 
-<span class="kn">from</span> <span class="nn">croniter</span> <span 
class="k">import</span> <span class="n">croniter</span>
+<span class="kn">from</span> <span class="nn">croniter</span> <span 
class="k">import</span> <span class="p">(</span>
+    <span class="n">croniter</span><span class="p">,</span> <span 
class="n">CroniterBadCronError</span><span class="p">,</span> <span 
class="n">CroniterBadDateError</span><span class="p">,</span> <span 
class="n">CroniterNotAlphaError</span>
+<span class="p">)</span>
 <span class="kn">import</span> <span class="nn">six</span>
 
 <span class="kn">from</span> <span class="nn">airflow</span> <span 
class="k">import</span> <span class="n">settings</span><span class="p">,</span> 
<span class="n">utils</span>
@@ -302,6 +305,8 @@
 <span class="sd">    :raises: AirflowException if there&#39;s a problem trying 
to load Fernet</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="k">global</span> <span class="n">_fernet</span>
+    <span class="n">log</span> <span class="o">=</span> <span 
class="n">LoggingMixin</span><span class="p">()</span><span 
class="o">.</span><span class="n">log</span>
+
     <span class="k">if</span> <span class="n">_fernet</span><span 
class="p">:</span>
         <span class="k">return</span> <span class="n">_fernet</span>
     <span class="k">try</span><span class="p">:</span>
@@ -310,18 +315,26 @@
         <span class="n">InvalidFernetToken</span> <span class="o">=</span> 
<span class="n">InvalidToken</span>
 
     <span class="k">except</span> <span 
class="n">BuiltinImportError</span><span class="p">:</span>
-        <span class="n">LoggingMixin</span><span class="p">()</span><span 
class="o">.</span><span class="n">log</span><span class="o">.</span><span 
class="n">warn</span><span class="p">(</span><span 
class="s2">&quot;cryptography not found - values will not be stored 
&quot;</span>
-                                <span 
class="s2">&quot;encrypted.&quot;</span><span class="p">,</span>
-                                <span class="n">exc_info</span><span 
class="o">=</span><span class="mi">1</span><span class="p">)</span>
+        <span class="n">log</span><span class="o">.</span><span 
class="n">warning</span><span class="p">(</span>
+            <span class="s2">&quot;cryptography not found - values will not be 
stored encrypted.&quot;</span>
+        <span class="p">)</span>
         <span class="n">_fernet</span> <span class="o">=</span> <span 
class="n">NullFernet</span><span class="p">()</span>
         <span class="k">return</span> <span class="n">_fernet</span>
 
     <span class="k">try</span><span class="p">:</span>
-        <span class="n">_fernet</span> <span class="o">=</span> <span 
class="n">Fernet</span><span class="p">(</span><span 
class="n">configuration</span><span class="o">.</span><span 
class="n">conf</span><span class="o">.</span><span class="n">get</span><span 
class="p">(</span><span class="s1">&#39;core&#39;</span><span 
class="p">,</span> <span class="s1">&#39;FERNET_KEY&#39;</span><span 
class="p">)</span><span class="o">.</span><span class="n">encode</span><span 
class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span 
class="p">))</span>
-        <span class="n">_fernet</span><span class="o">.</span><span 
class="n">is_encrypted</span> <span class="o">=</span> <span 
class="kc">True</span>
-        <span class="k">return</span> <span class="n">_fernet</span>
+        <span class="n">fernet_key</span> <span class="o">=</span> <span 
class="n">configuration</span><span class="o">.</span><span 
class="n">conf</span><span class="o">.</span><span class="n">get</span><span 
class="p">(</span><span class="s1">&#39;core&#39;</span><span 
class="p">,</span> <span class="s1">&#39;FERNET_KEY&#39;</span><span 
class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">fernet_key</span><span class="p">:</span>
+            <span class="n">log</span><span class="o">.</span><span 
class="n">warning</span><span class="p">(</span>
+                <span class="s2">&quot;empty cryptography key - values will 
not be stored encrypted.&quot;</span>
+            <span class="p">)</span>
+            <span class="n">_fernet</span> <span class="o">=</span> <span 
class="n">NullFernet</span><span class="p">()</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">_fernet</span> <span class="o">=</span> <span 
class="n">Fernet</span><span class="p">(</span><span 
class="n">fernet_key</span><span class="o">.</span><span 
class="n">encode</span><span class="p">(</span><span 
class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
+            <span class="n">_fernet</span><span class="o">.</span><span 
class="n">is_encrypted</span> <span class="o">=</span> <span 
class="kc">True</span>
     <span class="k">except</span> <span class="p">(</span><span 
class="ne">ValueError</span><span class="p">,</span> <span 
class="ne">TypeError</span><span class="p">)</span> <span class="k">as</span> 
<span class="n">ve</span><span class="p">:</span>
-        <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span><span 
class="s2">&quot;Could not create Fernet object: </span><span 
class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="n">ve</span><span 
class="p">))</span></div>
+        <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span><span 
class="s2">&quot;Could not create Fernet object: </span><span 
class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="n">ve</span><span 
class="p">))</span>
+
+    <span class="k">return</span> <span class="n">_fernet</span></div>
 
 
 <span class="c1"># Used by DAG context_managers</span>
@@ -496,7 +509,8 @@
             <span class="k">return</span> <span class="n">found_dags</span>
 
         <span class="n">mods</span> <span class="o">=</span> <span 
class="p">[]</span>
-        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">zipfile</span><span class="o">.</span><span 
class="n">is_zipfile</span><span class="p">(</span><span 
class="n">filepath</span><span class="p">):</span>
+        <span class="n">is_zipfile</span> <span class="o">=</span> <span 
class="n">zipfile</span><span class="o">.</span><span 
class="n">is_zipfile</span><span class="p">(</span><span 
class="n">filepath</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">is_zipfile</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">safe_mode</span> <span 
class="ow">and</span> <span class="n">os</span><span class="o">.</span><span 
class="n">path</span><span class="o">.</span><span class="n">isfile</span><span 
class="p">(</span><span class="n">filepath</span><span class="p">):</span>
                 <span class="k">with</span> <span class="nb">open</span><span 
class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span 
class="s1">&#39;rb&#39;</span><span class="p">)</span> <span 
class="k">as</span> <span class="n">f</span><span class="p">:</span>
                     <span class="n">content</span> <span class="o">=</span> 
<span class="n">f</span><span class="o">.</span><span 
class="n">read</span><span class="p">()</span>
@@ -568,13 +582,23 @@
                 <span class="k">if</span> <span 
class="nb">isinstance</span><span class="p">(</span><span 
class="n">dag</span><span class="p">,</span> <span class="n">DAG</span><span 
class="p">):</span>
                     <span class="k">if</span> <span class="ow">not</span> 
<span class="n">dag</span><span class="o">.</span><span 
class="n">full_filepath</span><span class="p">:</span>
                         <span class="n">dag</span><span 
class="o">.</span><span class="n">full_filepath</span> <span class="o">=</span> 
<span class="n">filepath</span>
-                        <span class="k">if</span> <span 
class="n">dag</span><span class="o">.</span><span class="n">fileloc</span> 
<span class="o">!=</span> <span class="n">filepath</span><span 
class="p">:</span>
+                        <span class="k">if</span> <span 
class="n">dag</span><span class="o">.</span><span class="n">fileloc</span> 
<span class="o">!=</span> <span class="n">filepath</span> <span 
class="ow">and</span> <span class="ow">not</span> <span 
class="n">is_zipfile</span><span class="p">:</span>
                             <span class="n">dag</span><span 
class="o">.</span><span class="n">fileloc</span> <span class="o">=</span> <span 
class="n">filepath</span>
                     <span class="k">try</span><span class="p">:</span>
                         <span class="n">dag</span><span 
class="o">.</span><span class="n">is_subdag</span> <span class="o">=</span> 
<span class="kc">False</span>
                         <span class="bp">self</span><span 
class="o">.</span><span class="n">bag_dag</span><span class="p">(</span><span 
class="n">dag</span><span class="p">,</span> <span 
class="n">parent_dag</span><span class="o">=</span><span 
class="n">dag</span><span class="p">,</span> <span 
class="n">root_dag</span><span class="o">=</span><span 
class="n">dag</span><span class="p">)</span>
+                        <span class="k">if</span> <span 
class="nb">isinstance</span><span class="p">(</span><span 
class="n">dag</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">six</span><span class="o">.</span><span 
class="n">string_types</span><span class="p">):</span>
+                            <span class="n">croniter</span><span 
class="p">(</span><span class="n">dag</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">)</span>
                         <span class="n">found_dags</span><span 
class="o">.</span><span class="n">append</span><span class="p">(</span><span 
class="n">dag</span><span class="p">)</span>
                         <span class="n">found_dags</span> <span 
class="o">+=</span> <span class="n">dag</span><span class="o">.</span><span 
class="n">subdags</span>
+                    <span class="k">except</span> <span 
class="p">(</span><span class="n">CroniterBadCronError</span><span 
class="p">,</span>
+                            <span class="n">CroniterBadDateError</span><span 
class="p">,</span>
+                            <span class="n">CroniterNotAlphaError</span><span 
class="p">)</span> <span class="k">as</span> <span class="n">cron_e</span><span 
class="p">:</span>
+                        <span class="bp">self</span><span 
class="o">.</span><span class="n">log</span><span class="o">.</span><span 
class="n">exception</span><span class="p">(</span><span class="s2">&quot;Failed 
to bag_dag: </span><span class="si">%s</span><span 
class="s2">&quot;</span><span class="p">,</span> <span 
class="n">dag</span><span class="o">.</span><span 
class="n">full_filepath</span><span class="p">)</span>
+                        <span class="bp">self</span><span 
class="o">.</span><span class="n">import_errors</span><span 
class="p">[</span><span class="n">dag</span><span class="o">.</span><span 
class="n">full_filepath</span><span class="p">]</span> <span class="o">=</span> 
\
+                            <span class="s2">&quot;Invalid Cron expression: 
&quot;</span> <span class="o">+</span> <span class="nb">str</span><span 
class="p">(</span><span class="n">cron_e</span><span class="p">)</span>
+                        <span class="bp">self</span><span 
class="o">.</span><span class="n">file_last_changed</span><span 
class="p">[</span><span class="n">dag</span><span class="o">.</span><span 
class="n">full_filepath</span><span class="p">]</span> <span class="o">=</span> 
\
+                            <span class="n">file_last_changed_on_disk</span>
                     <span class="k">except</span> <span 
class="n">AirflowDagCycleException</span> <span class="k">as</span> <span 
class="n">cycle_exception</span><span class="p">:</span>
                         <span class="bp">self</span><span 
class="o">.</span><span class="n">log</span><span class="o">.</span><span 
class="n">exception</span><span class="p">(</span><span class="s2">&quot;Failed 
to bag_dag: </span><span class="si">%s</span><span 
class="s2">&quot;</span><span class="p">,</span> <span 
class="n">dag</span><span class="o">.</span><span 
class="n">full_filepath</span><span class="p">)</span>
                         <span class="bp">self</span><span 
class="o">.</span><span class="n">import_errors</span><span 
class="p">[</span><span class="n">dag</span><span class="o">.</span><span 
class="n">full_filepath</span><span class="p">]</span> <span class="o">=</span> 
<span class="nb">str</span><span class="p">(</span><span 
class="n">cycle_exception</span><span class="p">)</span>
@@ -669,10 +693,12 @@
 <span class="sd">        Given a file path or a folder, this method looks for 
python modules,</span>
 <span class="sd">        imports them and adds them to the dagbag 
collection.</span>
 
-<span class="sd">        Note that if a .airflowignore file is found while 
processing,</span>
-<span class="sd">        the directory, it will behaves much like a .gitignore 
does,</span>
+<span class="sd">        Note that if a ``.airflowignore`` file is found while 
processing</span>
+<span class="sd">        the directory, it will behave much like a 
``.gitignore``,</span>
 <span class="sd">        ignoring files that match any of the regex patterns 
specified</span>
-<span class="sd">        in the file. **Note**: The patterns in .airflowignore 
are treated as</span>
+<span class="sd">        in the file.</span>
+
+<span class="sd">        **Note**: The patterns in .airflowignore are treated 
as</span>
 <span class="sd">        un-anchored regexes, not shell-like glob 
patterns.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">start_dttm</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">utcnow</span><span class="p">()</span>
@@ -1268,10 +1294,10 @@
         <span class="n">BASE_URL</span> <span class="o">=</span> <span 
class="n">configuration</span><span class="o">.</span><span 
class="n">conf</span><span class="o">.</span><span class="n">get</span><span 
class="p">(</span><span class="s1">&#39;webserver&#39;</span><span 
class="p">,</span> <span class="s1">&#39;BASE_URL&#39;</span><span 
class="p">)</span>
         <span class="k">if</span> <span class="n">settings</span><span 
class="o">.</span><span class="n">RBAC</span><span class="p">:</span>
             <span class="k">return</span> <span class="n">BASE_URL</span> 
<span class="o">+</span> <span class="p">(</span>
-                <span class="s2">&quot;/log/list/&quot;</span>
-                <span class="s2">&quot;?_flt_3_dag_id=</span><span 
class="si">{self.dag_id}</span><span class="s2">&quot;</span>
-                <span class="s2">&quot;&amp;_flt_3_task_id=</span><span 
class="si">{self.task_id}</span><span class="s2">&quot;</span>
-                <span class="s2">&quot;&amp;_flt_3_execution_date=</span><span 
class="si">{iso}</span><span class="s2">&quot;</span>
+                <span class="s2">&quot;/log?&quot;</span>
+                <span class="s2">&quot;execution_date=</span><span 
class="si">{iso}</span><span class="s2">&quot;</span>
+                <span class="s2">&quot;&amp;task_id=</span><span 
class="si">{self.task_id}</span><span class="s2">&quot;</span>
+                <span class="s2">&quot;&amp;dag_id=</span><span 
class="si">{self.dag_id}</span><span class="s2">&quot;</span>
             <span class="p">)</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="o">**</span><span 
class="nb">locals</span><span class="p">())</span>
         <span class="k">else</span><span class="p">:</span>
             <span class="k">return</span> <span class="n">BASE_URL</span> 
<span class="o">+</span> <span class="p">(</span>
@@ -1384,7 +1410,7 @@
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Returns a tuple that identifies the task instance 
uniquely</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="k">return</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">dag_id</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">task_id</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">execution_date</span>
+        <span class="k">return</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">dag_id</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">task_id</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">execution_date</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">try_number</span>
 
     <span class="nd">@provide_session</span>
     <span class="k">def</span> <span class="nf">set_state</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">state</span><span class="p">,</span> <span 
class="n">session</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
@@ -1834,14 +1860,6 @@
             <span class="bp">self</span><span class="o">.</span><span 
class="n">handle_failure</span><span class="p">(</span><span 
class="n">e</span><span class="p">,</span> <span 
class="n">test_mode</span><span class="p">,</span> <span 
class="n">context</span><span class="p">)</span>
             <span class="k">raise</span>
 
-        <span class="c1"># Recording SUCCESS</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">end_date</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">utcnow</span><span class="p">()</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">set_duration</span><span class="p">()</span>
-        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">test_mode</span><span class="p">:</span>
-            <span class="n">session</span><span class="o">.</span><span 
class="n">add</span><span class="p">(</span><span class="n">Log</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">state</span><span class="p">,</span> <span 
class="bp">self</span><span class="p">))</span>
-            <span class="n">session</span><span class="o">.</span><span 
class="n">merge</span><span class="p">(</span><span class="bp">self</span><span 
class="p">)</span>
-        <span class="n">session</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span>
-
         <span class="c1"># Success callback</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">task</span><span 
class="o">.</span><span class="n">on_success_callback</span><span 
class="p">:</span>
@@ -1850,6 +1868,12 @@
             <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">error</span><span 
class="p">(</span><span class="s2">&quot;Failed when executing success 
callback&quot;</span><span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span 
class="n">exception</span><span class="p">(</span><span 
class="n">e3</span><span class="p">)</span>
 
+        <span class="c1"># Recording SUCCESS</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">end_date</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">utcnow</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">set_duration</span><span class="p">()</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">test_mode</span><span class="p">:</span>
+            <span class="n">session</span><span class="o">.</span><span 
class="n">add</span><span class="p">(</span><span class="n">Log</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">state</span><span class="p">,</span> <span 
class="bp">self</span><span class="p">))</span>
+            <span class="n">session</span><span class="o">.</span><span 
class="n">merge</span><span class="p">(</span><span class="bp">self</span><span 
class="p">)</span>
         <span class="n">session</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span>
 
     <span class="nd">@provide_session</span>
@@ -1906,6 +1930,9 @@
         <span class="c1"># Log failure duration</span>
         <span class="n">session</span><span class="o">.</span><span 
class="n">add</span><span class="p">(</span><span 
class="n">TaskFail</span><span class="p">(</span><span 
class="n">task</span><span class="p">,</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">execution_date</span><span class="p">,</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">start_date</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">end_date</span><span class="p">))</span>
 
+        <span class="k">if</span> <span class="n">context</span> <span 
class="ow">is</span> <span class="ow">not</span> <span 
class="kc">None</span><span class="p">:</span>
+            <span class="n">context</span><span class="p">[</span><span 
class="s1">&#39;exception&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="n">error</span>
+
         <span class="c1"># Let&#39;s go deeper</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="c1"># Since this function is called only when the TI 
state is running,</span>
@@ -2283,8 +2310,8 @@
         <span class="bp">self</span><span class="o">.</span><span 
class="n">owner</span> <span class="o">=</span> <span class="n">owner</span> 
<span class="ow">or</span> <span class="n">task_owner</span></div>
 
 
-<span class="k">class</span> <span class="nc">SkipMixin</span><span 
class="p">(</span><span class="n">LoggingMixin</span><span class="p">):</span>
-    <span class="nd">@provide_session</span>
+<div class="viewcode-block" id="SkipMixin"><a class="viewcode-back" 
href="../../code.html#airflow.models.SkipMixin">[docs]</a><span 
class="k">class</span> <span class="nc">SkipMixin</span><span 
class="p">(</span><span class="n">LoggingMixin</span><span class="p">):</span>
+<div class="viewcode-block" id="SkipMixin.skip"><a class="viewcode-back" 
href="../../code.html#airflow.models.SkipMixin.skip">[docs]</a>    <span 
class="nd">@provide_session</span>
     <span class="k">def</span> <span class="nf">skip</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">dag_run</span><span class="p">,</span> <span 
class="n">execution_date</span><span class="p">,</span> <span 
class="n">tasks</span><span class="p">,</span> <span 
class="n">session</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Sets tasks instances to skipped from the same dag 
run.</span>
@@ -2322,7 +2349,7 @@
                 <span class="n">ti</span><span class="o">.</span><span 
class="n">end_date</span> <span class="o">=</span> <span class="n">now</span>
                 <span class="n">session</span><span class="o">.</span><span 
class="n">merge</span><span class="p">(</span><span class="n">ti</span><span 
class="p">)</span>
 
-            <span class="n">session</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span>
+            <span class="n">session</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span></div></div>
 
 
 <div class="viewcode-block" id="BaseOperator"><a class="viewcode-back" 
href="../../code.html#airflow.models.BaseOperator">[docs]</a><span 
class="nd">@functools</span><span class="o">.</span><span 
class="n">total_ordering</span>
@@ -2450,6 +2477,7 @@
 <span class="sd">    :type on_failure_callback: callable</span>
 <span class="sd">    :param on_retry_callback: much like the 
``on_failure_callback`` except</span>
 <span class="sd">        that it is executed when retries occur.</span>
+<span class="sd">    :type on_retry_callback: callable</span>
 <span class="sd">    :param on_success_callback: much like the 
``on_failure_callback`` except</span>
 <span class="sd">        that it is executed when the task succeeds.</span>
 <span class="sd">    :type on_success_callback: callable</span>
@@ -2472,14 +2500,17 @@
 <span class="sd">    :param executor_config: Additional task-level 
configuration parameters that are</span>
 <span class="sd">        interpreted by a specific executor. Parameters are 
namespaced by the name of</span>
 <span class="sd">        executor.</span>
-<span class="sd">        ``example: to run this task in a specific docker 
container through</span>
-<span class="sd">        the KubernetesExecutor</span>
-<span class="sd">        MyOperator(...,</span>
-<span class="sd">            executor_config={</span>
-<span class="sd">            &quot;KubernetesExecutor&quot;:</span>
-<span class="sd">                {&quot;image&quot;: 
&quot;myCustomDockerImage&quot;}</span>
-<span class="sd">                }</span>
-<span class="sd">        )``</span>
+
+<span class="sd">        **Example**: to run this task in a specific docker 
container through</span>
+<span class="sd">        the KubernetesExecutor ::</span>
+
+<span class="sd">            MyOperator(...,</span>
+<span class="sd">                executor_config={</span>
+<span class="sd">                &quot;KubernetesExecutor&quot;:</span>
+<span class="sd">                    {&quot;image&quot;: 
&quot;myCustomDockerImage&quot;}</span>
+<span class="sd">                    }</span>
+<span class="sd">            )</span>
+
 <span class="sd">    :type executor_config: dict</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -2548,10 +2579,17 @@
         <span class="bp">self</span><span class="o">.</span><span 
class="n">email</span> <span class="o">=</span> <span class="n">email</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">email_on_retry</span> <span class="o">=</span> <span 
class="n">email_on_retry</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">email_on_failure</span> <span class="o">=</span> <span 
class="n">email_on_failure</span>
+
         <span class="bp">self</span><span class="o">.</span><span 
class="n">start_date</span> <span class="o">=</span> <span 
class="n">start_date</span>
         <span class="k">if</span> <span class="n">start_date</span> <span 
class="ow">and</span> <span class="ow">not</span> <span 
class="nb">isinstance</span><span class="p">(</span><span 
class="n">start_date</span><span class="p">,</span> <span 
class="n">datetime</span><span class="p">):</span>
             <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">warning</span><span 
class="p">(</span><span class="s2">&quot;start_date for </span><span 
class="si">%s</span><span class="s2"> isn&#39;t 
datetime.datetime&quot;</span><span class="p">,</span> <span 
class="bp">self</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">start_date</span><span 
class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">start_date</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">convert_to_utc</span><span class="p">(</span><span 
class="n">start_date</span><span class="p">)</span>
+
         <span class="bp">self</span><span class="o">.</span><span 
class="n">end_date</span> <span class="o">=</span> <span 
class="n">end_date</span>
+        <span class="k">if</span> <span class="n">end_date</span><span 
class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">end_date</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">convert_to_utc</span><span class="p">(</span><span 
class="n">end_date</span><span class="p">)</span>
+
         <span class="k">if</span> <span class="ow">not</span> <span 
class="n">TriggerRule</span><span class="o">.</span><span 
class="n">is_valid</span><span class="p">(</span><span 
class="n">trigger_rule</span><span class="p">):</span>
             <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span>
                 <span class="s2">&quot;The trigger_rule must be one of 
</span><span class="si">{all_triggers}</span><span class="s2">,&quot;</span>
@@ -3372,7 +3410,8 @@
                     <span class="n">timezone</span><span 
class="o">.</span><span class="n">parse</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">default_args</span><span class="p">[</span><span 
class="s1">&#39;start_date&#39;</span><span class="p">])</span>
                 <span class="p">)</span>
             <span class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">default_args</span><span class="p">[</span><span 
class="s1">&#39;start_date&#39;</span><span class="p">]</span><span 
class="o">.</span><span class="n">tzinfo</span>
-        <span class="k">else</span><span class="p">:</span>
+
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="nb">hasattr</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="s1">&#39;timezone&#39;</span><span class="p">)</span> <span 
class="ow">or</span> <span class="ow">not</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span> <span class="o">=</span> <span 
class="n">settings</span><span class="o">.</span><span class="n">TIMEZONE</span>
 
         <span class="bp">self</span><span class="o">.</span><span 
class="n">start_date</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">convert_to_utc</span><span class="p">(</span><span 
class="n">start_date</span><span class="p">)</span>
@@ -3477,34 +3516,77 @@
             <span class="n">start_date</span><span class="o">=</span><span 
class="n">start_date</span><span class="p">,</span> <span 
class="n">end_date</span><span class="o">=</span><span 
class="n">end_date</span><span class="p">,</span>
             <span class="n">num</span><span class="o">=</span><span 
class="n">num</span><span class="p">,</span> <span class="n">delta</span><span 
class="o">=</span><span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">)</span>
 
+<div class="viewcode-block" id="DAG.is_fixed_time_schedule"><a 
class="viewcode-back" 
href="../../code.html#airflow.models.DAG.is_fixed_time_schedule">[docs]</a>    
<span class="k">def</span> <span class="nf">is_fixed_time_schedule</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Figures out if the DAG schedule has a fixed time 
(e.g. 3 AM).</span>
+
+<span class="sd">        :return: True if the schedule has a fixed time, False 
if not.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">now</span> <span class="o">=</span> <span 
class="n">datetime</span><span class="o">.</span><span 
class="n">now</span><span class="p">()</span>
+        <span class="n">cron</span> <span class="o">=</span> <span 
class="n">croniter</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">now</span><span class="p">)</span>
+
+        <span class="n">start</span> <span class="o">=</span> <span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_next</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">)</span>
+        <span class="n">cron_next</span> <span class="o">=</span> <span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_next</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">cron_next</span><span 
class="o">.</span><span class="n">minute</span> <span class="o">==</span> <span 
class="n">start</span><span class="o">.</span><span class="n">minute</span> 
<span class="ow">and</span> <span class="n">cron_next</span><span 
class="o">.</span><span class="n">hour</span> <span class="o">==</span> <span 
class="n">start</span><span class="o">.</span><span class="n">hour</span><span 
class="p">:</span>
+            <span class="k">return</span> <span class="kc">True</span>
+
+        <span class="k">return</span> <span class="kc">False</span></div>
+
 <div class="viewcode-block" id="DAG.following_schedule"><a 
class="viewcode-back" 
href="../../code.html#airflow.models.DAG.following_schedule">[docs]</a>    
<span class="k">def</span> <span class="nf">following_schedule</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">dttm</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Calculates the following schedule for this dag in 
local time</span>
+<span class="sd">        Calculates the following schedule for this dag in 
UTC.</span>
 
 <span class="sd">        :param dttm: utc datetime</span>
 <span class="sd">        :return: utc datetime</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">six</span><span class="o">.</span><span 
class="n">string_types</span><span class="p">):</span>
-            <span class="n">dttm</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_naive</span><span class="p">(</span><span 
class="n">dttm</span><span class="p">,</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">timezone</span><span class="p">)</span>
-            <span class="n">cron</span> <span class="o">=</span> <span 
class="n">croniter</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">dttm</span><span class="p">)</span>
-            <span class="n">following</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_aware</span><span class="p">(</span><span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_next</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">),</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">)</span>
+            <span class="c1"># we don&#39;t want to rely on the transitions 
created by</span>
+            <span class="c1"># croniter as they are not always correct</span>
+            <span class="n">dttm</span> <span class="o">=</span> <span 
class="n">pendulum</span><span class="o">.</span><span 
class="n">instance</span><span class="p">(</span><span 
class="n">dttm</span><span class="p">)</span>
+            <span class="n">naive</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_naive</span><span class="p">(</span><span 
class="n">dttm</span><span class="p">,</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">timezone</span><span class="p">)</span>
+            <span class="n">cron</span> <span class="o">=</span> <span 
class="n">croniter</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">naive</span><span class="p">)</span>
+
+            <span class="c1"># We assume that DST transitions happen on the 
minute/hour</span>
+            <span class="k">if</span> <span class="ow">not</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">is_fixed_time_schedule</span><span class="p">():</span>
+                <span class="c1"># relative offset (eg. every 5 minutes)</span>
+                <span class="n">delta</span> <span class="o">=</span> <span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_next</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">)</span> <span class="o">-</span> 
<span class="n">naive</span>
+                <span class="n">following</span> <span class="o">=</span> 
<span class="n">dttm</span><span class="o">.</span><span 
class="n">in_timezone</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">)</span><span class="o">.</span><span 
class="n">add_timedelta</span><span class="p">(</span><span 
class="n">delta</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c1"># absolute (e.g. 3 AM)</span>
+                <span class="n">naive</span> <span class="o">=</span> <span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_next</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">)</span>
+                <span class="n">tz</span> <span class="o">=</span> <span 
class="n">pendulum</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="o">.</span><span 
class="n">name</span><span class="p">)</span>
+                <span class="n">following</span> <span class="o">=</span> 
<span class="n">timezone</span><span class="o">.</span><span 
class="n">make_aware</span><span class="p">(</span><span 
class="n">naive</span><span class="p">,</span> <span class="n">tz</span><span 
class="p">)</span>
             <span class="k">return</span> <span class="n">timezone</span><span 
class="o">.</span><span class="n">convert_to_utc</span><span 
class="p">(</span><span class="n">following</span><span class="p">)</span>
         <span class="k">elif</span> <span class="nb">isinstance</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">timedelta</span><span class="p">):</span>
             <span class="k">return</span> <span class="n">dttm</span> <span 
class="o">+</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span></div>
 
 <div class="viewcode-block" id="DAG.previous_schedule"><a 
class="viewcode-back" 
href="../../code.html#airflow.models.DAG.previous_schedule">[docs]</a>    <span 
class="k">def</span> <span class="nf">previous_schedule</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">dttm</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Calculates the previous schedule for this dag in 
local time</span>
+<span class="sd">        Calculates the previous schedule for this dag in 
UTC</span>
 
 <span class="sd">        :param dttm: utc datetime</span>
 <span class="sd">        :return: utc datetime</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">if</span> <span class="nb">isinstance</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">six</span><span class="o">.</span><span 
class="n">string_types</span><span class="p">):</span>
-            <span class="n">dttm</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_naive</span><span class="p">(</span><span 
class="n">dttm</span><span class="p">,</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">timezone</span><span class="p">)</span>
-            <span class="n">cron</span> <span class="o">=</span> <span 
class="n">croniter</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">dttm</span><span class="p">)</span>
-            <span class="n">prev</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_aware</span><span class="p">(</span><span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_prev</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">),</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">)</span>
-            <span class="k">return</span> <span class="n">timezone</span><span 
class="o">.</span><span class="n">convert_to_utc</span><span 
class="p">(</span><span class="n">prev</span><span class="p">)</span>
-        <span class="k">elif</span> <span class="nb">isinstance</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">timedelta</span><span class="p">):</span>
+            <span class="c1"># we don&#39;t want to rely on the transitions 
created by</span>
+            <span class="c1"># croniter as they are not always correct</span>
+            <span class="n">dttm</span> <span class="o">=</span> <span 
class="n">pendulum</span><span class="o">.</span><span 
class="n">instance</span><span class="p">(</span><span 
class="n">dttm</span><span class="p">)</span>
+            <span class="n">naive</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_naive</span><span class="p">(</span><span 
class="n">dttm</span><span class="p">,</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">timezone</span><span class="p">)</span>
+            <span class="n">cron</span> <span class="o">=</span> <span 
class="n">croniter</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span><span class="p">,</span> <span 
class="n">naive</span><span class="p">)</span>
+
+            <span class="c1"># We assume that DST transitions happen on the 
minute/hour</span>
+            <span class="k">if</span> <span class="ow">not</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">is_fixed_time_schedule</span><span class="p">():</span>
+                <span class="c1"># relative offset (eg. every 5 minutes)</span>
+                <span class="n">delta</span> <span class="o">=</span> <span 
class="n">naive</span> <span class="o">-</span> <span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_prev</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">)</span>
+                <span class="n">previous</span> <span class="o">=</span> <span 
class="n">dttm</span><span class="o">.</span><span 
class="n">in_timezone</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">)</span><span class="o">.</span><span 
class="n">subtract_timedelta</span><span class="p">(</span><span 
class="n">delta</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c1"># absolute (e.g. 3 AM)</span>
+                <span class="n">naive</span> <span class="o">=</span> <span 
class="n">cron</span><span class="o">.</span><span 
class="n">get_prev</span><span class="p">(</span><span 
class="n">datetime</span><span class="p">)</span>
+                <span class="n">tz</span> <span class="o">=</span> <span 
class="n">pendulum</span><span class="o">.</span><span 
class="n">timezone</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">timezone</span><span class="o">.</span><span 
class="n">name</span><span class="p">)</span>
+                <span class="n">previous</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">make_aware</span><span class="p">(</span><span 
class="n">naive</span><span class="p">,</span> <span class="n">tz</span><span 
class="p">)</span>
+            <span class="k">return</span> <span class="n">timezone</span><span 
class="o">.</span><span class="n">convert_to_utc</span><span 
class="p">(</span><span class="n">previous</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">_schedule_interval</span> <span 
class="ow">is</span> <span class="ow">not</span> <span 
class="kc">None</span><span class="p">:</span>
             <span class="k">return</span> <span class="n">dttm</span> <span 
class="o">-</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">_schedule_interval</span></div>
 
 <div class="viewcode-block" id="DAG.get_run_dates"><a class="viewcode-back" 
href="../../code.html#airflow.models.DAG.get_run_dates">[docs]</a>    <span 
class="k">def</span> <span class="nf">get_run_dates</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">start_date</span><span class="p">,</span> <span 
class="n">end_date</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
@@ -3915,9 +3997,11 @@
             <span class="n">only_running</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
             <span class="n">confirm_prompt</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
             <span class="n">include_subdags</span><span 
class="o">=</span><span class="kc">True</span><span class="p">,</span>
+            <span class="n">include_parentdag</span><span 
class="o">=</span><span class="kc">True</span><span class="p">,</span>
             <span class="n">reset_dag_runs</span><span class="o">=</span><span 
class="kc">True</span><span class="p">,</span>
             <span class="n">dry_run</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
             <span class="n">session</span><span class="o">=</span><span 
class="kc">None</span><span class="p">,</span>
+            <span class="n">get_tis</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
     <span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Clears a set of task instances associated with the 
current dag for</span>
@@ -3938,6 +4022,25 @@
             <span class="n">tis</span> <span class="o">=</span> <span 
class="n">session</span><span class="o">.</span><span 
class="n">query</span><span class="p">(</span><span class="n">TI</span><span 
class="p">)</span><span class="o">.</span><span class="n">filter</span><span 
class="p">(</span><span class="n">TI</span><span class="o">.</span><span 
class="n">dag_id</span> <span class="o">==</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">dag_id</span><span class="p">)</span>
             <span class="n">tis</span> <span class="o">=</span> <span 
class="n">tis</span><span class="o">.</span><span class="n">filter</span><span 
class="p">(</span><span class="n">TI</span><span class="o">.</span><span 
class="n">task_id</span><span class="o">.</span><span class="n">in_</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">task_ids</span><span class="p">))</span>
 
+        <span class="k">if</span> <span class="n">include_parentdag</span> 
<span class="ow">and</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">is_subdag</span><span class="p">:</span>
+
+            <span class="n">p_dag</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">parent_dag</span><span class="o">.</span><span 
class="n">sub_dag</span><span class="p">(</span>
+                <span class="n">task_regex</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">dag_id</span><span class="o">.</span><span 
class="n">split</span><span class="p">(</span><span 
class="s1">&#39;.&#39;</span><span class="p">)[</span><span 
class="mi">1</span><span class="p">],</span>
+                <span class="n">include_upstream</span><span 
class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                <span class="n">include_downstream</span><span 
class="o">=</span><span class="kc">True</span><span class="p">)</span>
+
+            <span class="n">tis</span> <span class="o">=</span> <span 
class="n">tis</span><span class="o">.</span><span class="n">union</span><span 
class="p">(</span><span class="n">p_dag</span><span class="o">.</span><span 
class="n">clear</span><span class="p">(</span>
+                <span class="n">start_date</span><span class="o">=</span><span 
class="n">start_date</span><span class="p">,</span> <span 
class="n">end_date</span><span class="o">=</span><span 
class="n">end_date</span><span class="p">,</span>
+                <span class="n">only_failed</span><span 
class="o">=</span><span class="n">only_failed</span><span class="p">,</span>
+                <span class="n">only_running</span><span 
class="o">=</span><span class="n">only_running</span><span class="p">,</span>
+                <span class="n">confirm_prompt</span><span 
class="o">=</span><span class="n">confirm_prompt</span><span class="p">,</span>
+                <span class="n">include_subdags</span><span 
class="o">=</span><span class="n">include_subdags</span><span class="p">,</span>
+                <span class="n">include_parentdag</span><span 
class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                <span class="n">reset_dag_runs</span><span 
class="o">=</span><span class="n">reset_dag_runs</span><span class="p">,</span>
+                <span class="n">get_tis</span><span class="o">=</span><span 
class="kc">True</span><span class="p">,</span>
+                <span class="n">session</span><span class="o">=</span><span 
class="n">session</span><span class="p">,</span>
+            <span class="p">))</span>
+
         <span class="k">if</span> <span class="n">start_date</span><span 
class="p">:</span>
             <span class="n">tis</span> <span class="o">=</span> <span 
class="n">tis</span><span class="o">.</span><span class="n">filter</span><span 
class="p">(</span><span class="n">TI</span><span class="o">.</span><span 
class="n">execution_date</span> <span class="o">&gt;=</span> <span 
class="n">start_date</span><span class="p">)</span>
         <span class="k">if</span> <span class="n">end_date</span><span 
class="p">:</span>
@@ -3947,6 +4050,9 @@
         <span class="k">if</span> <span class="n">only_running</span><span 
class="p">:</span>
             <span class="n">tis</span> <span class="o">=</span> <span 
class="n">tis</span><span class="o">.</span><span class="n">filter</span><span 
class="p">(</span><span class="n">TI</span><span class="o">.</span><span 
class="n">state</span> <span class="o">==</span> <span 
class="n">State</span><span class="o">.</span><span 
class="n">RUNNING</span><span class="p">)</span>
 
+        <span class="k">if</span> <span class="n">get_tis</span><span 
class="p">:</span>
+            <span class="k">return</span> <span class="n">tis</span>
+
         <span class="k">if</span> <span class="n">dry_run</span><span 
class="p">:</span>
             <span class="n">tis</span> <span class="o">=</span> <span 
class="n">tis</span><span class="o">.</span><span class="n">all</span><span 
class="p">()</span>
             <span class="n">session</span><span class="o">.</span><span 
class="n">expunge_all</span><span class="p">()</span>
@@ -3990,6 +4096,7 @@
             <span class="n">only_running</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
             <span class="n">confirm_prompt</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
             <span class="n">include_subdags</span><span 
class="o">=</span><span class="kc">True</span><span class="p">,</span>
+            <span class="n">include_parentdag</span><span 
class="o">=</span><span class="kc">False</span><span class="p">,</span>
             <span class="n">reset_dag_runs</span><span class="o">=</span><span 
class="kc">True</span><span class="p">,</span>
             <span class="n">dry_run</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span>
     <span class="p">):</span>
@@ -4002,6 +4109,7 @@
                 <span class="n">only_running</span><span 
class="o">=</span><span class="n">only_running</span><span class="p">,</span>
                 <span class="n">confirm_prompt</span><span 
class="o">=</span><span class="kc">False</span><span class="p">,</span>
                 <span class="n">include_subdags</span><span 
class="o">=</span><span class="n">include_subdags</span><span class="p">,</span>
+                <span class="n">include_parentdag</span><span 
class="o">=</span><span class="n">include_parentdag</span><span 
class="p">,</span>
                 <span class="n">reset_dag_runs</span><span 
class="o">=</span><span class="n">reset_dag_runs</span><span class="p">,</span>
                 <span class="n">dry_run</span><span class="o">=</span><span 
class="kc">True</span><span class="p">)</span>
             <span class="n">all_tis</span><span class="o">.</span><span 
class="n">extend</span><span class="p">(</span><span class="n">tis</span><span 
class="p">)</span>
@@ -4378,7 +4486,8 @@
         <span class="k">for</span> <span class="n">dag</span> <span 
class="ow">in</span> <span class="n">session</span><span 
class="o">.</span><span class="n">query</span><span class="p">(</span>
                 <span class="n">DagModel</span><span class="p">)</span><span 
class="o">.</span><span class="n">filter</span><span class="p">(</span><span 
class="o">~</span><span class="n">DagModel</span><span class="o">.</span><span 
class="n">dag_id</span><span class="o">.</span><span class="n">in_</span><span 
class="p">(</span><span class="n">active_dag_ids</span><span 
class="p">))</span><span class="o">.</span><span class="n">all</span><span 
class="p">():</span>
             <span class="n">dag</span><span class="o">.</span><span 
class="n">is_active</span> <span class="o">=</span> <span 
class="kc">False</span>
-            <span class="n">session</span><span class="o">.</span><span 
class="n">merge</span><span class="p">(</span><span class="n">dag</span><span 
class="p">)</span></div>
+            <span class="n">session</span><span class="o">.</span><span 
class="n">merge</span><span class="p">(</span><span class="n">dag</span><span 
class="p">)</span>
+        <span class="n">session</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span></div>
 
 <div class="viewcode-block" id="DAG.deactivate_stale_dags"><a 
class="viewcode-back" 
href="../../code.html#airflow.models.DAG.deactivate_stale_dags">[docs]</a>    
<span class="nd">@staticmethod</span>
     <span class="nd">@provide_session</span>
@@ -4915,7 +5024,7 @@
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="c1"># unfortunately sqlalchemy does not know upsert</span>
         <span class="n">qry</span> <span class="o">=</span> <span 
class="n">session</span><span class="o">.</span><span 
class="n">query</span><span class="p">(</span><span 
class="n">DagStat</span><span class="p">)</span><span class="o">.</span><span 
class="n">filter</span><span class="p">(</span><span 
class="n">DagStat</span><span class="o">.</span><span class="n">dag_id</span> 
<span class="o">==</span> <span class="n">dag_id</span><span 
class="p">)</span><span class="o">.</span><span class="n">all</span><span 
class="p">()</span>
-        <span class="n">states</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">dag_stat</span><span class="o">.</span><span 
class="n">state</span> <span class="k">for</span> <span 
class="n">dag_stat</span> <span class="ow">in</span> <span 
class="n">qry</span><span class="p">]</span>
+        <span class="n">states</span> <span class="o">=</span> <span 
class="p">{</span><span class="n">dag_stat</span><span class="o">.</span><span 
class="n">state</span> <span class="k">for</span> <span 
class="n">dag_stat</span> <span class="ow">in</span> <span 
class="n">qry</span><span class="p">}</span>
         <span class="k">for</span> <span class="n">state</span> <span 
class="ow">in</span> <span class="n">State</span><span class="o">.</span><span 
class="n">dag_states</span><span class="p">:</span>
             <span class="k">if</span> <span class="n">state</span> <span 
class="ow">not</span> <span class="ow">in</span> <span 
class="n">states</span><span class="p">:</span>
                 <span class="k">try</span><span class="p">:</span>
@@ -4972,6 +5081,8 @@
     <span class="k">def</span> <span class="nf">set_state</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">state</span><span class="p">):</span>
         <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">_state</span> <span class="o">!=</span> <span 
class="n">state</span><span class="p">:</span>
             <span class="bp">self</span><span class="o">.</span><span 
class="n">_state</span> <span class="o">=</span> <span class="n">state</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">end_date</span> <span class="o">=</span> <span 
class="n">timezone</span><span class="o">.</span><span 
class="n">utcnow</span><span class="p">()</span> <span class="k">if</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">_state</span> <span class="ow">in</span> <span 
class="n">State</span><span class="o">.</span><span 
class="n">finished</span><span class="p">()</span> <span class="k">else</span> 
<span class="kc">None</span>
+
             <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">dag_id</span> <span class="ow">is</span> 
<span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
                 <span class="c1"># FIXME: Due to the scoped_session factor we 
we don&#39;t get a clean</span>
                 <span class="c1"># session here, so something really weird 
goes on:</span>
@@ -5195,7 +5306,7 @@
             <span class="k">if</span> <span class="p">(</span><span 
class="ow">not</span> <span class="n">unfinished_tasks</span> <span 
class="ow">and</span>
                     <span class="nb">any</span><span class="p">(</span><span 
class="n">r</span><span class="o">.</span><span class="n">state</span> <span 
class="ow">in</span> <span class="p">(</span><span class="n">State</span><span 
class="o">.</span><span class="n">FAILED</span><span class="p">,</span> <span 
class="n">State</span><span class="o">.</span><span 
class="n">UPSTREAM_FAILED</span><span class="p">)</span> <span 
class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span 
class="n">roots</span><span class="p">)):</span>
                 <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Marking run </span><span 
class="si">%s</span><span class="s1"> failed&#39;</span><span 
class="p">,</span> <span class="bp">self</span><span class="p">)</span>
-                <span class="bp">self</span><span class="o">.</span><span 
class="n">state</span> <span class="o">=</span> <span 
class="n">State</span><span class="o">.</span><span class="n">FAILED</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">set_state</span><span class="p">(</span><span 
class="n">State</span><span class="o">.</span><span 
class="n">FAILED</span><span class="p">)</span>
                 <span class="n">dag</span><span class="o">.</span><span 
class="n">handle_callback</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">success</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span> <span 
class="n">reason</span><span class="o">=</span><span 
class="s1">&#39;task_failure&#39;</span><span class="p">,</span>
                                     <span class="n">session</span><span 
class="o">=</span><span class="n">session</span><span class="p">)</span>
 
@@ -5203,20 +5314,20 @@
             <span class="k">elif</span> <span class="ow">not</span> <span 
class="n">unfinished_tasks</span> <span class="ow">and</span> <span 
class="nb">all</span><span class="p">(</span><span class="n">r</span><span 
class="o">.</span><span class="n">state</span> <span class="ow">in</span> <span 
class="p">(</span><span class="n">State</span><span class="o">.</span><span 
class="n">SUCCESS</span><span class="p">,</span> <span 
class="n">State</span><span class="o">.</span><span 
class="n">SKIPPED</span><span class="p">)</span>
                                               <span class="k">for</span> <span 
class="n">r</span> <span class="ow">in</span> <span class="n">roots</span><span 
class="p">):</span>
                 <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Marking run </span><span 
class="si">%s</span><span class="s1"> successful&#39;</span><span 
class="p">,</span> <span class="bp">self</span><span class="p">)</span>
-                <span class="bp">self</span><span class="o">.</span><span 
class="n">state</span> <span class="o">=</span> <span 
class="n">State</span><span class="o">.</span><span class="n">SUCCESS</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">set_state</span><span class="p">(</span><span 
class="n">State</span><span class="o">.</span><span 
class="n">SUCCESS</span><span class="p">)</span>
                 <span class="n">dag</span><span class="o">.</span><span 
class="n">handle_callback</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">success</span><span class="o">=</span><span 
class="kc">True</span><span class="p">,</span> <span 
class="n">reason</span><span class="o">=</span><span 
class="s1">&#39;success&#39;</span><span class="p">,</span> <span 
class="n">session</span><span class="o">=</span><span 
class="n">session</span><span class="p">)</span>
 
             <span class="c1"># if *all tasks* are deadlocked, the run 
failed</span>
             <span class="k">elif</span> <span class="p">(</span><span 
class="n">unfinished_tasks</span> <span class="ow">and</span> <span 
class="n">none_depends_on_past</span> <span class="ow">and</span>
                   <span class="n">none_task_concurrency</span> <span 
class="ow">and</span> <span class="n">no_dependencies_met</span><span 
class="p">):</span>
                 <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Deadlock; marking run </span><span 
class="si">%s</span><span class="s1"> failed&#39;</span><span 
class="p">,</span> <span class="bp">self</span><span class="p">)</span>
-                <span class="bp">self</span><span class="o">.</span><span 
class="n">state</span> <span class="o">=</span> <span 
class="n">State</span><span class="o">.</span><span class="n">FAILED</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">set_state</span><span class="p">(</span><span 
class="n">State</span><span class="o">.</span><span 
class="n">FAILED</span><span class="p">)</span>
                 <span class="n">dag</span><span class="o">.</span><span 
class="n">handle_callback</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">success</span><span class="o">=</span><span 
class="kc">False</span><span class="p">,</span> <span 
class="n">reason</span><span class="o">=</span><span 
class="s1">&#39;all_tasks_deadlocked&#39;</span><span class="p">,</span>
                                     <span class="n">session</span><span 
class="o">=</span><span class="n">session</span><span class="p">)</span>
 
             <span class="c1"># finally, if the roots aren&#39;t done, the dag 
is still running</span>
             <span class="k">else</span><span class="p">:</span>
-                <span class="bp">self</span><span class="o">.</span><span 
class="n">state</span> <span class="o">=</span> <span 
class="n">State</span><span class="o">.</span><span class="n">RUNNING</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">set_state</span><span class="p">(</span><span 
class="n">State</span><span class="o">.</span><span 
class="n">RUNNING</span><span class="p">)</span>
 
         <span class="c1"># todo: determine we want to use with_for_update to 
make sure to lock the run</span>
         <span class="n">session</span><span class="o">.</span><span 
class="n">merge</span><span class="p">(</span><span class="bp">self</span><span 
class="p">)</span>
@@ -5262,6 +5373,8 @@
         <span class="k">for</span> <span class="n">task</span> <span 
class="ow">in</span> <span class="n">six</span><span class="o">.</span><span 
class="n">itervalues</span><span class="p">(</span><span 
class="n">dag</span><span class="o">.</span><span 
class="n">task_dict</span><span class="p">):</span>
             <span class="k">if</span> <span class="n">task</span><span 
class="o">.</span><span class="n">adhoc</span><span class="p">:</span>
                 <span class="k">continue</span>
+            <span class="k">if</span> <span class="n">task</span><span 
class="o">.</span><span class="n">start_date</span> <span class="o">&gt;</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">execution_date</span> <span class="ow">and</span> <span 
class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">is_backfill</span><span class="p">:</span>
+                <span class="k">continue</span>
 
             <span class="k">if</span> <span class="n">task</span><span 
class="o">.</span><span class="n">task_id</span> <span class="ow">not</span> 
<span class="ow">in</span> <span class="n">task_ids</span><span 
class="p">:</span>
                 <span class="n">ti</span> <span class="o">=</span> <span 
class="n">TaskInstance</span><span class="p">(</span><span 
class="n">task</span><span class="p">,</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">execution_date</span><span class="p">)</span>
@@ -5482,20 +5595,13 @@
 
   
 
-    <script type="text/javascript">
-        var DOCUMENTATION_OPTIONS = {
-            URL_ROOT:'../../',
-            VERSION:'',
-            LANGUAGE:'None',
-            COLLAPSE_INDEX:false,
-            FILE_SUFFIX:'.html',
-            HAS_SOURCE:  true,
-            SOURCELINK_SUFFIX: '.txt'
-        };
-    </script>
-      <script type="text/javascript" src="../../_static/jquery.js"></script>
-      <script type="text/javascript" 
src="../../_static/underscore.js"></script>
-      <script type="text/javascript" src="../../_static/doctools.js"></script>
+    
+    
+      <script type="text/javascript" id="documentation_options" 
data-url_root="../../" src="../../_static/documentation_options.js"></script>
+        <script type="text/javascript" src="../../_static/jquery.js"></script>
+        <script type="text/javascript" 
src="../../_static/underscore.js"></script>
+        <script type="text/javascript" 
src="../../_static/doctools.js"></script>
+    
 
   
 

http://git-wip-us.apache.org/repos/asf/incubator-airflow-site/blob/1f06fa0e/_modules/airflow/operators/bash_operator.html
----------------------------------------------------------------------
diff --git a/_modules/airflow/operators/bash_operator.html 
b/_modules/airflow/operators/bash_operator.html
index da3c883..3ed727c 100644
--- a/_modules/airflow/operators/bash_operator.html
+++ b/_modules/airflow/operators/bash_operator.html
@@ -281,9 +281,9 @@
         <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">xcom_push_flag</span><span class="p">:</span>
             <span class="k">return</span> <span class="n">line</span></div>
 
-    <span class="k">def</span> <span class="nf">on_kill</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="BashOperator.on_kill"><a class="viewcode-back" 
href="../../../code.html#airflow.operators.bash_operator.BashOperator.on_kill">[docs]</a>
    <span class="k">def</span> <span class="nf">on_kill</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Sending SIGTERM signal to bash process 
group&#39;</span><span class="p">)</span>
-        <span class="n">os</span><span class="o">.</span><span 
class="n">killpg</span><span class="p">(</span><span class="n">os</span><span 
class="o">.</span><span class="n">getpgid</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sp</span><span 
class="o">.</span><span class="n">pid</span><span class="p">),</span> <span 
class="n">signal</span><span class="o">.</span><span 
class="n">SIGTERM</span><span class="p">)</span></div>
+        <span class="n">os</span><span class="o">.</span><span 
class="n">killpg</span><span class="p">(</span><span class="n">os</span><span 
class="o">.</span><span class="n">getpgid</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sp</span><span 
class="o">.</span><span class="n">pid</span><span class="p">),</span> <span 
class="n">signal</span><span class="o">.</span><span 
class="n">SIGTERM</span><span class="p">)</span></div></div>
 </pre></div>
 
            </div>
@@ -314,20 +314,13 @@
 
   
 
-    <script type="text/javascript">
-        var DOCUMENTATION_OPTIONS = {
-            URL_ROOT:'../../../',
-            VERSION:'',
-            LANGUAGE:'None',
-            COLLAPSE_INDEX:false,
-            FILE_SUFFIX:'.html',
-            HAS_SOURCE:  true,
-            SOURCELINK_SUFFIX: '.txt'
-        };
-    </script>
-      <script type="text/javascript" src="../../../_static/jquery.js"></script>
-      <script type="text/javascript" 
src="../../../_static/underscore.js"></script>
-      <script type="text/javascript" 
src="../../../_static/doctools.js"></script>
+    
+    
+      <script type="text/javascript" id="documentation_options" 
data-url_root="../../../" 
src="../../../_static/documentation_options.js"></script>
+        <script type="text/javascript" 
src="../../../_static/jquery.js"></script>
+        <script type="text/javascript" 
src="../../../_static/underscore.js"></script>
+        <script type="text/javascript" 
src="../../../_static/doctools.js"></script>
+    
 
   
 

http://git-wip-us.apache.org/repos/asf/incubator-airflow-site/blob/1f06fa0e/_modules/airflow/operators/check_operator.html
----------------------------------------------------------------------
diff --git a/_modules/airflow/operators/check_operator.html 
b/_modules/airflow/operators/check_operator.html
index 4d3fd89..06703b9 100644
--- a/_modules/airflow/operators/check_operator.html
+++ b/_modules/airflow/operators/check_operator.html
@@ -236,7 +236,7 @@
         <span class="bp">self</span><span class="o">.</span><span 
class="n">conn_id</span> <span class="o">=</span> <span class="n">conn_id</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">sql</span> <span class="o">=</span> <span class="n">sql</span>
 
-    <span class="k">def</span> <span class="nf">execute</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="CheckOperator.execute"><a 
class="viewcode-back" 
href="../../../code.html#airflow.operators.check_operator.CheckOperator.execute">[docs]</a>
    <span class="k">def</span> <span class="nf">execute</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Executing SQL check: </span><span 
class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">sql</span><span 
class="p">)</span>
         <span class="n">records</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">get_db_hook</span><span class="p">()</span><span 
class="o">.</span><span class="n">get_first</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sql</span><span 
class="p">)</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Record: </span><span 
class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span 
class="n">records</span><span class="p">)</span>
@@ -245,7 +245,7 @@
         <span class="k">elif</span> <span class="ow">not</span> <span 
class="nb">all</span><span class="p">([</span><span class="nb">bool</span><span 
class="p">(</span><span class="n">r</span><span class="p">)</span> <span 
class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span 
class="n">records</span><span class="p">]):</span>
             <span class="n">exceptstr</span> <span class="o">=</span> <span 
class="s2">&quot;Test failed.</span><span class="se">\n</span><span 
class="s2">Query:</span><span class="se">\n</span><span 
class="si">{q}</span><span class="se">\n</span><span 
class="s2">Results:</span><span class="se">\n</span><span 
class="si">{r!s}</span><span class="s2">&quot;</span>
             <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span><span 
class="n">exceptstr</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="n">q</span><span 
class="o">=</span><span class="bp">self</span><span class="o">.</span><span 
class="n">sql</span><span class="p">,</span> <span class="n">r</span><span 
class="o">=</span><span class="n">records</span><span class="p">))</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s2">&quot;Success.&quot;</span><span 
class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s2">&quot;Success.&quot;</span><span 
class="p">)</span></div>
 
     <span class="k">def</span> <span class="nf">get_db_hook</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">BaseHook</span><span 
class="o">.</span><span class="n">get_hook</span><span class="p">(</span><span 
class="n">conn_id</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">conn_id</span><span class="p">)</span></div>
@@ -298,7 +298,7 @@
         <span class="bp">self</span><span class="o">.</span><span 
class="n">tol</span> <span class="o">=</span> <span class="n">tol</span> <span 
class="k">if</span> <span class="nb">isinstance</span><span 
class="p">(</span><span class="n">tol</span><span class="p">,</span> <span 
class="nb">float</span><span class="p">)</span> <span class="k">else</span> 
<span class="kc">None</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">has_tolerance</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">tol</span> <span 
class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
 
-    <span class="k">def</span> <span class="nf">execute</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="ValueCheckOperator.execute"><a 
class="viewcode-back" 
href="../../../code.html#airflow.operators.check_operator.ValueCheckOperator.execute">[docs]</a>
    <span class="k">def</span> <span class="nf">execute</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Executing SQL check: </span><span 
class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">sql</span><span 
class="p">)</span>
         <span class="n">records</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">get_db_hook</span><span class="p">()</span><span 
class="o">.</span><span class="n">get_first</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sql</span><span 
class="p">)</span>
         <span class="k">if</span> <span class="ow">not</span> <span 
class="n">records</span><span class="p">:</span>
@@ -330,7 +330,7 @@
             <span class="k">else</span><span class="p">:</span>
                 <span class="n">tests</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">r</span> <span class="o">==</span> <span 
class="n">pass_value_conv</span> <span class="k">for</span> <span 
class="n">r</span> <span class="ow">in</span> <span 
class="n">num_rec</span><span class="p">]</span>
         <span class="k">if</span> <span class="ow">not</span> <span 
class="nb">all</span><span class="p">(</span><span class="n">tests</span><span 
class="p">):</span>
-            <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span><span 
class="n">except_temp</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="o">**</span><span 
class="nb">locals</span><span class="p">()))</span>
+            <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span><span 
class="n">except_temp</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="o">**</span><span 
class="nb">locals</span><span class="p">()))</span></div>
 
     <span class="k">def</span> <span class="nf">get_db_hook</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">BaseHook</span><span 
class="o">.</span><span class="n">get_hook</span><span class="p">(</span><span 
class="n">conn_id</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">conn_id</span><span class="p">)</span></div>
@@ -380,7 +380,7 @@
         <span class="bp">self</span><span class="o">.</span><span 
class="n">sql1</span> <span class="o">=</span> <span class="n">sqlt</span> 
<span class="o">+</span> <span class="s2">&quot;&#39;{{ ds }}&#39;&quot;</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">sql2</span> <span class="o">=</span> <span class="n">sqlt</span> 
<span class="o">+</span> <span class="s2">&quot;&#39;{{ macros.ds_add(ds, 
&quot;</span> <span class="o">+</span> <span class="nb">str</span><span 
class="p">(</span><span class="bp">self</span><span class="o">.</span><span 
class="n">days_back</span><span class="p">)</span> <span class="o">+</span> 
<span class="s2">&quot;) }}&#39;&quot;</span>
 
-    <span class="k">def</span> <span class="nf">execute</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
+<div class="viewcode-block" id="IntervalCheckOperator.execute"><a 
class="viewcode-back" 
href="../../../code.html#airflow.operators.check_operator.IntervalCheckOperator.execute">[docs]</a>
    <span class="k">def</span> <span class="nf">execute</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">context</span><span class="o">=</span><span 
class="kc">None</span><span class="p">):</span>
         <span class="n">hook</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">get_db_hook</span><span class="p">()</span>
         <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s1">&#39;Executing SQL check: </span><span 
class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">sql2</span><span 
class="p">)</span>
         <span class="n">row2</span> <span class="o">=</span> <span 
class="n">hook</span><span class="o">.</span><span 
class="n">get_first</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sql2</span><span 
class="p">)</span>
@@ -417,7 +417,7 @@
                     <span class="n">fstr</span><span class="o">.</span><span 
class="n">format</span><span class="p">(</span><span class="n">k</span><span 
class="o">=</span><span class="n">k</span><span class="p">,</span> <span 
class="n">r</span><span class="o">=</span><span class="n">ratios</span><span 
class="p">[</span><span class="n">k</span><span class="p">],</span> <span 
class="n">tr</span><span class="o">=</span><span class="bp">self</span><span 
class="o">.</span><span class="n">metrics_thresholds</span><span 
class="p">[</span><span class="n">k</span><span class="p">])</span>
                 <span class="p">)</span>
             <span class="k">raise</span> <span 
class="n">AirflowException</span><span class="p">(</span><span 
class="n">estr</span><span class="o">.</span><span class="n">format</span><span 
class="p">(</span><span class="s2">&quot;, &quot;</span><span 
class="o">.</span><span class="n">join</span><span class="p">(</span><span 
class="n">failed_tests</span><span class="p">)))</span>
-        <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s2">&quot;All tests have 
passed&quot;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">log</span><span class="o">.</span><span class="n">info</span><span 
class="p">(</span><span class="s2">&quot;All tests have 
passed&quot;</span><span class="p">)</span></div>
 
     <span class="k">def</span> <span class="nf">get_db_hook</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">return</span> <span class="n">BaseHook</span><span 
class="o">.</span><span class="n">get_hook</span><span class="p">(</span><span 
class="n">conn_id</span><span class="o">=</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">conn_id</span><span class="p">)</span></div>
@@ -451,20 +451,13 @@
 
   
 
-    <script type="text/javascript">
-        var DOCUMENTATION_OPTIONS = {
-            URL_ROOT:'../../../',
-            VERSION:'',
-            LANGUAGE:'None',
-            COLLAPSE_INDEX:false,
-            FILE_SUFFIX:'.html',
-            HAS_SOURCE:  true,
-            SOURCELINK_SUFFIX: '.txt'
-        };
-    </script>
-      <script type="text/javascript" src="../../../_static/jquery.js"></script>
-      <script type="text/javascript" 
src="../../../_static/underscore.js"></script>
-      <script type="text/javascript" 
src="../../../_static/doctools.js"></script>
+    
+    
+      <script type="text/javascript" id="documentation_options" 
data-url_root="../../../" 
src="../../../_static/documentation_options.js"></script>
+        <script type="text/javascript" 
src="../../../_static/jquery.js"></script>
+        <script type="text/javascript" 
src="../../../_static/underscore.js"></script>
+        <script type="text/javascript" 
src="../../../_static/doctools.js"></script>
+    
 
   
 

Reply via email to