Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
HTML
<div class="section" id="indentation">
<span id="index-0"></span><span id="id1"></span>
<p>The text examples allow indentation. In python indentation
affects the logical meaning of the program.</p>
<p>However we can use python <strong>with</strong> statement to provide the indentation.</p>
<p>Here is the previous example using the <strong>with</strong> statement:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="c">#!/usr/bin/env python2.7</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">ecflow</span>  

<span class="kkn">print<>import</span> <span class="s">&quot;Creating suite definition&quot;<nn">sys</span>

<span class="n">version</span>  
<span class="ko">with<>=</span> <span class="n">ecflow<>sys</span><span class="o">.</span><span class="n">Defs<>version_info</span><span class="p">();</span> 
<span class="k">as<>if</span>  <span class="n">defs<>version</span><span class="p">:[</span> 
    
    <spanspan><span class="mi">1</span><span class="kp">with<>]</span> <span class="n">defs</span><span class="o">.&lt;</span><spanspan> <span class="nmi">add_suite</span><span>7</span> <span class="p">(:</span><spanspan> 
    <span class="s"k">print</span> <span class="s">&quot;testThis example requires python version 2.7, but found : &quot;</span><spanspan> <span class="po">)+</span> <span class="knb">as<>str</span> <spanspan><span class="p">(</span><span class="n">suite<>version</span><span class="p">:)</span>
        
        <span class="n">suite<<span class="nb">exit</span><span class="op">.(</span><span class="nmi">add_variable<>0</span><span class="p">()</span><spanspan>

<span class="k">print</span> <span class="s">&quot;ECF_INCLUDECreating suite definition&quot;</span><spanspan>  
<span class="pk">,<>with</span> <span class="n">os<>ecflow</span><span class="o">.</span><span class="n">getenv<>Defs</span><span class="p">(</span><span class="s">&quot;HOME&quot;</span><span class="p">)</span> <span class="ok">+<>as</span> <span class="s">&quot;/course&quot;</n">defs</span><span class="p">):</span> 
    
    <span class="nk">suite<>with</span><span span> <span class="n">defs</span><span class="o">.</span><span class="n">add_variable<suite</span><span class="p">(</span><span class="s">&quot;ECF_HOMEtest&quot;</span><span class="p">,)</span>   <span class="k">as</span> <span class="n">os<>suite</span><span class="op">.:</span><spanspan>
        
        <span class="n">getenv<>suite</span><span class="po">(.</span><span class="n">add_variable</span><span class="p">(</span><span class="s">&quot;HOMEECF_INCLUDE&quot;</span><span class="p">),</span> <span class="n">os</span><span class="o">+</span> <span.</span><span class="n">getenv</span><span class="p">(</span><span class="s">&quot;/courseHOME&quot;</span><span class="p">)</span>
 <span class="o">+</span> <span     class="s">&quot;/course&quot;</span><span class="p">)</span>
        <span class="k">with</span> <span class="n">suite</span><span class="o">.</span><span class="n">add_family<variable</span><span class="p">(</span><span class="s">&quot;f1ECF_HOME&quot;</span><span class="p">),</span> <span class="k">as</span> <span class="n">f1</span><span class="p">:</span>
            <span class="n">f1<>os</span><span class="o">.</span><span class="n">add_variable<>getenv</span><span class="p">(</span><span class="s">&quot;SLEEPHOME&quot;</span><span class="p">,)</span> <span class="mio">20</span><span>+</span> <span class="ps">&quot;/course&quot;</span><span class="p">)</span>
        
        <span class="k">with</span> <span class="n">f1<>suite</span><span class="o">.</span><span class="n">add_task<family</span><span class="p">(</span><span class="s">&quot;t1f1&quot;</span><span class="p">)</span><spanspan> <span class="ok">.</span><span>as</span> <span class="n">add_meter<>f1</span><span class="p">(:</span><span span>
            <span class="s">&quot;progress&quot;<n">f1</span><span class="po">,.</span>span><span <span class="min">1<>add_variable</span><span class="p">,(</span> <spanspan><span class="mi">100<s">&quot;SLEEP&quot;</span><span class="p">,</span> <span class="mi">90<>20</span><span class="p">)</span>
            <span class="n">f1</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t2t1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_trigger<meter</span><span class="p">(</span><span class="s">&quot;t1 eq completeprogress&quot;</span><span class="p">),</span><span class="o">.</span><spanspan> <span class="nmi">add_event<>1</span><span class="p">(,</span><spanspan> <span class="s">&quot;a&quot;<mi">100</span><span class="p">),</span><spanspan> <span class="omi">.<>90</span><span class="n">add_event</span><span class="p">(</span><span class="s">&quot;b&quot;</span><span class="p">)</p">)</span>
            <span class="n">f1</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t3t2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_trigger</span><span class="p">(</span><span class="s">&quot;t2:at1 eq complete&quot;</span><span class="p">)</span>  
            <span class="n">f1</span><span class="o">.</span><span class="n">add_task<span><span class="o">.</span><span class="n">add_event</span><span class="p">(</span><span class="s">&quot;t4a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_trigger<event</span><span class="p">(</span><span class="s">&quot;t2 eq completeb&quot;</span><span class="p">)</span><spanspan>
            <span class="n">f1</span><span class="o">.</span><span class="n">add_complete<task</span><span class="p">(</span><span class="s">&quot;t2:bt3&quot;</span><span class="p">)</span>  
            <span class="n">f1</span><span class="o">.</span><span class="n">add_task<trigger</span><span class="p">(</span><span class="s">&quot;t5t2:a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_trigger</span><span class="p">(</span><span class="s">&quot;t1:progress ge 30&quot;</span><span class="p">)</span>  
            span>  
            <span class="n">f1</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t6t4&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_trigger</span><span class="p">(</span><span class="s">&quot;t1:progress ge 60t2 eq complete&quot;</span><span class="p">)</span>  
            <span class="n">f1</span><span class="o">.</span><span class="n">add_task<complete</span><span class="p">(</span><span class="s">&quot;t7t2:b&quot;</span><span class="p">)</span>  
            <span class="n">f1</span><span class="o">.</span><span class="n">add_trigger<task</span><span class="p">(</span><span class="s">&quot;t1:progress ge 90t5&quot;</span><span class="p">)</span> 
    
        <span class="k">with</span> <span class="n">suite</span><span class="o">.</span><span class="n">add_family<trigger</span><span class="p">(</span><span class="s">&quot;f2t1:progress ge 30&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f2</span><span class="p">:</span>     
      
            <span class="n">f2<>f1</span><span class="o">.</span><span class="n">add_variable<task</span><span class="p">(</span><span class="s">&quot;SLEEPt6&quot;</span><span class="p">,)</span>span><span <span class="mio">20<>.</span><span class="p">)</span>n">add_trigger</span><span class="p">(</span><span class="s">&quot;t1:progress ge 60&quot;</span><span class="p">)</span>  
            <span class="n">f2<>f1</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t1t7&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_time<trigger</span><span class="p">(</span> <spanspan><span class="s">&quot;00t1:30 23:30 00:30progress ge 90&quot;</span> <spanspan><span class="p">)</span> 
    
        <span class="k">with</span> <span class="n">f2<>suite</span><span class="o">.</span><span class="n">add_task<family</span><span class="p">(</span><span class="s">&quot;t2f2&quot;</span><span class="p">)</span><spanspan> <span class="ok">.</span><span>as</span> <span class="n">add_day<>f2</span><span class="p">(:</span>      <span class="s">&quot;sunday&quot;</span> <span class="p">)</span>  
            <span class="n">f2</span><span class="o">.</span><span class="n">add_task<variable</span><span class="p">(</span><span class="s">&quot;t3SLEEP&quot;</span><span class="p">),</span><span class="o">.</span><spanspan> <span class="nmi">add_date<>20</span><span class="p">()</span><span class="mi">1</span><span class="p">,</span> <spanspan>
            <span class="n">f2</span><span class="o">.</span><span class="min">0<>add_task</span><span class="p">,(</span> <spanspan><span class="mi">0<s">&quot;t1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_time</span><span class="p">(</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">0<s">&quot;00:30 23:30 00:30&quot;</span> <span class="p">)</span>
            <span class="n">f2</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t4t2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_time<day</span><span class="p">(</span> <span class="mi">0</span><spans">&quot;sunday&quot;</span> <span class="p">,)</span>
  <span class="mi">2</span><span class="p">,</span> <span class="bp">True</span> <span class="p">)</span>
            <span class="n">f2</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t5t3&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_time<date</span><span class="p">(</span> <spanspan><span class="mi">0<>1</span><span class="p">,</span> <span class="mi">2<>0</span> <spanspan><span class="p">),</span>
         <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">add_time</span><span class="p">(</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">0</span> <span class="p">)</span>
            <span class="n">f2</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t4&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_time</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="bp">True</span> <span class="p">)</span>
            <span class="n">f2</span><span class="o">.</span><span class="n">add_task</span><span class="p">(</span><span class="s">&quot;t5&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">add_time</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">2</span> <span class="p">)</span>
            
    <span class="k">print</span> <span class="n">defs</span>

    <span class="k">print</span> <span class="s">&quot;Checking job creation: .ecf -&gt; .job0&quot;</span>   
    <span class="k">print</span> <span class="n">defs</span><span class="o">.</span><span class="n">check_job_creation</span><span class="p">()</span>

    <span class="k">print</span> <span class="s">&quot;Checking job creation: .ecf -&gt; .job0&trigger expressions&quot;</span>   
    <span class="k">print</span> <span class="n">defs</span><span class="o">.</span><span class="n">check_job_creation<>check</span><span class="p">()</span>

    <span class="k">print</span> <span class="s">&quot;Saving definition to file &#39;test.def&#39;&quot;</span>
    <span class="n">defs</span><span class="o">.</span><span class="n">save_as_defs</span><span class="p">(</span><span class="s">&quot;test.def&quot;</span><span class="p">)</span>
</pre></div>
</div>
</div>