]> SALOME platform Git repositories - tools/sat.git/blob - doc/build/html/_modules/src/options.html
Salome HOME
fix import src.salomeTools in job.py
[tools/sat.git] / doc / build / html / _modules / src / options.html
1
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
8     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9     <title>src.options &#8212; salomeTools 5.0.0dev documentation</title>
10     <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
11     <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
12     <script type="text/javascript" src="../../_static/documentation_options.js"></script>
13     <script type="text/javascript" src="../../_static/jquery.js"></script>
14     <script type="text/javascript" src="../../_static/underscore.js"></script>
15     <script type="text/javascript" src="../../_static/doctools.js"></script>
16     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
17     <link rel="index" title="Index" href="../../genindex.html" />
18     <link rel="search" title="Search" href="../../search.html" />
19    
20   <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
21   
22   
23   <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
24
25   </head><body>
26   
27
28     <div class="document">
29       <div class="documentwrapper">
30         <div class="bodywrapper">
31           <div class="body" role="main">
32             
33   <h1>Source code for src.options</h1><div class="highlight"><pre>
34 <span></span><span class="ch">#!/usr/bin/env python</span>
35 <span class="c1">#-*- coding:utf-8 -*-</span>
36 <span class="c1">#  Copyright (C) 2010-2013  CEA/DEN</span>
37 <span class="c1">#</span>
38 <span class="c1">#  This library is free software; you can redistribute it and/or</span>
39 <span class="c1">#  modify it under the terms of the GNU Lesser General Public</span>
40 <span class="c1">#  License as published by the Free Software Foundation; either</span>
41 <span class="c1">#  version 2.1 of the License.</span>
42 <span class="c1">#</span>
43 <span class="c1">#  This library is distributed in the hope that it will be useful,</span>
44 <span class="c1">#  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
45 <span class="c1">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
46 <span class="c1">#  Lesser General Public License for more details.</span>
47 <span class="c1">#</span>
48 <span class="c1">#  You should have received a copy of the GNU Lesser General Public</span>
49 <span class="c1">#  License along with this library; if not, write to the Free Software</span>
50 <span class="c1">#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA</span>
51
52 <span class="sd">&quot;&quot;&quot;</span>
53 <span class="sd">The Options class that manages the access to all options passed as </span>
54 <span class="sd">parameters in salomeTools command lines</span>
55 <span class="sd">&quot;&quot;&quot;</span>
56
57 <span class="kn">import</span> <span class="nn">getopt</span>
58 <span class="kn">import</span> <span class="nn">sys</span>
59 <span class="kn">import</span> <span class="nn">pprint</span> <span class="k">as</span> <span class="nn">PP</span>
60
61 <span class="kn">from</span> <span class="nn">.</span> <span class="k">import</span> <span class="n">printcolors</span>
62
63 <span class="kn">import</span> <span class="nn">src</span>
64 <span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span> <span class="c1"># Easy print stderr (for DEBUG only)</span>
65
66 <div class="viewcode-block" id="OptResult"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.OptResult">[docs]</a><span class="k">class</span> <span class="nc">OptResult</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
67     <span class="sd">&quot;&quot;&quot;</span>
68 <span class="sd">    An instance of this class will be the object manipulated</span>
69 <span class="sd">    in code of all salomeTools commands</span>
70 <span class="sd">    The aim of this class is to have an elegant syntax to manipulate the options.</span>
71 <span class="sd">    </span>
72 <span class="sd">    | Example:        </span>
73 <span class="sd">    | &gt;&gt; options, remainderArgs = command.parseArguments(args)</span>
74 <span class="sd">    | &gt;&gt; print(options.output_verbose_level)</span>
75 <span class="sd">    | &gt;&gt; &#39;INFO&#39;</span>
76 <span class="sd">    &quot;&quot;&quot;</span>
77     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
78         <span class="sd">&quot;&quot;&quot;Initialization</span>
79 <span class="sd">        &quot;&quot;&quot;</span>
80         <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
81
82     <span class="k">def</span> <span class="nf">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
83         <span class="sd">&quot;&quot;&quot;</span>
84 <span class="sd">        Overwrite of the __getattr__ function </span>
85 <span class="sd">        to customize it for option usage</span>
86 <span class="sd">        </span>
87 <span class="sd">        :param name: (str) The attribute to get the value.</span>
88 <span class="sd">        :return: (str int list boolean level)</span>
89 <span class="sd">          the value corresponding to the attribute.</span>
90 <span class="sd">        &quot;&quot;&quot;</span>
91         <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
92             <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
93         <span class="k">else</span><span class="p">:</span>
94             <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">&quot;--&quot;</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="sa">u</span><span class="s2">&quot; is not a valid option&quot;</span><span class="p">))</span>
95
96     <span class="k">def</span> <span class="nf">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
97         <span class="sd">&quot;&quot;&quot;</span>
98 <span class="sd">        Overwrite of the __setattr__ function </span>
99 <span class="sd">        to customize it for option usage</span>
100 <span class="sd">        </span>
101 <span class="sd">        :param name: (str) The attribute to set.</span>
102 <span class="sd">        :param value: (str) The value  corresponding to the attribute.</span>
103 <span class="sd">        :return: None</span>
104 <span class="sd">        &quot;&quot;&quot;</span>
105         <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
106
107     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
108         <span class="n">aStr</span> <span class="o">=</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">)</span>
109         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">aStr</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
110         <span class="k">return</span> <span class="n">res</span></div>
111
112 <div class="viewcode-block" id="Options"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options">[docs]</a><span class="k">class</span> <span class="nc">Options</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
113     <span class="sd">&quot;&quot;&quot;</span>
114 <span class="sd">    Class to manage all salomeTools options</span>
115 <span class="sd">    &quot;&quot;&quot;</span>
116     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
117         <span class="sd">&quot;&quot;&quot;Initialization</span>
118 <span class="sd">        &quot;&quot;&quot;</span>
119         <span class="c1"># The options field stocks all options of a command </span>
120         <span class="c1"># in a list that contains dicts</span>
121         <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="o">=</span> <span class="p">[]</span>
122         <span class="c1"># The list of available option type</span>
123         <span class="bp">self</span><span class="o">.</span><span class="n">availableOptions</span> <span class="o">=</span> <span class="s2">&quot;noboolean boolean string int float long list list2 level&quot;</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
124         <span class="bp">self</span><span class="o">.</span><span class="n">noArgOptions</span> <span class="o">=</span> <span class="s2">&quot;noboolean boolean&quot;</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
125         <span class="bp">self</span><span class="o">.</span><span class="n">default</span> <span class="o">=</span> <span class="kc">None</span>
126         <span class="bp">self</span><span class="o">.</span><span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
127
128 <div class="viewcode-block" id="Options.add_option"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.add_option">[docs]</a>    <span class="k">def</span> <span class="nf">add_option</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">shortName</span><span class="p">,</span> <span class="n">longName</span><span class="p">,</span> <span class="n">optionType</span><span class="p">,</span> <span class="n">destName</span><span class="p">,</span> <span class="n">helpString</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
129         <span class="sd">&quot;&quot;&quot;</span>
130 <span class="sd">        Add an option to a command. It gets all attributes</span>
131 <span class="sd">        of an option and append it in the options field</span>
132 <span class="sd">        </span>
133 <span class="sd">        :param shortName: (str) </span>
134 <span class="sd">          The short name of the option (as &#39;-l&#39; for level option).</span>
135 <span class="sd">        :param longName: (str) </span>
136 <span class="sd">          The long name of the option (as &#39;--level&#39; for level option).</span>
137 <span class="sd">        :param optionType: (str) The type of the option (ex &quot;int&quot;).</span>
138 <span class="sd">        :param destName: (str) The name that will be used in the code.</span>
139 <span class="sd">        :param helpString: (str) </span>
140 <span class="sd">          The text to display when user ask for help on a command.     </span>
141 <span class="sd">        :return: None</span>
142 <span class="sd">        &quot;&quot;&quot;</span>
143         <span class="n">tmp</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="k">if</span> <span class="n">o</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">]</span>
144         <span class="k">if</span> <span class="n">shortName</span> <span class="ow">in</span> <span class="n">tmp</span><span class="p">:</span> 
145           <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;option &#39;-</span><span class="si">%s</span><span class="s2">&#39; existing yet&quot;</span> <span class="o">%</span> <span class="n">shortName</span><span class="p">)</span>
146         <span class="n">tmp</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span> <span class="k">if</span> <span class="n">o</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">]</span>
147         <span class="k">if</span> <span class="n">longName</span> <span class="ow">in</span> <span class="n">tmp</span><span class="p">:</span> 
148           <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;option &#39;--</span><span class="si">%s</span><span class="s2">&#39; existing yet&quot;</span> <span class="o">%</span> <span class="n">longName</span><span class="p">)</span>
149
150         <span class="n">option</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
151         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">shortName</span>
152         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">longName</span>
153
154         <span class="k">if</span> <span class="n">optionType</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">availableOptions</span><span class="p">:</span>
155           <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;error optionType &#39;</span><span class="si">%s</span><span class="s2">&#39; not available.&quot;</span> <span class="o">%</span> <span class="n">optionType</span><span class="p">)</span>
156
157         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;optionType&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">optionType</span>
158         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;destName&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">destName</span>
159         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;helpString&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">helpString</span>
160         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">default</span>
161         
162         <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">option</span><span class="p">)</span></div>
163         
164 <div class="viewcode-block" id="Options.getDetailOption"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.getDetailOption">[docs]</a>    <span class="k">def</span> <span class="nf">getDetailOption</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">option</span><span class="p">):</span>
165         <span class="sd">&quot;&quot;&quot;</span>
166 <span class="sd">        for convenience </span>
167 <span class="sd">        </span>
168 <span class="sd">        :return: (tuple) 4-elements (shortName, longName, optionType, helpString)</span>
169 <span class="sd">        &quot;&quot;&quot;</span>
170         <span class="n">oos</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span>
171         <span class="n">ool</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span>
172         <span class="n">oot</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;optionType&#39;</span><span class="p">]</span>
173         <span class="n">ooh</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;helpString&#39;</span><span class="p">]</span>
174         <span class="k">return</span> <span class="p">(</span><span class="n">oos</span><span class="p">,</span> <span class="n">ool</span><span class="p">,</span> <span class="n">oot</span><span class="p">,</span> <span class="n">ooh</span><span class="p">)</span></div>
175
176 <div class="viewcode-block" id="Options.get_help"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.get_help">[docs]</a>    <span class="k">def</span> <span class="nf">get_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
177         <span class="sd">&quot;&quot;&quot;</span>
178 <span class="sd">        Returns all options stored in self.options </span>
179 <span class="sd">        as help message colored string</span>
180 <span class="sd">        </span>
181 <span class="sd">        :return: (str) colored string</span>
182 <span class="sd">        &quot;&quot;&quot;</span>
183         <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
184         <span class="c1"># Do nothing if there are no options</span>
185         <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
186             <span class="k">return</span> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;No available options.&quot;</span><span class="p">)</span>
187
188         <span class="c1"># for all options, gets its values. </span>
189         <span class="c1"># &quot;shortname&quot; is an mandatory field of the options, could be &#39;&#39; </span>
190         <span class="n">msg</span> <span class="o">+=</span> <span class="n">printcolors</span><span class="o">.</span><span class="n">printcHeader</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Available options are:&quot;</span><span class="p">))</span>
191         <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">:</span>
192             <span class="n">oos</span><span class="p">,</span> <span class="n">ool</span><span class="p">,</span> <span class="n">oot</span><span class="p">,</span> <span class="n">ooh</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">getDetailOption</span><span class="p">(</span><span class="n">option</span><span class="p">)</span>
193             <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">oos</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
194                 <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2"> -</span><span class="si">%1s</span><span class="s2">, --</span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">oos</span><span class="p">,</span> <span class="n">ool</span><span class="p">,</span> <span class="n">oot</span><span class="p">)</span>
195             <span class="k">else</span><span class="p">:</span>
196                 <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2"> --</span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ool</span><span class="p">,</span> <span class="n">oot</span><span class="p">)</span>
197                 
198             <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">ooh</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
199         <span class="k">return</span> <span class="n">msg</span></div>
200
201 <div class="viewcode-block" id="Options.print_help"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.print_help">[docs]</a>    <span class="k">def</span> <span class="nf">print_help</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
202         <span class="sd">&quot;&quot;&quot;</span>
203 <span class="sd">        Method that display all options stored in self.options and there help</span>
204 <span class="sd">        </span>
205 <span class="sd">        :return: None</span>
206 <span class="sd">        &quot;&quot;&quot;</span>
207         <span class="nb">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_help</span><span class="p">())</span>
208         <span class="k">return</span></div>
209
210 <div class="viewcode-block" id="Options.indent"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.indent">[docs]</a>    <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">amount</span><span class="p">,</span> <span class="n">car</span><span class="o">=</span><span class="s2">&quot; &quot;</span><span class="p">):</span>
211         <span class="sd">&quot;&quot;&quot;indent multi lines message&quot;&quot;&quot;</span>
212         <span class="n">padding</span> <span class="o">=</span> <span class="n">amount</span> <span class="o">*</span> <span class="n">car</span>
213         <span class="k">return</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">padding</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">text</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="kc">True</span><span class="p">))</span></div>
214                
215 <div class="viewcode-block" id="Options.parse_args"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.parse_args">[docs]</a>    <span class="k">def</span> <span class="nf">parse_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">argList</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
216         <span class="sd">&quot;&quot;&quot;</span>
217 <span class="sd">        Instantiates the class OptResult </span>
218 <span class="sd">        that gives access to all options in the code</span>
219 <span class="sd">        </span>
220 <span class="sd">        :param argList: (list) the raw list of arguments that were passed</span>
221 <span class="sd">        :return: (OptResult, list) as (optResult, args) </span>
222 <span class="sd">          optResult is the option instance to manipulate in the code. </span>
223 <span class="sd">          args is the full raw list of passed options </span>
224 <span class="sd">        &quot;&quot;&quot;</span>
225         <span class="c1"># see https://pymotw.com/2/getopt/</span>
226         <span class="k">if</span> <span class="n">argList</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
227             <span class="n">argList</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
228         
229         <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;parse_args&quot;</span><span class="p">,</span> <span class="n">argList</span><span class="p">)</span>
230         <span class="c1"># DBG.write(&quot;options&quot;, self.options)</span>
231         <span class="c1"># format shortNameOption and longNameOption </span>
232         <span class="c1"># to make right arguments to getopt.getopt function</span>
233         <span class="n">shortNameOption</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
234         <span class="n">longNameOption</span> <span class="o">=</span> <span class="p">[]</span>
235         <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">:</span>
236             <span class="n">shortNameOption</span> <span class="o">=</span> <span class="n">shortNameOption</span> <span class="o">+</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span>
237             <span class="k">if</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span> <span class="ow">and</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;optionType&#39;</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">noArgOptions</span><span class="p">:</span>
238                 <span class="n">shortNameOption</span> <span class="o">=</span> <span class="n">shortNameOption</span> <span class="o">+</span> <span class="s2">&quot;:&quot;</span>
239
240             <span class="k">if</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">:</span>
241                 <span class="k">if</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;optionType&#39;</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">noArgOptions</span><span class="p">:</span>
242                     <span class="n">longNameOption</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;=&quot;</span><span class="p">)</span>
243                 <span class="k">else</span><span class="p">:</span>
244                     <span class="n">longNameOption</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">])</span>
245
246         <span class="c1"># call to getopt.getopt function to get the option </span>
247         <span class="c1"># passed in the command regarding the available options</span>
248         <span class="k">try</span><span class="p">:</span>
249           <span class="n">optlist</span><span class="p">,</span> <span class="n">args</span> <span class="o">=</span> <span class="n">getopt</span><span class="o">.</span><span class="n">getopt</span><span class="p">(</span><span class="n">argList</span><span class="p">,</span> <span class="n">shortNameOption</span><span class="p">,</span> <span class="n">longNameOption</span><span class="p">)</span>
250         <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
251           <span class="n">msg</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; on &#39;</span><span class="si">%s</span><span class="s2">&#39;</span><span class="se">\n\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">argList</span><span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_help</span><span class="p">()</span>
252           <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
253
254         <span class="c1"># instantiate and completing the optResult that will be returned</span>
255         <span class="n">optResult</span> <span class="o">=</span> <span class="n">OptResult</span><span class="p">()</span>
256         <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">:</span>
257             <span class="n">shortOption</span> <span class="o">=</span> <span class="s2">&quot;-&quot;</span> <span class="o">+</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;shortName&#39;</span><span class="p">]</span>
258             <span class="n">longOption</span> <span class="o">=</span> <span class="s2">&quot;--&quot;</span> <span class="o">+</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;longName&#39;</span><span class="p">]</span>
259             <span class="n">optionType</span> <span class="o">=</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;optionType&#39;</span><span class="p">]</span>
260             <span class="k">for</span> <span class="n">opt</span> <span class="ow">in</span> <span class="n">optlist</span><span class="p">:</span>
261                 <span class="k">if</span> <span class="n">opt</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="n">shortOption</span><span class="p">,</span> <span class="n">longOption</span><span class="p">]:</span>
262                     <span class="k">if</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;string&quot;</span><span class="p">:</span>
263                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
264                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;boolean&quot;</span><span class="p">:</span>
265                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
266                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;noboolean&quot;</span><span class="p">:</span>
267                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>
268                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;int&quot;</span><span class="p">:</span>
269                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
270                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;float&quot;</span><span class="p">:</span>
271                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
272                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;long&quot;</span><span class="p">:</span>
273                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">long</span><span class="p">(</span><span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
274                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;list&quot;</span><span class="p">:</span>
275                         <span class="k">if</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
276                             <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
277                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
278                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;level&quot;</span><span class="p">:</span> <span class="c1">#logger logging levels</span>
279                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filterLevel</span><span class="p">(</span><span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
280                     <span class="k">elif</span> <span class="n">optionType</span> <span class="o">==</span> <span class="s2">&quot;list2&quot;</span><span class="p">:</span>
281                         <span class="k">if</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
282                             <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">list</span><span class="p">()</span>
283                         <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filterList2</span><span class="p">(</span><span class="n">opt</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
284
285             <span class="n">optResult</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">(</span><span class="n">option</span><span class="p">[</span><span class="s1">&#39;destName&#39;</span><span class="p">],</span> <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">])</span>
286             <span class="c1"># free the option in order to be able to make </span>
287             <span class="c1"># a new free call of options (API case)</span>
288             <span class="n">option</span><span class="p">[</span><span class="s1">&#39;result&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
289
290         <span class="bp">self</span><span class="o">.</span><span class="n">results</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;optlist&quot;</span><span class="p">:</span> <span class="n">optlist</span><span class="p">,</span> <span class="s2">&quot;optResult&quot;</span><span class="p">:</span> <span class="n">optResult</span><span class="p">,</span> <span class="s2">&quot;args&quot;</span><span class="p">:</span> <span class="n">args</span><span class="p">,</span> <span class="s2">&quot;argList&quot;</span><span class="p">:</span> <span class="n">argList</span><span class="p">}</span>
291         <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;results&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">results</span><span class="p">)</span>
292         <span class="k">return</span> <span class="n">optResult</span><span class="p">,</span> <span class="n">args</span></div>
293         
294 <div class="viewcode-block" id="Options.filterLevel"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.filterLevel">[docs]</a>    <span class="k">def</span> <span class="nf">filterLevel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">aLevel</span><span class="p">):</span>
295       <span class="sd">&quot;&quot;&quot;filter level logging values&quot;&quot;&quot;</span>
296       <span class="kn">import</span> <span class="nn">src.loggingSat</span> <span class="k">as</span> <span class="nn">LOG</span>
297       <span class="n">aLev</span> <span class="o">=</span> <span class="n">aLevel</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
298       <span class="n">knownLevels</span> <span class="o">=</span> <span class="n">LOG</span><span class="o">.</span><span class="n">_knownLevels</span>
299       <span class="n">maxLen</span> <span class="o">=</span> <span class="nb">max</span><span class="p">([</span><span class="nb">len</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">knownLevels</span><span class="p">])</span>
300       <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">maxLen</span><span class="p">):</span>
301         <span class="k">for</span> <span class="n">lev</span> <span class="ow">in</span> <span class="n">knownLevels</span><span class="p">:</span>
302           <span class="k">if</span> <span class="n">aLev</span> <span class="o">==</span> <span class="n">lev</span><span class="p">[:</span><span class="n">i</span><span class="p">]:</span>
303             <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;filterLevel&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> -&gt; </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">aLevel</span><span class="p">,</span> <span class="n">lev</span><span class="p">))</span> 
304             <span class="k">return</span> <span class="n">lev</span>
305       <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Unknown level &#39;</span><span class="si">%s</span><span class="s2">&#39;, accepted are:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">aLev</span><span class="p">,</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">knownLevels</span><span class="p">))</span>
306       <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div>
307       
308 <div class="viewcode-block" id="Options.filterList2"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.filterList2">[docs]</a>    <span class="k">def</span> <span class="nf">filterList2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">aStr</span><span class="p">):</span>
309       <span class="sd">&quot;&quot;&quot;filter a list as &#39;KERNEL,YACS,etc.&#39;&quot;&quot;&quot;</span>
310       <span class="n">aList</span> <span class="o">=</span> <span class="n">aStr</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;,&quot;</span><span class="p">)</span>
311       <span class="k">return</span> <span class="n">aList</span></div>
312       
313
314     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 
315         <span class="sd">&quot;&quot;&quot;</span>
316 <span class="sd">        repr for only self.options and self.results (if present)</span>
317 <span class="sd">        &quot;&quot;&quot;</span>
318         <span class="n">aDict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;options&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">,</span> <span class="s1">&#39;results&#39;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">results</span><span class="p">}</span>
319         <span class="n">aStr</span> <span class="o">=</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="n">aDict</span><span class="p">)</span>
320         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">aStr</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
321         <span class="k">return</span> <span class="n">res</span>
322         
323     <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 
324         <span class="sd">&quot;&quot;&quot;</span>
325 <span class="sd">        str for only resume expected self.options</span>
326 <span class="sd">        &quot;&quot;&quot;</span>
327         <span class="c1">#aDict = [(k[&quot;longName&quot;], k[&quot;shortName&quot;, k[&quot;helpString&quot;]) for k in self.options}</span>
328         <span class="c1">#aList = [(k, self.options[k]) for k in sorted(self.options.keys())]</span>
329         <span class="n">aDict</span> <span class="o">=</span> <span class="p">{}</span>
330         <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">options</span><span class="p">:</span>
331           <span class="n">aDict</span><span class="p">[</span><span class="n">o</span><span class="p">[</span><span class="s2">&quot;longName&quot;</span><span class="p">]]</span> <span class="o">=</span> <span class="p">(</span><span class="n">o</span><span class="p">[</span><span class="s2">&quot;shortName&quot;</span><span class="p">],</span> <span class="n">o</span><span class="p">[</span><span class="s2">&quot;helpString&quot;</span><span class="p">])</span>
332         <span class="n">aStr</span> <span class="o">=</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="n">aDict</span><span class="p">)</span>
333         <span class="n">res</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</span><span class="s2"> </span><span class="si">%s</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">aStr</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
334         <span class="k">return</span> <span class="n">res</span>
335         
336 <div class="viewcode-block" id="Options.debug_write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.options.Options.debug_write">[docs]</a>    <span class="k">def</span> <span class="nf">debug_write</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
337         <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;options and results&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span></div></div>
338
339
340 </pre></div>
341
342           </div>
343         </div>
344       </div>
345       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
346         <div class="sphinxsidebarwrapper">
347             <p class="logo"><a href="../../index.html">
348               <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
349             </a></p><div class="relations">
350 <h3>Related Topics</h3>
351 <ul>
352   <li><a href="../../index.html">Documentation overview</a><ul>
353   <li><a href="../index.html">Module code</a><ul>
354   <li><a href="../src.html">src</a><ul>
355   </ul></li>
356   </ul></li>
357   </ul></li>
358 </ul>
359 </div>
360 <div id="searchbox" style="display: none" role="search">
361   <h3>Quick search</h3>
362     <div class="searchformwrapper">
363     <form class="search" action="../../search.html" method="get">
364       <input type="text" name="q" />
365       <input type="submit" value="Go" />
366       <input type="hidden" name="check_keywords" value="yes" />
367       <input type="hidden" name="area" value="default" />
368     </form>
369     </div>
370 </div>
371 <script type="text/javascript">$('#searchbox').show(0);</script>
372         </div>
373       </div>
374       <div class="clearer"></div>
375     </div>
376     <div class="footer">
377       &copy;2018, CEA.
378       
379       |
380       Powered by <a href="http://sphinx-doc.org/">Sphinx 1.7.3</a>
381       &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
382       
383     </div>
384
385     
386
387     
388   </body>
389 </html>