Changeset 1709 for sphinxdocs/build/html/_modules/GSASIIpath.html
- Timestamp:
- Mar 14, 2015 5:35:03 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sphinxdocs/build/html/_modules/GSASIIpath.html
r1513 r1709 63 63 <span class="sd">Other routines will update GSASII from the subversion server if svn can be</span> 64 64 <span class="sd">found.</span> 65 66 <span class="sd">Accesses configuration options, as defined in config.py</span> 65 67 <span class="sd">'''</span> 66 68 … … 135 137 <span class="sd">'''Set the subversion version number</span> 136 138 137 <span class="sd"> :param str RevString: something like "$Revision: 1 512$"</span>139 <span class="sd"> :param str RevString: something like "$Revision: 1701 $"</span> 138 140 <span class="sd"> that is set by subversion when the file is retrieved from subversion.</span> 139 141 140 <span class="sd"> Place ``GSASIIpath.SetVersionNumber("$Revision: 1 512$")`` in every python</span>142 <span class="sd"> Place ``GSASIIpath.SetVersionNumber("$Revision: 1701 $")`` in every python</span> 141 143 <span class="sd"> file.</span> 142 144 <span class="sd"> '''</span> … … 201 203 <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> 202 204 </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">'''Get the version number of the current subversion executable</span> 207 208 <span class="sd"> :returns: a string with a version number such as "1.6.6" or None if</span> 209 <span class="sd"> subversion is not found.</span> 210 211 <span class="sd"> '''</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">'--version'</span><span class="p">,</span><span class="s">'--quiet'</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">'subversion error!</span><span class="se">\n</span><span class="s">out='</span><span class="p">,</span><span class="n">out</span> 222 <span class="k">print</span> <span class="s">'err='</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">'''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"> '''</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">'.'</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> 203 238 <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">'''Get the revision log information for a specific version of the </span>239 <span class="sd">'''Get the revision log information for a specific version of the specified package</span> 205 240 206 241 <span class="sd"> :param str fpath: path to repository dictionary, defaults to directory where</span> … … 261 296 <span class="k">else</span><span class="p">:</span> 262 297 <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">'info'</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">'--xml'</span><span class="p">,</span><span class="s">'-rHEAD'</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">>=</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">'--non-interactive'</span><span class="p">,</span> <span class="s">'--trust-server-cert'</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> 265 301 <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> 266 302 <span class="k">if</span> <span class="n">err</span><span class="p">:</span> 267 <span class="k">print</span> <span class="s">' out='</span><span class="p">,</span><span class="n">out</span>303 <span class="k">print</span> <span class="s">'svn failed</span><span class="se">\n</span><span class="s">'</span><span class="p">,</span><span class="n">out</span> 268 304 <span class="k">print</span> <span class="s">'err='</span><span class="p">,</span><span class="n">err</span> 269 305 <span class="k">return</span> <span class="bp">None</span> … … 288 324 <span class="n">svn</span> <span class="o">=</span> <span class="n">whichsvn</span><span class="p">()</span> 289 325 <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">'status'</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">'--xml'</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">'status'</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">'--xml'</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> 291 328 <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> 292 329 <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> … … 319 356 <span class="s">'--non-interactive'</span><span class="p">,</span> 320 357 <span class="s">'--accept'</span><span class="p">,</span><span class="s">'theirs-conflict'</span><span class="p">,</span><span class="s">'--force'</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">>=</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">'--trust-server-cert'</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> 325 362 <span class="k">if</span> <span class="n">err</span><span class="p">:</span> 326 363 <span class="k">print</span><span class="p">(</span><span class="mi">60</span><span class="o">*</span><span class="s">"="</span><span class="p">)</span> … … 330 367 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span> 331 368 </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">'''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"> '''</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">'upgrade'</span><span class="p">,</span><span class="n">fpath</span><span class="p">,</span><span class="s">'--non-interactive'</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">"svn upgrade did not happen (this is probably OK). Messages:"</span><span class="p">)</span> 384 <span class="k">print</span> <span class="n">err</span> 385 </div> 332 386 <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> 333 387 <span class="sd">'''perform an update of GSAS-II in a separate python process'''</span> … … 346 400 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span> 347 401 </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">'''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"> '''</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">'/'</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">'/'</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">'switch'</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">'--non-interactive'</span><span class="p">,</span><span class="s">'--trust-server-cert'</span><span class="p">,</span> 428 <span class="s">'--accept'</span><span class="p">,</span><span class="s">'theirs-conflict'</span><span class="p">,</span><span class="s">'--force'</span><span class="p">]</span> 429 <span class="k">if</span> <span class="n">svnVersionNumber</span><span class="p">()</span> <span class="o">></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">'--ignore-ancestry'</span><span class="p">]</span> 430 <span class="k">print</span><span class="p">(</span><span class="s">"Loading files from "</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">"="</span><span class="p">)</span> 435 <span class="k">print</span> <span class="p">(</span><span class="s">"****** An error was noted, see below *********"</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">"="</span><span class="p">)</span> 437 <span class="k">print</span> <span class="s">'out='</span><span class="p">,</span><span class="n">out</span> 438 <span class="k">print</span> <span class="s">'err='</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">'''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"> '''</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">'co'</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">'--non-interactive'</span><span class="p">]</span> 453 <span class="k">if</span> <span class="n">svnVersionNumber</span><span class="p">()</span> <span class="o">>=</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">'--trust-server-cert'</span><span class="p">]</span> 454 <span class="k">print</span><span class="p">(</span><span class="s">"Loading files from "</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">"="</span><span class="p">)</span> 459 <span class="k">print</span> <span class="p">(</span><span class="s">"****** An error was noted, see below *********"</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">"="</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">'''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"> '''</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">'IPython InteractiveShellEmbed not found'</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">'Entering IPython console inside {0.f_code.co_filename} at line {0.f_lineno}'</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'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">'''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"> '''</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">'win'</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">'NoColor'</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">'LightBG'</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">'IPython InteractiveShellEmbed not found'</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">'Entering IPython console at {0.f_code.co_filename} at line {0.f_lineno}'</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'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">'''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"> '''</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">'Called in GSASII.py to set up debug options'</span> 525 <span class="k">if</span> <span class="n">GetConfigValue</span><span class="p">(</span><span class="s">'debug'</span><span class="p">):</span> 526 <span class="k">print</span> <span class="s">'Debug on: IPython: Exceptions and G2path.IPyBreak(); pdb: G2path.pdbBreak()'</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> 348 534 <span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span> 535 <span class="sd">'''What follows is called to update (or downdate) GSAS-II in a separate process. </span> 536 <span class="sd"> '''</span> 349 537 <span class="kn">import</span> <span class="nn">subprocess</span> 350 538 <span class="kn">import</span> <span class="nn">time</span>
Note: See TracChangeset
for help on using the changeset viewer.