Something went wrong on our end
-
Gerardo Tauriello authoredGerardo Tauriello authored
helper.html 20.11 KiB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>promod3.core.helper — ProMod3 1.1.0 documentation</title>
<link rel="stylesheet" href="../../../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.1.0',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</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>
<link rel="top" title="ProMod3 1.1.0 documentation" href="../../../index.html" />
<link rel="up" title="promod3" href="../../promod3.html" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
</head>
<body role="document">
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1>Source code for promod3.core.helper</h1><div class="highlight"><pre>
<span class="sd">"""</span>
<span class="sd">Uncategorised functions which may come handy at several places.</span>
<span class="sd">"""</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">ost</span>
<div class="viewcode-block" id="MsgErrorAndExit"><a class="viewcode-back" href="../../../core/helper.html#promod3.core.helper.MsgErrorAndExit">[docs]</a><span class="k">def</span> <span class="nf">MsgErrorAndExit</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">exit_status</span><span class="p">):</span>
<span class="sd">'''</span>
<span class="sd"> Send a messages to the |ost_s| :ost_docs:`error log <base/logging/>` and</span>
<span class="sd"> exit the Python interpreter.</span>
<span class="sd"> :param msg: The message.</span>
<span class="sd"> :type msg: :class:`str`</span>
<span class="sd"> :param exit_status: Exit code, ends up in ``$?`` in the shell. ``0`` is</span>
<span class="sd"> traditionally reserved to successful commands.</span>
<span class="sd"> :type exit_status: :class:`int`</span>
<span class="sd"> :returns: No return value, exits script with value ``exit_status``.</span>
<span class="sd"> '''</span>
<span class="n">ost</span><span class="o">.</span><span class="n">LogError</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">exit_status</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="FileExists"><a class="viewcode-back" href="../../../core/helper.html#promod3.core.helper.FileExists">[docs]</a><span class="k">def</span> <span class="nf">FileExists</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">exit_status</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span>
<span class="sd">'''</span>
<span class="sd"> Checks if a file exists, terminates if not. The error message displayed is</span>
<span class="sd"> fixed and only needs a *prefix* describing the specimen of file.</span>
<span class="sd"> :param prefix: String to put in front of the failure-message</span>
<span class="sd"> "file does not exist: ``file``".</span>
<span class="sd"> :type prefix: :class:`str`</span>
<span class="sd"> :param exit_status: Exit code on missing file, ends up in ``$?`` in the</span>
<span class="sd"> shell. ``0`` is traditionally reserved to successful commands.</span>
<span class="sd"> :type exit_status: :class:`int`</span>
<span class="sd"> :param file: Path including file name to be checked.</span>
<span class="sd"> :type file: :class:`str`</span>
<span class="sd"> :returns: No return value, exits script with value ``exit_status`` if file</span>
<span class="sd"> is missing.</span>
<span class="sd"> '''</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
<span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> file does not exist: </span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">filename</span><span class="p">),</span>
<span class="n">exit_status</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="FileGzip"><a class="viewcode-back" href="../../../core/helper.html#promod3.core.helper.FileGzip">[docs]</a><span class="k">def</span> <span class="nf">FileGzip</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">exit_status</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">allowed</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
<span class="sd">'''</span>
<span class="sd"> See if a file is gzipped or not. This is basically done by checking for a</span>
<span class="sd"> "gz" suffix. May also be used to verify that a file is not compressed where</span>
<span class="sd"> it does not apply. That is where *allowed* comes in. If "gz" is not allowed,</span>
<span class="sd"> terminates the script on gzip files.</span>
<span class="sd"> :param prefix: String to put in front of the failure-message where gzip</span>
<span class="sd"> files are not allowed.</span>
<span class="sd"> :type prefix: :class:`str`</span>
<span class="sd"> :param exit_status: Exit code on gzip files to be avoided, ends up in</span>
<span class="sd"> ``$?`` in the shell. ``0`` is traditionally reserved to</span>
<span class="sd"> successful commands.</span>
<span class="sd"> :type exit_status: :class:`int`</span>
<span class="sd"> :param filename: Path including file name to be checked.</span>
<span class="sd"> :type filename: :class:`str`</span>
<span class="sd"> :param allowed: Set to ``False`` if gzipped files are not allowed. Then the</span>
<span class="sd"> script will terminate if a gzip file is found.</span>
<span class="sd"> :type allowed: :class:`bool`</span>
<span class="sd"> :returns: Flag to indicate if file is gzipped (:class:`bool`).</span>
<span class="sd"> '''</span>
<span class="n">_</span><span class="p">,</span> <span class="n">fileext</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">splitext</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
<span class="n">is_gz</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">if</span> <span class="n">fileext</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">'.gz'</span><span class="p">:</span>
<span class="n">is_gz</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">allowed</span><span class="p">:</span>
<span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> file in Gzip not supported: </span><span class="si">%s</span><span class="s">. '</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
<span class="n">filename</span><span class="p">),</span>
<span class="n">exit_status</span><span class="p">)</span>
<span class="k">return</span> <span class="n">is_gz</span>
</div>
<div class="viewcode-block" id="FileExtension"><a class="viewcode-back" href="../../../core/helper.html#promod3.core.helper.FileExtension">[docs]</a><span class="k">def</span> <span class="nf">FileExtension</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span> <span class="n">exit_status</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">extensions</span><span class="p">,</span> <span class="n">gzip</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
<span class="sd">'''</span>
<span class="sd"> Checks a file to carry a known extension given by a list of strings. Since</span>
<span class="sd"> files are very often compressed these days, an additional "gz" suffix can be</span>
<span class="sd"> tracked automatically by this function. Thus, the list of *extensions* only</span>
<span class="sd"> needs to contain what you are really looking for, e.g. ("pdb") instead of</span>
<span class="sd"> ("pdb", "pdb.gz"). The *gzip* flag also determines the output of this</span>
<span class="sd"> function. If enabled, a triple is returned: name of the file without</span>
<span class="sd"> extension, its extension and a Boolean to tell whether the file carries the</span>
<span class="sd"> gzip extension or not. If *gzip* detection is turned of, only a tuple is</span>
<span class="sd"> returned: file name and extension. If the tested file name has an</span>
<span class="sd"> unrecognised extension, this function terminates the script.</span>
<span class="sd"> :param prefix: String to put in front of the failure-message</span>
<span class="sd"> "file extension not supported: ``filename``".</span>
<span class="sd"> :type prefix: :class:`str`</span>
<span class="sd"> :param exit_status: Exit code on missing file, ends up in ``$?`` in the</span>
<span class="sd"> shell. ``0`` is traditionally reserved to successful commands.</span>
<span class="sd"> :type exit_status: :class:`int`</span>
<span class="sd"> :param filename: Path including file name to be checked.</span>
<span class="sd"> :type filename: :class:`str`</span>
<span class="sd"> :param extensions: List of strings without a leading ".".</span>
<span class="sd"> :type extensions: :class:`list`</span>
<span class="sd"> :param gzip: Indicates whether to check for an additional "gz" extension.</span>
<span class="sd"> :type gzip: :class:`bool`</span>
<span class="sd"> :returns: (base name of ``filename`` (:class:`str`), extension of file</span>
<span class="sd"> without a ".gz" (:class:`str`), flag to indicate an additional</span>
<span class="sd"> ".gz" (:class:`bool`)) **if** ``gzip`` is set, (base name of</span>
<span class="sd"> ``filename`` (:class:`str`), extension of file) **if not**.</span>
<span class="sd"> '''</span>
<span class="n">pfilename</span><span class="p">,</span> <span class="n">fileext</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">splitext</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span>
<span class="n">is_gz</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">if</span> <span class="n">fileext</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s">'.gz'</span><span class="p">:</span>
<span class="n">is_gz</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">pfilename</span><span class="p">,</span> <span class="n">fileext</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">splitext</span><span class="p">(</span><span class="n">pfilename</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">gzip</span><span class="p">:</span>
<span class="n">extension_string</span> <span class="o">=</span> <span class="s">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span>
<span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> file extension not supported: </span><span class="si">%s</span><span class="s">. '</span> <span class="o">%</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
<span class="n">filename</span><span class="p">)</span><span class="o">+</span>
<span class="s">'Allowed extensions are: </span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">extension_string</span><span class="p">,</span>
<span class="n">exit_status</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fileext</span> <span class="o">==</span> <span class="s">''</span><span class="p">:</span>
<span class="n">extension_string</span> <span class="o">=</span> <span class="s">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span>
<span class="k">if</span> <span class="n">gzip</span><span class="p">:</span>
<span class="n">extension_string</span> <span class="o">+=</span> <span class="s">', '</span> <span class="o">+</span> <span class="s">'.gz, '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span> <span class="o">+</span> <span class="s">'.gz'</span>
<span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> file extension not supported: </span><span class="si">%s</span><span class="s">. '</span> <span class="o">%</span><span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
<span class="n">filename</span><span class="p">)</span><span class="o">+</span>
<span class="s">'Allowed extensions are: </span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">extension_string</span><span class="p">,</span>
<span class="n">exit_status</span><span class="p">)</span>
<span class="n">fileext</span> <span class="o">=</span> <span class="n">fileext</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
<span class="k">for</span> <span class="n">ext</span> <span class="ow">in</span> <span class="n">extensions</span><span class="p">:</span>
<span class="k">if</span> <span class="n">fileext</span> <span class="o">==</span> <span class="n">ext</span><span class="o">.</span><span class="n">lower</span><span class="p">():</span>
<span class="k">if</span> <span class="n">gzip</span><span class="p">:</span>
<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">basename</span><span class="p">(</span><span class="n">pfilename</span><span class="p">),</span> <span class="n">fileext</span><span class="p">,</span> <span class="n">is_gz</span>
<span class="k">else</span><span class="p">:</span>
<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">basename</span><span class="p">(</span><span class="n">pfilename</span><span class="p">),</span> <span class="n">fileext</span>
<span class="n">extension_string</span> <span class="o">=</span> <span class="s">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span>
<span class="k">if</span> <span class="n">gzip</span><span class="p">:</span>
<span class="n">extension_string</span> <span class="o">+=</span> <span class="s">', '</span> <span class="o">+</span> <span class="s">'.gz, '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">extensions</span><span class="p">)</span> <span class="o">+</span> <span class="s">'.gz'</span>
<span class="n">MsgErrorAndExit</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> file extension not supported: </span><span class="si">%s</span><span class="s">. '</span> <span class="o">%</span> <span class="p">(</span><span class="n">prefix</span><span class="p">,</span>
<span class="n">filename</span><span class="p">)</span><span class="o">+</span>
<span class="s">'Allowed extensions are: </span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">extension_string</span><span class="p">,</span>
<span class="n">exit_status</span><span class="p">)</span>
</div>
<span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span>
<span class="s">'MsgErrorAndExit'</span><span class="p">,</span>
<span class="s">'FileExists'</span><span class="p">,</span>
<span class="s">'FileExtension'</span><span class="p">,</span>
<span class="p">)</span>
<span class="c"># LocalWords: gzipped gz param str gzip bool</span>
</pre></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper"><div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../../../index.html">Documentation overview</a><ul>
<li><a href="../../index.html">Module code</a><ul>
<li><a href="../../promod3.html">promod3</a><ul>
</ul></li>
</ul></li>
</ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="../../../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©2017, ProMod3 authors.
|
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.3.1</a>
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.6</a>
</div>
</body>
</html>