Ignore:
Timestamp:
Mar 14, 2015 5:35:03 PM (8 years ago)
Author:
toby
Message:

change sphinx docs links; rebuild & fixing minor formatting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sphinxdocs/build/html/_modules/GSASIIpath.html

    r1513 r1709  
    6363<span class="sd">Other routines will update GSASII from the subversion server if svn can be</span>
    6464<span class="sd">found.</span>
     65
     66<span class="sd">Accesses configuration options, as defined in config.py</span>
    6567<span class="sd">&#39;&#39;&#39;</span>
    6668
     
    135137    <span class="sd">&#39;&#39;&#39;Set the subversion version number</span>
    136138
    137 <span class="sd">    :param str RevString: something like &quot;$Revision: 1512 $&quot;</span>
     139<span class="sd">    :param str RevString: something like &quot;$Revision: 1701 $&quot;</span>
    138140<span class="sd">      that is set by subversion when the file is retrieved from subversion.</span>
    139141
    140 <span class="sd">    Place ``GSASIIpath.SetVersionNumber(&quot;$Revision: 1512 $&quot;)`` in every python</span>
     142<span class="sd">    Place ``GSASIIpath.SetVersionNumber(&quot;$Revision: 1701 $&quot;)`` in every python</span>
    141143<span class="sd">    file.</span>
    142144<span class="sd">    &#39;&#39;&#39;</span>
     
    201203            <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">exe_file</span><span class="p">)</span>
    202204</div>
     205<div class="viewcode-block" id="svnVersion"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnVersion">[docs]</a><span class="k">def</span> <span class="nf">svnVersion</span><span class="p">():</span>
     206    <span class="sd">&#39;&#39;&#39;Get the version number of the current subversion executable</span>
     207
     208<span class="sd">    :returns: a string with a version number such as &quot;1.6.6&quot; or None if</span>
     209<span class="sd">      subversion is not found.</span>
     210
     211<span class="sd">    &#39;&#39;&#39;</span>
     212    <span class="kn">import</span> <span class="nn">subprocess</span>
     213    <span class="n">svn</span> <span class="o">=</span> <span class="n">whichsvn</span><span class="p">()</span>
     214    <span class="k">if</span> <span class="ow">not</span> <span class="n">svn</span><span class="p">:</span> <span class="k">return</span>
     215
     216    <span class="n">cmd</span> <span class="o">=</span> <span class="p">[</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;--version&#39;</span><span class="p">,</span><span class="s">&#39;--quiet&#39;</span><span class="p">]</span>
     217    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
     218                         <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
     219    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
     220    <span class="k">if</span> <span class="n">err</span><span class="p">:</span>
     221        <span class="k">print</span> <span class="s">&#39;subversion error!</span><span class="se">\n</span><span class="s">out=&#39;</span><span class="p">,</span><span class="n">out</span>
     222        <span class="k">print</span> <span class="s">&#39;err=&#39;</span><span class="p">,</span><span class="n">err</span>
     223        <span class="k">return</span> <span class="bp">None</span>
     224    <span class="k">return</span> <span class="n">out</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
     225</div>
     226<div class="viewcode-block" id="svnVersionNumber"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnVersionNumber">[docs]</a><span class="k">def</span> <span class="nf">svnVersionNumber</span><span class="p">():</span>
     227    <span class="sd">&#39;&#39;&#39;Get the version number of the current subversion executable</span>
     228
     229<span class="sd">    :returns: a fractional version number such as 1.6 or None if</span>
     230<span class="sd">      subversion is not found.</span>
     231
     232<span class="sd">    &#39;&#39;&#39;</span>
     233    <span class="n">ver</span> <span class="o">=</span> <span class="n">svnVersion</span><span class="p">()</span>
     234    <span class="k">if</span> <span class="ow">not</span> <span class="n">ver</span><span class="p">:</span> <span class="k">return</span>
     235    <span class="n">M</span><span class="p">,</span><span class="n">m</span> <span class="o">=</span> <span class="n">svnVersion</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)[:</span><span class="mi">2</span><span class="p">]</span>
     236    <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">M</span><span class="p">)</span><span class="o">+</span><span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="p">)</span><span class="o">/</span><span class="mf">10.</span>
     237</div>
    203238<div class="viewcode-block" id="svnGetLog"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnGetLog">[docs]</a><span class="k">def</span> <span class="nf">svnGetLog</span><span class="p">(</span><span class="n">fpath</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">__file__</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span><span class="n">version</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
    204     <span class="sd">&#39;&#39;&#39;Get the revision log information for a specific version of the </span>
     239    <span class="sd">&#39;&#39;&#39;Get the revision log information for a specific version of the specified package</span>
    205240
    206241<span class="sd">    :param str fpath: path to repository dictionary, defaults to directory where</span>
     
    261296    <span class="k">else</span><span class="p">:</span>
    262297        <span class="n">cmd</span> <span class="o">=</span> <span class="p">[</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;info&#39;</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">&#39;--xml&#39;</span><span class="p">,</span><span class="s">&#39;-rHEAD&#39;</span><span class="p">]</span>
    263     <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
    264                          <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
     298    <span class="k">if</span> <span class="n">svnVersionNumber</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="mf">1.6</span><span class="p">:</span>
     299        <span class="n">cmd</span> <span class="o">+=</span> <span class="p">[</span><span class="s">&#39;--non-interactive&#39;</span><span class="p">,</span> <span class="s">&#39;--trust-server-cert&#39;</span><span class="p">]</span>
     300    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
    265301    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
    266302    <span class="k">if</span> <span class="n">err</span><span class="p">:</span>
    267         <span class="k">print</span> <span class="s">&#39;out=&#39;</span><span class="p">,</span><span class="n">out</span>
     303        <span class="k">print</span> <span class="s">&#39;svn failed</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">,</span><span class="n">out</span>
    268304        <span class="k">print</span> <span class="s">&#39;err=&#39;</span><span class="p">,</span><span class="n">err</span>
    269305        <span class="k">return</span> <span class="bp">None</span>
     
    288324    <span class="n">svn</span> <span class="o">=</span> <span class="n">whichsvn</span><span class="p">()</span>
    289325    <span class="k">if</span> <span class="ow">not</span> <span class="n">svn</span><span class="p">:</span> <span class="k">return</span>
    290     <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;status&#39;</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">&#39;--xml&#39;</span><span class="p">],</span>
     326    <span class="n">cmd</span> <span class="o">=</span> <span class="p">[</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;status&#39;</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">&#39;--xml&#39;</span><span class="p">]</span>
     327    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
    291328                         <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
    292329    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
     
    319356           <span class="s">&#39;--non-interactive&#39;</span><span class="p">,</span>
    320357           <span class="s">&#39;--accept&#39;</span><span class="p">,</span><span class="s">&#39;theirs-conflict&#39;</span><span class="p">,</span><span class="s">&#39;--force&#39;</span><span class="p">]</span>
    321     <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span>
    322                          <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
    323     <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
    324     <span class="k">print</span> <span class="n">out</span>
     358    <span class="k">if</span> <span class="n">svnVersionNumber</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="mf">1.6</span><span class="p">:</span>
     359        <span class="n">cmd</span> <span class="o">+=</span> <span class="p">[</span><span class="s">&#39;--trust-server-cert&#39;</span><span class="p">]</span>
     360    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span><span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
     361    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
    325362    <span class="k">if</span> <span class="n">err</span><span class="p">:</span>
    326363        <span class="k">print</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="s">&quot;=&quot;</span><span class="p">)</span>
     
    330367        <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span>
    331368</div>
     369<div class="viewcode-block" id="svnUpgrade"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnUpgrade">[docs]</a><span class="k">def</span> <span class="nf">svnUpgrade</span><span class="p">(</span><span class="n">fpath</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">__file__</span><span class="p">)[</span><span class="mi">0</span><span class="p">]):</span>
     370    <span class="sd">&#39;&#39;&#39;This reformats subversion files, which may be needed if an upgrade of subversion is</span>
     371<span class="sd">    done. </span>
     372
     373<span class="sd">    :param str fpath: path to repository dictionary, defaults to directory where</span>
     374<span class="sd">       the current file is located</span>
     375<span class="sd">    &#39;&#39;&#39;</span>
     376    <span class="kn">import</span> <span class="nn">subprocess</span>
     377    <span class="n">svn</span> <span class="o">=</span> <span class="n">whichsvn</span><span class="p">()</span>
     378    <span class="k">if</span> <span class="ow">not</span> <span class="n">svn</span><span class="p">:</span> <span class="k">return</span>
     379    <span class="n">cmd</span> <span class="o">=</span> <span class="p">[</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;upgrade&#39;</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">&#39;--non-interactive&#39;</span><span class="p">]</span>
     380    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span><span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
     381    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
     382    <span class="k">if</span> <span class="n">err</span><span class="p">:</span>
     383        <span class="k">print</span><span class="p">(</span><span class="s">&quot;svn upgrade did not happen (this is probably OK). Messages:&quot;</span><span class="p">)</span>
     384        <span class="k">print</span> <span class="n">err</span>
     385            </div>
    332386<div class="viewcode-block" id="svnUpdateProcess"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnUpdateProcess">[docs]</a><span class="k">def</span> <span class="nf">svnUpdateProcess</span><span class="p">(</span><span class="n">version</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span><span class="n">projectfile</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
    333387    <span class="sd">&#39;&#39;&#39;perform an update of GSAS-II in a separate python process&#39;&#39;&#39;</span>
     
    346400    <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span>
    347401</div>
     402<div class="viewcode-block" id="svnSwitchDir"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnSwitchDir">[docs]</a><span class="k">def</span> <span class="nf">svnSwitchDir</span><span class="p">(</span><span class="n">rpath</span><span class="p">,</span><span class="n">filename</span><span class="p">,</span><span class="n">baseURL</span><span class="p">,</span><span class="n">loadpath</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
     403    <span class="sd">&#39;&#39;&#39;This performs a switch command to move files between subversion trees.</span>
     404
     405<span class="sd">    This is currently used for moving tutorial web pages and demo files</span>
     406<span class="sd">    into the GSAS-II source tree. Note that if the files were previously downloaded</span>
     407<span class="sd">    the switch command will update the files to the newest version. </span>
     408<span class="sd">    </span>
     409<span class="sd">    :param str rpath: path to locate files, relative to the GSAS-II</span>
     410<span class="sd">      installation path (defaults to path2GSAS2)</span>
     411<span class="sd">    :param str URL: the repository URL</span>
     412<span class="sd">    :param str loadpath: the prefix for the path, if specified. Defaults to path2GSAS2</span>
     413<span class="sd">    &#39;&#39;&#39;</span>
     414    <span class="kn">import</span> <span class="nn">subprocess</span>
     415    <span class="n">svn</span> <span class="o">=</span> <span class="n">whichsvn</span><span class="p">()</span>
     416    <span class="k">if</span> <span class="ow">not</span> <span class="n">svn</span><span class="p">:</span> <span class="k">return</span>
     417    <span class="n">URL</span> <span class="o">=</span> <span class="n">baseURL</span><span class="p">[:]</span>
     418    <span class="k">if</span> <span class="n">baseURL</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s">&#39;/&#39;</span><span class="p">:</span>
     419        <span class="n">URL</span> <span class="o">=</span> <span class="n">baseURL</span> <span class="o">+</span> <span class="s">&#39;/&#39;</span> <span class="o">+</span> <span class="n">filename</span>
     420    <span class="k">else</span><span class="p">:</span>
     421        <span class="n">URL</span> <span class="o">=</span> <span class="n">baseURL</span> <span class="o">+</span> <span class="n">filename</span>
     422    <span class="k">if</span> <span class="n">loadpath</span><span class="p">:</span>
     423        <span class="n">fpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">loadpath</span><span class="p">,</span><span class="n">rpath</span><span class="p">,</span><span class="n">filename</span><span class="p">)</span>
     424    <span class="k">else</span><span class="p">:</span>
     425        <span class="n">fpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path2GSAS2</span><span class="p">,</span><span class="n">rpath</span><span class="p">,</span><span class="n">filename</span><span class="p">)</span>
     426    <span class="n">cmd</span> <span class="o">=</span> <span class="p">[</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;switch&#39;</span><span class="p">,</span><span class="n">URL</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span>
     427           <span class="s">&#39;--non-interactive&#39;</span><span class="p">,</span><span class="s">&#39;--trust-server-cert&#39;</span><span class="p">,</span>
     428           <span class="s">&#39;--accept&#39;</span><span class="p">,</span><span class="s">&#39;theirs-conflict&#39;</span><span class="p">,</span><span class="s">&#39;--force&#39;</span><span class="p">]</span>
     429    <span class="k">if</span> <span class="n">svnVersionNumber</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mf">1.6</span><span class="p">:</span> <span class="n">cmd</span> <span class="o">+=</span> <span class="p">[</span><span class="s">&#39;--ignore-ancestry&#39;</span><span class="p">]</span>
     430    <span class="k">print</span><span class="p">(</span><span class="s">&quot;Loading files from &quot;</span><span class="o">+</span><span class="n">URL</span><span class="p">)</span>
     431    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span><span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
     432    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
     433    <span class="k">if</span> <span class="n">err</span><span class="p">:</span>
     434        <span class="k">print</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="s">&quot;=&quot;</span><span class="p">)</span>
     435        <span class="k">print</span> <span class="p">(</span><span class="s">&quot;****** An error was noted, see below *********&quot;</span><span class="p">)</span>
     436        <span class="k">print</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="s">&quot;=&quot;</span><span class="p">)</span>
     437        <span class="k">print</span> <span class="s">&#39;out=&#39;</span><span class="p">,</span><span class="n">out</span>
     438        <span class="k">print</span> <span class="s">&#39;err=&#39;</span><span class="p">,</span><span class="n">err</span>
     439        <span class="k">return</span> <span class="bp">False</span>
     440    <span class="k">return</span> <span class="bp">True</span>
     441</div>
     442<div class="viewcode-block" id="svnInstallDir"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.svnInstallDir">[docs]</a><span class="k">def</span> <span class="nf">svnInstallDir</span><span class="p">(</span><span class="n">URL</span><span class="p">,</span><span class="n">loadpath</span><span class="p">):</span>
     443    <span class="sd">&#39;&#39;&#39;Load a subversion tree into a specified directory</span>
     444
     445<span class="sd">    :param str rpath: path to locate files, relative to the GSAS-II</span>
     446<span class="sd">      installation path (defaults to path2GSAS2)</span>
     447<span class="sd">    :param str URL: the repository URL</span>
     448<span class="sd">    &#39;&#39;&#39;</span>
     449    <span class="kn">import</span> <span class="nn">subprocess</span>
     450    <span class="n">svn</span> <span class="o">=</span> <span class="n">whichsvn</span><span class="p">()</span>
     451    <span class="k">if</span> <span class="ow">not</span> <span class="n">svn</span><span class="p">:</span> <span class="k">return</span>
     452    <span class="n">cmd</span> <span class="o">=</span> <span class="p">[</span><span class="n">svn</span><span class="p">,</span><span class="s">&#39;co&#39;</span><span class="p">,</span><span class="n">URL</span><span class="p">,</span><span class="n">loadpath</span><span class="p">,</span><span class="s">&#39;--non-interactive&#39;</span><span class="p">]</span>
     453    <span class="k">if</span> <span class="n">svnVersionNumber</span><span class="p">()</span> <span class="o">&gt;=</span> <span class="mf">1.6</span><span class="p">:</span> <span class="n">cmd</span> <span class="o">+=</span> <span class="p">[</span><span class="s">&#39;--trust-server-cert&#39;</span><span class="p">]</span>
     454    <span class="k">print</span><span class="p">(</span><span class="s">&quot;Loading files from &quot;</span><span class="o">+</span><span class="n">URL</span><span class="p">)</span>
     455    <span class="n">s</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span><span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span><span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
     456    <span class="n">out</span><span class="p">,</span><span class="n">err</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
     457    <span class="k">if</span> <span class="n">err</span><span class="p">:</span>
     458        <span class="k">print</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="s">&quot;=&quot;</span><span class="p">)</span>
     459        <span class="k">print</span> <span class="p">(</span><span class="s">&quot;****** An error was noted, see below *********&quot;</span><span class="p">)</span>
     460        <span class="k">print</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="s">&quot;=&quot;</span><span class="p">)</span>
     461        <span class="k">print</span> <span class="n">err</span>
     462        <span class="k">return</span> <span class="bp">False</span>
     463    <span class="k">return</span> <span class="bp">True</span>
     464            </div>
     465<div class="viewcode-block" id="IPyBreak_base"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.IPyBreak_base">[docs]</a><span class="k">def</span> <span class="nf">IPyBreak_base</span><span class="p">():</span>
     466    <span class="sd">&#39;&#39;&#39;A routine that invokes an IPython session at the calling location</span>
     467<span class="sd">    This routine is only used when debug=True is set in config.py</span>
     468<span class="sd">    &#39;&#39;&#39;</span>
     469    <span class="n">savehook</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">excepthook</span> <span class="c"># save the exception hook</span>
     470    <span class="k">try</span><span class="p">:</span>
     471        <span class="kn">from</span> <span class="nn">IPython.terminal.embed</span> <span class="kn">import</span> <span class="n">InteractiveShellEmbed</span>
     472    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
     473        <span class="k">try</span><span class="p">:</span>
     474            <span class="c"># try the IPython 0.12 approach</span>
     475            <span class="kn">from</span> <span class="nn">IPython.frontend.terminal.embed</span> <span class="kn">import</span> <span class="n">InteractiveShellEmbed</span>
     476        <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
     477            <span class="k">print</span> <span class="s">&#39;IPython InteractiveShellEmbed not found&#39;</span>
     478            <span class="k">return</span>
     479    <span class="kn">import</span> <span class="nn">inspect</span>
     480    <span class="n">ipshell</span> <span class="o">=</span> <span class="n">InteractiveShellEmbed</span><span class="p">()</span>
     481
     482    <span class="n">frame</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">currentframe</span><span class="p">()</span><span class="o">.</span><span class="n">f_back</span>
     483    <span class="n">msg</span>   <span class="o">=</span> <span class="s">&#39;Entering IPython console inside {0.f_code.co_filename} at line {0.f_lineno}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
     484    <span class="n">ipshell</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span><span class="n">stack_depth</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span> <span class="c"># Go up one level, to see the calling routine</span>
     485    <span class="n">sys</span><span class="o">.</span><span class="n">excepthook</span> <span class="o">=</span> <span class="n">savehook</span> <span class="c"># reset IPython&#39;s change to the exception hook</span>
     486</div>
     487<div class="viewcode-block" id="exceptHook"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.exceptHook">[docs]</a><span class="k">def</span> <span class="nf">exceptHook</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">):</span>
     488    <span class="sd">&#39;&#39;&#39;A routine to be called when an exception occurs. It prints the traceback</span>
     489<span class="sd">    with fancy formatting and then calls an IPython shell with the environment</span>
     490<span class="sd">    of the exception location.</span>
     491<span class="sd">    </span>
     492<span class="sd">    This routine is only used when debug=True is set in config.py    </span>
     493<span class="sd">    &#39;&#39;&#39;</span>
     494    <span class="kn">from</span> <span class="nn">IPython.core</span> <span class="kn">import</span> <span class="n">ultratb</span>
     495    <span class="k">if</span> <span class="s">&#39;win&#39;</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span><span class="p">:</span>
     496        <span class="n">ultratb</span><span class="o">.</span><span class="n">FormattedTB</span><span class="p">(</span><span class="n">call_pdb</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span><span class="n">color_scheme</span><span class="o">=</span><span class="s">&#39;NoColor&#39;</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span>
     497    <span class="k">else</span><span class="p">:</span>
     498        <span class="n">ultratb</span><span class="o">.</span><span class="n">FormattedTB</span><span class="p">(</span><span class="n">call_pdb</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span><span class="n">color_scheme</span><span class="o">=</span><span class="s">&#39;LightBG&#39;</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span>
     499    <span class="k">try</span><span class="p">:</span>
     500        <span class="kn">from</span> <span class="nn">IPython.terminal.embed</span> <span class="kn">import</span> <span class="n">InteractiveShellEmbed</span>
     501    <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
     502        <span class="k">try</span><span class="p">:</span>
     503            <span class="c"># try the IPython 0.12 approach</span>
     504            <span class="kn">from</span> <span class="nn">IPython.frontend.terminal.embed</span> <span class="kn">import</span> <span class="n">InteractiveShellEmbed</span>
     505        <span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
     506            <span class="k">print</span> <span class="s">&#39;IPython InteractiveShellEmbed not found&#39;</span>
     507            <span class="k">return</span>
     508    <span class="kn">import</span> <span class="nn">inspect</span>
     509    <span class="n">frame</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">getinnerframes</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">2</span><span class="p">])[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
     510    <span class="n">msg</span>   <span class="o">=</span> <span class="s">&#39;Entering IPython console at {0.f_code.co_filename} at line {0.f_lineno}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
     511    <span class="n">savehook</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">excepthook</span> <span class="c"># save the exception hook</span>
     512    <span class="n">InteractiveShellEmbed</span><span class="p">(</span><span class="n">banner1</span><span class="o">=</span><span class="n">msg</span><span class="p">)(</span><span class="n">local_ns</span><span class="o">=</span><span class="n">frame</span><span class="o">.</span><span class="n">f_locals</span><span class="p">,</span><span class="n">global_ns</span><span class="o">=</span><span class="n">frame</span><span class="o">.</span><span class="n">f_globals</span><span class="p">)</span>
     513    <span class="n">sys</span><span class="o">.</span><span class="n">excepthook</span> <span class="o">=</span> <span class="n">savehook</span> <span class="c"># reset IPython&#39;s change to the exception hook</span>
     514</div>
     515<div class="viewcode-block" id="DoNothing"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.DoNothing">[docs]</a><span class="k">def</span> <span class="nf">DoNothing</span><span class="p">():</span>
     516    <span class="sd">&#39;&#39;&#39;A routine that does nothing. This is called in place of IPyBreak and pdbBreak</span>
     517<span class="sd">    except when the debug option is set True in config.py</span>
     518<span class="sd">    &#39;&#39;&#39;</span>
     519    <span class="k">pass</span>
     520</div>
     521<span class="n">IPyBreak</span> <span class="o">=</span> <span class="n">DoNothing</span>
     522<span class="n">pdbBreak</span> <span class="o">=</span> <span class="n">DoNothing</span>
     523<div class="viewcode-block" id="InvokeDebugOpts"><a class="viewcode-back" href="../GSASIIutil.html#GSASIIpath.InvokeDebugOpts">[docs]</a><span class="k">def</span> <span class="nf">InvokeDebugOpts</span><span class="p">():</span>
     524    <span class="s">&#39;Called in GSASII.py to set up debug options&#39;</span>
     525    <span class="k">if</span> <span class="n">GetConfigValue</span><span class="p">(</span><span class="s">&#39;debug&#39;</span><span class="p">):</span>
     526        <span class="k">print</span> <span class="s">&#39;Debug on: IPython: Exceptions and G2path.IPyBreak(); pdb: G2path.pdbBreak()&#39;</span>
     527        <span class="n">sys</span><span class="o">.</span><span class="n">excepthook</span> <span class="o">=</span> <span class="n">exceptHook</span>
     528        <span class="kn">import</span> <span class="nn">pdb</span>
     529        <span class="k">global</span> <span class="n">pdbBreak</span>
     530        <span class="n">pdbBreak</span> <span class="o">=</span> <span class="n">pdb</span><span class="o">.</span><span class="n">set_trace</span>
     531        <span class="k">global</span> <span class="n">IPyBreak</span>
     532        <span class="n">IPyBreak</span> <span class="o">=</span> <span class="n">IPyBreak_base</span>
     533    </div>
    348534<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
     535    <span class="sd">&#39;&#39;&#39;What follows is called to update (or downdate) GSAS-II in a separate process. </span>
     536<span class="sd">    &#39;&#39;&#39;</span>
    349537    <span class="kn">import</span> <span class="nn">subprocess</span>
    350538    <span class="kn">import</span> <span class="nn">time</span>
Note: See TracChangeset for help on using the changeset viewer.