Salome HOME
sat #8897 : prise en compte du cas overwrite où version est un dictionnaire
[tools/sat.git] / doc / build / html / _modules / src / fileEnviron.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.fileEnviron &#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.fileEnviron</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="kn">import</span> <span class="nn">os</span>
53 <span class="kn">import</span> <span class="nn">pprint</span> <span class="k">as</span> <span class="nn">PP</span>
54 <span class="kn">import</span> <span class="nn">src.debug</span> <span class="k">as</span> <span class="nn">DBG</span>
55
56 <span class="n">bat_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
57 <span class="s2">@echo off</span>
58
59 <span class="s2">rem The following variables are used only in case of a sat package</span>
60 <span class="s2">set out_dir_Path=%~dp0</span>
61 <span class="s2">set PRODUCT_OUT_DIR=</span><span class="si">%o</span><span class="s2">ut_dir_Path%</span>
62 <span class="s2">set prereq_install_Path=</span><span class="si">%o</span><span class="s2">ut_dir_Path%\PREREQUISITES\INSTALL</span>
63 <span class="s2">set prereq_build_Path=</span><span class="si">%o</span><span class="s2">ut_dir_Path%\PREREQUISITES\BUILD</span>
64 <span class="s2">&quot;&quot;&quot;</span>
65
66
67 <span class="n">bash_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
68 <span class="s2">#!/bin/bash</span>
69 <span class="s2">##########################################################################</span>
70 <span class="s2">#</span>
71 <span class="s2">#### cleandup ###</span>
72 <span class="s2"># cleanup a path (first parameter) from duplicated entries;</span>
73 <span class="s2"># second parameter is the separator</span>
74 <span class="s2">cleandup() {</span>
75 <span class="s2">out_var=`echo $1 | awk -v sep=$2 &#39;{                      </span><span class="se">\\</span><span class="s2"></span>
76 <span class="s2">     na = split($1,a,sep);                               </span><span class="se">\\</span><span class="s2"></span>
77 <span class="s2">     k=0;                                                </span><span class="se">\\</span><span class="s2"></span>
78 <span class="s2">     for(i=0;i&lt;=na;i++) {                                </span><span class="se">\\</span><span class="s2"></span>
79 <span class="s2">       found=0;                                          </span><span class="se">\\</span><span class="s2"></span>
80 <span class="s2">       for(j=0;j&lt;k;j++) {                                </span><span class="se">\\</span><span class="s2"></span>
81 <span class="s2">         if(a[i]==aa[j])                                 </span><span class="se">\\</span><span class="s2"></span>
82 <span class="s2">         {                                               </span><span class="se">\\</span><span class="s2"></span>
83 <span class="s2">           found=1;                                      </span><span class="se">\\</span><span class="s2"></span>
84 <span class="s2">           break;                                        </span><span class="se">\\</span><span class="s2"></span>
85 <span class="s2">         };                                              </span><span class="se">\\</span><span class="s2"></span>
86 <span class="s2">       };                                                </span><span class="se">\\</span><span class="s2"></span>
87 <span class="s2">       if(found==0) {                                    </span><span class="se">\\</span><span class="s2"></span>
88 <span class="s2">         aa[k++]=a[i];                                   </span><span class="se">\\</span><span class="s2"></span>
89 <span class="s2">       };                                                </span><span class="se">\\</span><span class="s2"></span>
90 <span class="s2">     };                                                  </span><span class="se">\\</span><span class="s2"></span>
91 <span class="s2">     ORS=sep;                                            </span><span class="se">\\</span><span class="s2"></span>
92 <span class="s2">     for(i=0;i&lt;k;i++) {                                  </span><span class="se">\\</span><span class="s2"></span>
93 <span class="s2">       print aa[i];                                      </span><span class="se">\\</span><span class="s2"></span>
94 <span class="s2">     }                                                   </span><span class="se">\\</span><span class="s2"></span>
95 <span class="s2">   }&#39; | sed -e &#39;s|</span><span class="se">\\</span><span class="s2">(.*</span><span class="se">\\</span><span class="s2">)$1|</span><span class="se">\\</span><span class="s2">1|g&#39; -e &#39;s|^[:;]||&#39; -e &#39;s|[:;]$||&#39;`</span>
96 <span class="s2">echo $out_var</span>
97 <span class="s2">}</span>
98 <span class="s2">### clean ###</span>
99 <span class="s2">clean ()</span>
100 <span class="s2">{</span>
101 <span class="s2">xenv=`printenv $1`</span>
102 <span class="s2">out_var=`cleandup $xenv $2`</span>
103 <span class="s2">export $1=$out_var</span>
104 <span class="s2">}</span>
105
106 <span class="s2"># The 3 following variables are used only in case of a sat package</span>
107 <span class="s2">export out_dir_Path=$(cd $(dirname $</span><span class="si">{BASH_SOURCE[0]}</span><span class="s2">);pwd)</span>
108 <span class="s2">export PRODUCT_OUT_DIR=$</span><span class="si">{out_dir_Path}</span><span class="s2"></span>
109 <span class="s2">export PRODUCT_ROOT_DIR=$</span><span class="si">{PRODUCT_OUT_DIR}</span><span class="s2"></span>
110
111 <span class="s2">###########################################################################</span>
112 <span class="s2">&quot;&quot;&quot;</span>
113
114 <span class="n">cfg_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
115 <span class="s2">[SALOME Configuration]</span>
116 <span class="s2">&quot;&quot;&quot;</span>
117
118 <span class="n">Launcher_header</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
119 <span class="s2"># a generated SALOME Configuration file using python syntax</span>
120 <span class="s2">&quot;&quot;&quot;</span>
121
122 <div class="viewcode-block" id="get_file_environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.get_file_environ">[docs]</a><span class="k">def</span> <span class="nf">get_file_environ</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
123     <span class="sd">&quot;&quot;&quot;Instantiate correct FileEnvironment sub-class.</span>
124 <span class="sd">    </span>
125 <span class="sd">    :param output file: the output file stream.</span>
126 <span class="sd">    :param shell str: the type of shell syntax to use.</span>
127 <span class="sd">    :param environ dict: a potential additional environment.</span>
128 <span class="sd">    &quot;&quot;&quot;</span>
129     <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">&quot;bash&quot;</span><span class="p">:</span>
130         <span class="k">return</span> <span class="n">BashFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
131     <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">&quot;bat&quot;</span><span class="p">:</span>
132         <span class="k">return</span> <span class="n">BatFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
133     <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">&quot;cfgForPy&quot;</span><span class="p">:</span>
134         <span class="k">return</span> <span class="n">LauncherFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
135     <span class="k">if</span> <span class="n">shell</span> <span class="o">==</span> <span class="s2">&quot;cfg&quot;</span><span class="p">:</span>
136         <span class="k">return</span> <span class="n">ContextFileEnviron</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
137     <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;FileEnviron: Unknown shell = </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">shell</span><span class="p">)</span></div>
138
139 <div class="viewcode-block" id="FileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron">[docs]</a><span class="k">class</span> <span class="nc">FileEnviron</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
140     <span class="sd">&quot;&quot;&quot;\</span>
141 <span class="sd">    Base class for shell environment</span>
142 <span class="sd">    &quot;&quot;&quot;</span>
143     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
144         <span class="sd">&quot;&quot;&quot;\</span>
145 <span class="sd">        Initialization</span>
146 <span class="sd">        </span>
147 <span class="sd">        :param output file: the output file stream.</span>
148 <span class="sd">        :param environ dict: a potential additional environment.</span>
149 <span class="sd">        &quot;&quot;&quot;</span>
150         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
151
152     <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
153         <span class="sd">&quot;&quot;&quot;\</span>
154 <span class="sd">        easy non exhaustive quick resume for debug print&quot;&quot;&quot;</span>
155         <span class="n">res</span> <span class="o">=</span> <span class="p">{</span>
156           <span class="s2">&quot;output&quot;</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="p">,</span>
157           <span class="s2">&quot;environ&quot;</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">,</span>
158         <span class="p">}</span>
159         <span class="k">return</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">(</span><span class="se">\n</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">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="n">res</span><span class="p">))</span>
160         
161
162     <span class="k">def</span> <span class="nf">_do_init</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
163         <span class="sd">&quot;&quot;&quot;\</span>
164 <span class="sd">        Initialization</span>
165 <span class="sd">        </span>
166 <span class="sd">        :param output file: the output file stream.</span>
167 <span class="sd">        :param environ dict: a potential additional environment.</span>
168 <span class="sd">        &quot;&quot;&quot;</span>
169         <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">output</span>
170         <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span> <span class="o">=</span> <span class="p">[]</span>
171         <span class="k">if</span> <span class="n">environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
172             <span class="c1">#if str(type(environ)) == &quot;&lt;type &#39;instance&#39;&gt;&quot;:</span>
173             <span class="k">if</span> <span class="nb">id</span><span class="p">(</span><span class="n">environ</span><span class="p">)</span> <span class="o">==</span> <span class="nb">id</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
174                <span class="n">DBG</span><span class="o">.</span><span class="n">tofix</span><span class="p">(</span><span class="s2">&quot;set </span><span class="si">%s</span><span class="s2"> environ as python os.environ, are you sure it is safe ?&quot;</span> <span class="o">%</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="kc">True</span><span class="p">)</span>
175             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
176         <span class="k">else</span><span class="p">:</span>
177             <span class="n">DBG</span><span class="o">.</span><span class="n">tofix</span><span class="p">(</span><span class="s2">&quot;set </span><span class="si">%s</span><span class="s2"> environ as COPY of python os.environ, are you sure it is safe ?&quot;</span> <span class="o">%</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="kc">True</span><span class="p">)</span>
178             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span> <span class="c1">#make a copy cvw 180320</span>
179
180 <div class="viewcode-block" id="FileEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
181         <span class="sd">&quot;&quot;&quot;\</span>
182 <span class="sd">        Add some empty lines in the shell file</span>
183 <span class="sd">        </span>
184 <span class="sd">        :param number int: the number of lines to add</span>
185 <span class="sd">        &quot;&quot;&quot;</span>
186         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">*</span> <span class="n">number</span><span class="p">)</span></div>
187
188 <div class="viewcode-block" id="FileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
189         <span class="sd">&quot;&quot;&quot;\</span>
190 <span class="sd">        Add a comment in the shell file</span>
191 <span class="sd">        </span>
192 <span class="sd">        :param comment str: the comment to add</span>
193 <span class="sd">        &quot;&quot;&quot;</span>
194         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</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="n">comment</span><span class="p">)</span></div>
195
196 <div class="viewcode-block" id="FileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
197         <span class="sd">&quot;&quot;&quot;\</span>
198 <span class="sd">        Add a &quot;echo&quot; in the shell file</span>
199 <span class="sd">        </span>
200 <span class="sd">        :param text str: the text to echo</span>
201 <span class="sd">        &quot;&quot;&quot;</span>
202         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;echo </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span></div>
203
204 <div class="viewcode-block" id="FileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
205         <span class="sd">&quot;&quot;&quot;\</span>
206 <span class="sd">        Add a warning &quot;echo&quot; in the shell file</span>
207 <span class="sd">        </span>
208 <span class="sd">        :param warning str: the text to echo</span>
209 <span class="sd">        &quot;&quot;&quot;</span>
210         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;echo &quot;WARNING </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
211
212 <div class="viewcode-block" id="FileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
213         <span class="sd">&quot;&quot;&quot;\</span>
214 <span class="sd">        append value to key using sep</span>
215 <span class="sd">        </span>
216 <span class="sd">        :param key str: the environment variable to append</span>
217 <span class="sd">        :param value str: the value to append to key</span>
218 <span class="sd">        :param sep str: the separator string</span>
219 <span class="sd">        &quot;&quot;&quot;</span>
220         <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="n">value</span><span class="p">)</span>
221         <span class="k">if</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</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">toclean</span><span class="p">:</span>
222             <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div>
223
224 <div class="viewcode-block" id="FileEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
225         <span class="sd">&quot;&quot;&quot;\</span>
226 <span class="sd">        Same as append_value but the value argument can be a list</span>
227 <span class="sd">        </span>
228 <span class="sd">        :param key str: the environment variable to append</span>
229 <span class="sd">        :param value str or list: the value(s) to append to key</span>
230 <span class="sd">        :param sep str: the separator string</span>
231 <span class="sd">        &quot;&quot;&quot;</span>
232         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
233             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
234         <span class="k">else</span><span class="p">:</span>
235             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
236
237 <div class="viewcode-block" id="FileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
238         <span class="sd">&quot;&quot;&quot;\</span>
239 <span class="sd">        prepend value to key using sep</span>
240 <span class="sd">        </span>
241 <span class="sd">        :param key str: the environment variable to prepend</span>
242 <span class="sd">        :param value str: the value to prepend to key</span>
243 <span class="sd">        :param sep str: the separator string</span>
244 <span class="sd">        &quot;&quot;&quot;</span>
245         <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
246         <span class="k">if</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</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">toclean</span><span class="p">:</span>
247             <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div>
248
249 <div class="viewcode-block" id="FileEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
250         <span class="sd">&quot;&quot;&quot;\</span>
251 <span class="sd">        Same as prepend_value but the value argument can be a list</span>
252 <span class="sd">        </span>
253 <span class="sd">        :param key str: the environment variable to prepend</span>
254 <span class="sd">        :param value str or list: the value(s) to prepend to key</span>
255 <span class="sd">        :param sep str: the separator string</span>
256 <span class="sd">        &quot;&quot;&quot;</span>
257         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
258             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
259         <span class="k">else</span><span class="p">:</span>
260             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
261
262 <div class="viewcode-block" id="FileEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
263         <span class="sd">&quot;&quot;&quot;\</span>
264 <span class="sd">        Check if the key exists in the environment</span>
265 <span class="sd">        </span>
266 <span class="sd">        :param key str: the environment variable to check</span>
267 <span class="sd">        &quot;&quot;&quot;</span>
268         <span class="k">return</span> <span class="p">(</span><span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span></div>
269
270 <div class="viewcode-block" id="FileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
271         <span class="sd">&quot;&quot;&quot;\</span>
272 <span class="sd">        Set the environment variable &#39;key&#39; to value &#39;value&#39;</span>
273 <span class="sd">        </span>
274 <span class="sd">        :param key str: the environment variable to set</span>
275 <span class="sd">        :param value str: the value</span>
276 <span class="sd">        &quot;&quot;&quot;</span>
277         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;set is not implement for this shell!&quot;</span><span class="p">)</span></div>
278
279 <div class="viewcode-block" id="FileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
280         <span class="sd">&quot;&quot;&quot;\</span>
281 <span class="sd">        Get the value of the environment variable &quot;key&quot;</span>
282 <span class="sd">        </span>
283 <span class="sd">        :param key str: the environment variable</span>
284 <span class="sd">        &quot;&quot;&quot;</span>
285         <span class="k">return</span> <span class="s1">&#39;${</span><span class="si">%s</span><span class="s1">}&#39;</span> <span class="o">%</span> <span class="n">key</span></div>
286
287 <div class="viewcode-block" id="FileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
288         <span class="sd">&quot;&quot;&quot;\</span>
289 <span class="sd">        Get the value given by the system command &quot;command&quot; </span>
290 <span class="sd">        and put it in the environment variable key.</span>
291 <span class="sd">        Has to be overwritten in the derived classes</span>
292 <span class="sd">        This can be seen as a virtual method</span>
293 <span class="sd">        </span>
294 <span class="sd">        :param key str: the environment variable</span>
295 <span class="sd">        :param command str: the command to execute</span>
296 <span class="sd">        &quot;&quot;&quot;</span>
297         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;command_value is not implement &quot;</span>
298                                   <span class="s2">&quot;for this shell!&quot;</span><span class="p">)</span></div>
299
300 <div class="viewcode-block" id="FileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.FileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
301         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
302 <span class="sd">        </span>
303 <span class="sd">        :param required bool: Do nothing if required is False</span>
304 <span class="sd">        &quot;&quot;&quot;</span>
305         <span class="k">for</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span><span class="p">:</span>
306             <span class="k">if</span> <span class="n">sep</span> <span class="o">!=</span> <span class="s1">&#39; &#39;</span><span class="p">:</span>
307                 <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;clean </span><span class="si">%s</span><span class="s1"> &quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="p">))</span></div></div>
308
309 <div class="viewcode-block" id="BashFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BashFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
310     <span class="sd">&quot;&quot;&quot;\</span>
311 <span class="sd">    Class for bash shell.</span>
312 <span class="sd">    &quot;&quot;&quot;</span>
313     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
314         <span class="sd">&quot;&quot;&quot;Initialization</span>
315 <span class="sd">        </span>
316 <span class="sd">        :param output file: the output file stream.</span>
317 <span class="sd">        :param environ dict: a potential additional environment.</span>
318 <span class="sd">        &quot;&quot;&quot;</span>
319         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
320         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">bash_header</span><span class="p">)</span>
321
322 <div class="viewcode-block" id="BashFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
323         <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
324 <span class="sd">        </span>
325 <span class="sd">        :param key str: the environment variable to set</span>
326 <span class="sd">        :param value str: the value</span>
327 <span class="sd">        &quot;&quot;&quot;</span>
328         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export </span><span class="si">%s</span><span class="s1">=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
329         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
330
331 <div class="viewcode-block" id="BashFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
332         <span class="sd">&quot;&quot;&quot;\</span>
333 <span class="sd">        Get the value given by the system command &quot;command&quot; </span>
334 <span class="sd">        and put it in the environment variable key.</span>
335 <span class="sd">        Has to be overwritten in the derived classes</span>
336 <span class="sd">        This can be seen as a virtual method</span>
337 <span class="sd">        </span>
338 <span class="sd">        :param key str: the environment variable</span>
339 <span class="sd">        :param command str: the command to execute</span>
340 <span class="sd">        &quot;&quot;&quot;</span>
341         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export </span><span class="si">%s</span><span class="s1">=$(</span><span class="si">%s</span><span class="s1">)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">))</span></div>
342
343 <div class="viewcode-block" id="BashFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BashFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
344         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
345 <span class="sd">        </span>
346 <span class="sd">        :param required bool: Do nothing if required is False</span>
347 <span class="sd">        &quot;&quot;&quot;</span>
348         <span class="k">if</span> <span class="ow">not</span> <span class="n">required</span><span class="p">:</span>
349             <span class="k">return</span>
350         <span class="n">FileEnviron</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="p">)</span></div></div>
351         
352 <div class="viewcode-block" id="BatFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">BatFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
353     <span class="sd">&quot;&quot;&quot;\</span>
354 <span class="sd">    for Windows batch shell.</span>
355 <span class="sd">    &quot;&quot;&quot;</span>
356     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
357         <span class="sd">&quot;&quot;&quot;Initialization</span>
358 <span class="sd">        </span>
359 <span class="sd">        :param output file: the output file stream.</span>
360 <span class="sd">        :param environ dict: a potential additional environment.</span>
361 <span class="sd">        &quot;&quot;&quot;</span>
362         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
363         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">bat_header</span><span class="p">)</span>
364
365 <div class="viewcode-block" id="BatFileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
366         <span class="sd">&quot;&quot;&quot;Add a comment in the shell file</span>
367 <span class="sd">        </span>
368 <span class="sd">        :param comment str: the comment to add</span>
369 <span class="sd">        &quot;&quot;&quot;</span>
370         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;rem </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">comment</span><span class="p">)</span></div>
371     
372 <div class="viewcode-block" id="BatFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
373         <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
374 <span class="sd">        </span>
375 <span class="sd">        :param key str: the environment variable</span>
376 <span class="sd">        &quot;&quot;&quot;</span>
377         <span class="k">return</span> <span class="s1">&#39;</span><span class="si">%%%s%%</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">key</span></div>
378     
379 <div class="viewcode-block" id="BatFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
380         <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
381 <span class="sd">        </span>
382 <span class="sd">        :param key str: the environment variable to set</span>
383 <span class="sd">        :param value str: the value</span>
384 <span class="sd">        &quot;&quot;&quot;</span>
385         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;set </span><span class="si">%s</span><span class="s1">=</span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
386         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
387
388 <div class="viewcode-block" id="BatFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
389         <span class="sd">&quot;&quot;&quot;\</span>
390 <span class="sd">        Get the value given by the system command &quot;command&quot; </span>
391 <span class="sd">        and put it in the environment variable key.</span>
392 <span class="sd">        Has to be overwritten in the derived classes</span>
393 <span class="sd">        This can be seen as a virtual method</span>
394 <span class="sd">        </span>
395 <span class="sd">        :param key str: the environment variable</span>
396 <span class="sd">        :param command str: the command to execute</span>
397 <span class="sd">        &quot;&quot;&quot;</span>
398         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> &gt; tmp.txt</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">command</span><span class="p">))</span>
399         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;set /p </span><span class="si">%s</span><span class="s1"> =&lt; tmp.txt</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">))</span></div>
400
401 <div class="viewcode-block" id="BatFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.BatFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
402         <span class="sd">&quot;&quot;&quot;\</span>
403 <span class="sd">        Add a final instruction in the out file (in case of file generation)</span>
404 <span class="sd">        In the particular windows case, do nothing</span>
405 <span class="sd">        </span>
406 <span class="sd">        :param required bool: Do nothing if required is False</span>
407 <span class="sd">        &quot;&quot;&quot;</span>
408         <span class="k">return</span></div></div>
409
410 <div class="viewcode-block" id="ContextFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">ContextFileEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
411     <span class="sd">&quot;&quot;&quot;Class for a salome context configuration file.</span>
412 <span class="sd">    &quot;&quot;&quot;</span>
413     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
414         <span class="sd">&quot;&quot;&quot;Initialization</span>
415 <span class="sd">        </span>
416 <span class="sd">        :param output file: the output file stream.</span>
417 <span class="sd">        :param environ dict: a potential additional environment.</span>
418 <span class="sd">        &quot;&quot;&quot;</span>
419         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
420         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">cfg_header</span><span class="p">)</span>
421
422 <div class="viewcode-block" id="ContextFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
423         <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
424 <span class="sd">        </span>
425 <span class="sd">        :param key str: the environment variable to set</span>
426 <span class="sd">        :param value str: the value</span>
427 <span class="sd">        &quot;&quot;&quot;</span>
428         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">=&quot;</span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
429         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
430
431 <div class="viewcode-block" id="ContextFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
432         <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
433 <span class="sd">        </span>
434 <span class="sd">        :param key str: the environment variable</span>
435 <span class="sd">        &quot;&quot;&quot;</span>
436         <span class="k">return</span> <span class="s1">&#39;%(</span><span class="si">{0}</span><span class="s1">)s&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">key</span><span class="p">)</span></div>
437
438 <div class="viewcode-block" id="ContextFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
439         <span class="sd">&quot;&quot;&quot;\</span>
440 <span class="sd">        Get the value given by the system command &quot;command&quot; </span>
441 <span class="sd">        and put it in the environment variable key.</span>
442 <span class="sd">        Has to be overwritten in the derived classes</span>
443 <span class="sd">        This can be seen as a virtual method</span>
444 <span class="sd">        </span>
445 <span class="sd">        :param key str: the environment variable</span>
446 <span class="sd">        :param command str: the command to execute</span>
447 <span class="sd">        &quot;&quot;&quot;</span>
448         <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;command_value is not implement &quot;</span>
449                                   <span class="s2">&quot;for salome context files!&quot;</span><span class="p">)</span></div>
450
451 <div class="viewcode-block" id="ContextFileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
452         <span class="sd">&quot;&quot;&quot;Add a comment</span>
453 <span class="sd">        </span>
454 <span class="sd">        :param text str: the comment to add</span>
455 <span class="sd">        &quot;&quot;&quot;</span>
456         <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></div>
457
458 <div class="viewcode-block" id="ContextFileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
459         <span class="sd">&quot;&quot;&quot;Add a warning</span>
460 <span class="sd">        </span>
461 <span class="sd">        :param text str: the warning to add</span>
462 <span class="sd">        &quot;&quot;&quot;</span>
463         <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s2">&quot;WARNING </span><span class="si">%s</span><span class="s2">&quot;</span>  <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
464
465 <div class="viewcode-block" id="ContextFileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
466         <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
467 <span class="sd">        </span>
468 <span class="sd">        :param key str: the environment variable to prepend</span>
469 <span class="sd">        :param value str: the value to prepend to key</span>
470 <span class="sd">        :param sep str: the separator string</span>
471 <span class="sd">        &quot;&quot;&quot;</span>
472         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;ADD_TO_</span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
473
474 <div class="viewcode-block" id="ContextFileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
475         <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
476 <span class="sd">        </span>
477 <span class="sd">        :param key str: the environment variable to append</span>
478 <span class="sd">        :param value str: the value to append to key</span>
479 <span class="sd">        :param sep str: the separator string</span>
480 <span class="sd">        &quot;&quot;&quot;</span>
481         <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
482
483 <div class="viewcode-block" id="ContextFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ContextFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
484         <span class="sd">&quot;&quot;&quot;Add a final instruction in the out file (in case of file generation)</span>
485 <span class="sd">        </span>
486 <span class="sd">        :param required bool: Do nothing if required is False</span>
487 <span class="sd">        &quot;&quot;&quot;</span>
488         <span class="k">return</span></div></div>
489
490 <div class="viewcode-block" id="special_path_separator"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.special_path_separator">[docs]</a><span class="k">def</span> <span class="nf">special_path_separator</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
491     <span class="sd">&quot;&quot;&quot;\</span>
492 <span class="sd">    TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables need</span>
493 <span class="sd">    some exotic path separator.</span>
494 <span class="sd">    This function gives the separator regarding the name of the variable</span>
495 <span class="sd">    to append or prepend.</span>
496 <span class="sd">       </span>
497 <span class="sd">    :param name str: The name of the variable to find the separator</span>
498 <span class="sd">    &quot;&quot;&quot;</span>
499     <span class="n">special_blanks_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;TCLLIBPATH&quot;</span><span class="p">,</span> <span class="s2">&quot;TKLIBPATH&quot;</span><span class="p">]</span>
500     <span class="n">special_semicolon_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;PV_PLUGIN_PATH&quot;</span><span class="p">]</span>
501     <span class="n">res</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span>
502     <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">special_blanks_keys</span><span class="p">:</span> <span class="n">res</span><span class="o">=</span><span class="s2">&quot; &quot;</span>
503     <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">special_semicolon_keys</span><span class="p">:</span> <span class="n">res</span><span class="o">=</span><span class="s2">&quot;;&quot;</span>
504     <span class="k">return</span> <span class="n">res</span></div>
505
506 <div class="viewcode-block" id="LauncherFileEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron">[docs]</a><span class="k">class</span> <span class="nc">LauncherFileEnviron</span><span class="p">:</span>
507     <span class="sd">&quot;&quot;&quot;\</span>
508 <span class="sd">    Class to generate a launcher file script </span>
509 <span class="sd">    (in python syntax) SalomeContext API</span>
510 <span class="sd">    &quot;&quot;&quot;</span>
511     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
512         <span class="sd">&quot;&quot;&quot;Initialization</span>
513 <span class="sd">        </span>
514 <span class="sd">        :param output file: the output file stream.</span>
515 <span class="sd">        :param environ dict: a potential additional environment.</span>
516 <span class="sd">        &quot;&quot;&quot;</span>
517         <span class="bp">self</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">output</span>
518         <span class="bp">self</span><span class="o">.</span><span class="n">toclean</span> <span class="o">=</span> <span class="p">[]</span>
519         <span class="k">if</span> <span class="n">environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
520             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
521         <span class="k">else</span><span class="p">:</span>
522             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span>
523         <span class="c1"># Initialize some variables</span>
524         <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;PATH&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
525             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;PATH&quot;</span><span class="p">]</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
526         <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;LD_LIBRARY_PATH&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
527             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;LD_LIBRARY_PATH&quot;</span><span class="p">]</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
528         <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;PYTHONPATH&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
529             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;PYTHONPATH&quot;</span><span class="p">]</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
530         <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;TCLLIBPATH&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
531             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;TCLLIBPATH&quot;</span><span class="p">]</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
532         <span class="k">if</span> <span class="ow">not</span> <span class="s2">&quot;TKLIBPATH&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
533             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;TKLIBPATH&quot;</span><span class="p">]</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
534
535         <span class="c1"># four whitespaces for first indentation in a python script</span>
536         <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">=</span><span class="s2">&quot;    &quot;</span>
537         <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;context.&quot;</span>
538         <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">=</span><span class="s2">&quot;setVariable&quot;</span>
539         
540         <span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">prefix</span>
541         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">Launcher_header</span><span class="p">)</span>
542         <span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;PATH&quot;</span><span class="p">:</span> <span class="s2">&quot;Path&quot;</span><span class="p">,</span>
543                           <span class="s2">&quot;LD_LIBRARY_PATH&quot;</span><span class="p">:</span> <span class="s2">&quot;LdLibraryPath&quot;</span><span class="p">,</span>
544                           <span class="s2">&quot;PYTHONPATH&quot;</span><span class="p">:</span> <span class="s2">&quot;PythonPath&quot;</span><span class="p">}</span>
545
546 <div class="viewcode-block" id="LauncherFileEnviron.change_to_launcher"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.change_to_launcher">[docs]</a>    <span class="k">def</span> <span class="nf">change_to_launcher</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
547         <span class="n">res</span><span class="o">=</span><span class="n">value</span>
548         <span class="k">return</span> <span class="n">res</span></div>
549
550 <div class="viewcode-block" id="LauncherFileEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
551         <span class="sd">&quot;&quot;&quot;Add some empty lines in the launcher file</span>
552 <span class="sd">        </span>
553 <span class="sd">        :param number int: the number of lines to add</span>
554 <span class="sd">        &quot;&quot;&quot;</span>
555         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">*</span> <span class="n">number</span><span class="p">)</span></div>
556
557 <div class="viewcode-block" id="LauncherFileEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
558         <span class="sd">&quot;&quot;&quot;Add a comment</span>
559 <span class="sd">        </span>
560 <span class="sd">        :param text str: the comment to add</span>
561 <span class="sd">        &quot;&quot;&quot;</span>
562         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;# </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">text</span><span class="p">)</span></div>
563
564 <div class="viewcode-block" id="LauncherFileEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
565         <span class="sd">&quot;&quot;&quot;Add a warning</span>
566 <span class="sd">        </span>
567 <span class="sd">        :param text str: the warning to add</span>
568 <span class="sd">        &quot;&quot;&quot;</span>
569         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;# &quot;WARNING </span><span class="si">%s</span><span class="s1">&quot;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">warning</span><span class="p">)</span></div>
570
571 <div class="viewcode-block" id="LauncherFileEnviron.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append_value">[docs]</a>    <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
572         <span class="sd">&quot;&quot;&quot;append value to key using sep</span>
573 <span class="sd">        </span>
574 <span class="sd">        :param key str: the environment variable to append</span>
575 <span class="sd">        :param value str: the value to append to key</span>
576 <span class="sd">        :param sep str: the separator string</span>
577 <span class="sd">        &quot;&quot;&quot;</span>
578         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="p">:</span>
579             <span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
580         <span class="k">else</span> <span class="p">:</span>
581             <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
582
583 <div class="viewcode-block" id="LauncherFileEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
584         <span class="sd">&quot;&quot;&quot;Same as append_value but the value argument can be a list</span>
585 <span class="sd">        </span>
586 <span class="sd">        :param key str: the environment variable to append</span>
587 <span class="sd">        :param value str or list: the value(s) to append to key</span>
588 <span class="sd">        :param sep str: the separator string</span>
589 <span class="sd">        &quot;&quot;&quot;</span>
590         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
591             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
592         <span class="k">else</span><span class="p">:</span>
593             <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
594
595 <div class="viewcode-block" id="LauncherFileEnviron.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend_value">[docs]</a>    <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
596         <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
597 <span class="sd">        </span>
598 <span class="sd">        :param key str: the environment variable to prepend</span>
599 <span class="sd">        :param value str: the value to prepend to key</span>
600 <span class="sd">        :param sep str: the separator string</span>
601 <span class="sd">        &quot;&quot;&quot;</span>
602         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="p">:</span>
603             <span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
604         <span class="k">else</span> <span class="p">:</span>
605             <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
606
607 <div class="viewcode-block" id="LauncherFileEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
608         <span class="sd">&quot;&quot;&quot;Same as prepend_value but the value argument can be a list</span>
609 <span class="sd">        </span>
610 <span class="sd">        :param key str: the environment variable to prepend</span>
611 <span class="sd">        :param value str or list: the value(s) to prepend to key</span>
612 <span class="sd">        :param sep str: the separator string</span>
613 <span class="sd">        &quot;&quot;&quot;</span>
614         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
615             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">),</span> <span class="n">sep</span><span class="p">)</span>
616         <span class="k">else</span><span class="p">:</span>
617             <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span></div>
618
619 <div class="viewcode-block" id="LauncherFileEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
620         <span class="sd">&quot;&quot;&quot;Check if the key exists in the environment</span>
621 <span class="sd">        </span>
622 <span class="sd">        :param key str: the environment variable to check</span>
623 <span class="sd">        &quot;&quot;&quot;</span>
624         <span class="k">return</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span></div>
625
626 <div class="viewcode-block" id="LauncherFileEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
627         <span class="sd">&quot;&quot;&quot;Get the value of the environment variable &quot;key&quot;</span>
628 <span class="sd">        </span>
629 <span class="sd">        :param key str: the environment variable</span>
630 <span class="sd">        &quot;&quot;&quot;</span>
631         <span class="k">return</span> <span class="s1">&#39;${</span><span class="si">%s</span><span class="s1">}&#39;</span> <span class="o">%</span> <span class="n">key</span></div>
632
633 <div class="viewcode-block" id="LauncherFileEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
634         <span class="sd">&quot;&quot;&quot;Set the environment variable &quot;key&quot; to value &quot;value&quot;</span>
635 <span class="sd">        </span>
636 <span class="sd">        :param key str: the environment variable to set</span>
637 <span class="sd">        :param value str: the value</span>
638 <span class="sd">        &quot;&quot;&quot;</span>
639         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
640                           <span class="s1">&#39;(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;, overwrite=True)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
641                           <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
642         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
643     
644 <div class="viewcode-block" id="LauncherFileEnviron.add"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add">[docs]</a>    <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
645         <span class="sd">&quot;&quot;&quot;prepend value to key using sep</span>
646 <span class="sd">        </span>
647 <span class="sd">        :param key str: the environment variable to prepend</span>
648 <span class="sd">        :param value str: the value to prepend to key</span>
649 <span class="sd">        &quot;&quot;&quot;</span>     
650         <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
651             <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="s1">&#39;addTo</span><span class="si">%s</span><span class="s1">(r&quot;</span><span class="si">%s</span><span class="s1">&quot;)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
652                               <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">specialKeys</span><span class="p">[</span><span class="n">key</span><span class="p">],</span>
653                                <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
654             <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">+=</span><span class="s2">&quot;:&quot;</span><span class="o">+</span><span class="n">value</span>
655             <span class="k">return</span>
656         <span class="n">sep</span><span class="o">=</span><span class="n">special_path_separator</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
657         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
658                           <span class="s1">&#39;#temporary solution!!! have to be defined in API a &#39;</span>
659                           <span class="s1">&#39;?dangerous? addToSpecial(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
660                           <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
661         <span class="c1">#pathsep not precised because do not know future os launch?</span>
662         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span><span class="s1">&#39;addToSpecial(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;)</span><span class="se">\n</span><span class="s1">&#39;</span> 
663                           <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
664         <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">+=</span><span class="n">sep</span><span class="o">+</span><span class="n">value</span> <span class="c1">#here yes we know os for current execution</span></div>
665
666 <div class="viewcode-block" id="LauncherFileEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
667         <span class="sd">&quot;&quot;&quot;\</span>
668 <span class="sd">        Get the value given by the system command &quot;command&quot; </span>
669 <span class="sd">        and put it in the environment variable key.</span>
670 <span class="sd">        </span>
671 <span class="sd">        :param key str: the environment variable</span>
672 <span class="sd">        :param command str: the command to execute</span>
673 <span class="sd">        &quot;&quot;&quot;</span>
674         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span><span class="s1">&#39;#`</span><span class="si">%s</span><span class="s1">`</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">command</span><span class="p">)</span>
675
676         <span class="kn">import</span> <span class="nn">shlex</span><span class="o">,</span> <span class="nn">subprocess</span>
677         <span class="n">args</span> <span class="o">=</span> <span class="n">shlex</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">command</span><span class="p">)</span>
678         <span class="n">res</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">args</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>
679         <span class="n">out</span><span class="p">,</span> <span class="n">__</span> <span class="o">=</span> <span class="n">res</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
680         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">begin</span><span class="o">+</span>
681                           <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
682                           <span class="s1">&#39;(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;, overwrite=True)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">out</span><span class="p">))</span></div>
683
684 <div class="viewcode-block" id="LauncherFileEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
685         <span class="c1"># Special comment in case of the distène licence</span>
686         <span class="k">if</span> <span class="n">comment</span><span class="o">==</span><span class="s2">&quot;DISTENE license&quot;</span><span class="p">:</span>
687             <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
688                               <span class="s2">&quot;#&quot;</span><span class="o">+</span>
689                               <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">+</span>
690                               <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
691                               <span class="s1">&#39;(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;, overwrite=True)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
692                               <span class="p">(</span><span class="s1">&#39;DISTENE_LICENSE_FILE&#39;</span><span class="p">,</span> 
693                                <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span>
694                                             <span class="s1">&#39;Use global envvar: DLIM8VAR&#39;</span><span class="p">)))</span>
695             <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="o">+</span>
696                               <span class="s2">&quot;#&quot;</span><span class="o">+</span>
697                               <span class="bp">self</span><span class="o">.</span><span class="n">prefix</span><span class="o">+</span>
698                               <span class="bp">self</span><span class="o">.</span><span class="n">setVarEnv</span><span class="o">+</span>
699                               <span class="s1">&#39;(r&quot;</span><span class="si">%s</span><span class="s1">&quot;, r&quot;</span><span class="si">%s</span><span class="s1">&quot;, overwrite=True)</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> 
700                               <span class="p">(</span><span class="s1">&#39;DLIM8VAR&#39;</span><span class="p">,</span> 
701                                <span class="bp">self</span><span class="o">.</span><span class="n">change_to_launcher</span><span class="p">(</span>
702                                                 <span class="s1">&#39;&lt;your licence&gt;&#39;</span><span class="p">)))</span>
703             <span class="k">return</span>
704         <span class="k">if</span> <span class="s2">&quot;setting environ for&quot;</span> <span class="ow">in</span> <span class="n">comment</span><span class="p">:</span>
705             <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">&quot;</span> <span class="o">%</span> 
706                               <span class="n">comment</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;setting environ for &quot;</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span>
707             <span class="k">return</span>
708
709         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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="n">comment</span><span class="p">)</span></div>
710
711 <div class="viewcode-block" id="LauncherFileEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.LauncherFileEnviron.finish">[docs]</a>    <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
712         <span class="sd">&quot;&quot;&quot;\</span>
713 <span class="sd">        Add a final instruction in the out file (in case of file generation)</span>
714 <span class="sd">        In the particular launcher case, do nothing</span>
715 <span class="sd">        </span>
716 <span class="sd">        :param required bool: Do nothing if required is False</span>
717 <span class="sd">        &quot;&quot;&quot;</span>
718         <span class="k">return</span></div></div>
719
720 <div class="viewcode-block" id="ScreenEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron">[docs]</a><span class="k">class</span> <span class="nc">ScreenEnviron</span><span class="p">(</span><span class="n">FileEnviron</span><span class="p">):</span>
721     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
722         <span class="bp">self</span><span class="o">.</span><span class="n">_do_init</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span>
723         <span class="bp">self</span><span class="o">.</span><span class="n">defined</span> <span class="o">=</span> <span class="p">{}</span>
724
725 <div class="viewcode-block" id="ScreenEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_line">[docs]</a>    <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span>
726         <span class="k">pass</span></div>
727
728 <div class="viewcode-block" id="ScreenEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_comment">[docs]</a>    <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
729         <span class="k">pass</span></div>
730
731 <div class="viewcode-block" id="ScreenEnviron.add_echo"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_echo">[docs]</a>    <span class="k">def</span> <span class="nf">add_echo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
732         <span class="k">pass</span></div>
733
734 <div class="viewcode-block" id="ScreenEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.add_warning">[docs]</a>    <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
735         <span class="k">pass</span></div>
736
737 <div class="viewcode-block" id="ScreenEnviron.write"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.write">[docs]</a>    <span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">&quot;=&quot;</span><span class="p">):</span>
738         <span class="kn">import</span> <span class="nn">src</span>
739         <span class="bp">self</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;  </span><span class="si">%s%s</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="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> \
740             <span class="p">(</span><span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">command</span><span class="p">),</span>
741              <span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">12</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">command</span><span class="p">)),</span>
742              <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcInfo</span><span class="p">(</span><span class="n">name</span><span class="p">),</span> <span class="n">sign</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span></div>
743
744 <div class="viewcode-block" id="ScreenEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.is_defined">[docs]</a>    <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
745         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">defined</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">name</span><span class="p">)</span></div>
746
747 <div class="viewcode-block" id="ScreenEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
748         <span class="k">return</span> <span class="s2">&quot;${</span><span class="si">%s</span><span class="s2">}&quot;</span> <span class="o">%</span> <span class="n">name</span></div>
749
750 <div class="viewcode-block" id="ScreenEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.set">[docs]</a>    <span class="k">def</span> <span class="nf">set</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>
751         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;set&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
752         <span class="bp">self</span><span class="o">.</span><span class="n">defined</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span></div>
753
754 <div class="viewcode-block" id="ScreenEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.prepend">[docs]</a>    <span class="k">def</span> <span class="nf">prepend</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> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
755         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
756             <span class="n">value</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
757         <span class="n">value</span> <span class="o">=</span> <span class="n">value</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
758         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;prepend&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
759
760 <div class="viewcode-block" id="ScreenEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.append">[docs]</a>    <span class="k">def</span> <span class="nf">append</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> <span class="n">sep</span><span class="o">=</span><span class="s2">&quot;:&quot;</span><span class="p">):</span>
761         <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
762             <span class="n">value</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
763         <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="n">sep</span> <span class="o">+</span> <span class="n">value</span>
764         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;append&quot;</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
765
766 <div class="viewcode-block" id="ScreenEnviron.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.command_value">[docs]</a>    <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
767         <span class="k">pass</span></div>
768
769 <div class="viewcode-block" id="ScreenEnviron.run_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.fileEnviron.ScreenEnviron.run_env_script">[docs]</a>    <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">script</span><span class="p">):</span>
770         <span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;load&quot;</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">sign</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">)</span></div></div>
771
772 <span class="c1"># The SALOME launcher template </span>
773 <span class="n">withProfile</span> <span class="o">=</span>  <span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
774 <span class="s2">#! /usr/bin/env python</span>
775
776 <span class="s2">################################################################</span>
777 <span class="s2"># WARNING: this file is automatically generated by SalomeTools #</span>
778 <span class="s2"># WARNING: and so could be overwritten at any time.            #</span>
779 <span class="s2">################################################################</span>
780
781 <span class="s2">import os</span>
782 <span class="s2">import sys</span>
783 <span class="s2">import subprocess</span>
784
785
786 <span class="s2"># Add the pwdPath to able to run the launcher after unpacking a package</span>
787 <span class="s2"># Used only in case of a salomeTools package</span>
788 <span class="s2">out_dir_Path=os.path.abspath(os.path.dirname(__file__))</span>
789
790 <span class="s2"># Preliminary work to initialize path to SALOME Python modules</span>
791 <span class="s2">def __initialize():</span>
792
793 <span class="s2">  sys.path[:0] = [ &#39;BIN_KERNEL_INSTALL_DIR&#39; ]</span>
794 <span class="s2">  os.environ[&#39;ABSOLUTE_APPLI_PATH&#39;] = &#39;KERNEL_INSTALL_DIR&#39;</span>
795 <span class="s2">  </span>
796 <span class="s2">  # define folder to store omniorb config (initially in virtual application folder)</span>
797 <span class="s2">  try:</span>
798 <span class="s2">    from salomeContextUtils import setOmniOrbUserPath</span>
799 <span class="s2">    setOmniOrbUserPath()</span>
800 <span class="s2">  except Exception, e:</span>
801 <span class="s2">    print e</span>
802 <span class="s2">    sys.exit(1)</span>
803 <span class="s2"># End of preliminary work</span>
804
805 <span class="s2"># salome doc only works for virtual applications. Therefore we overwrite it with this function</span>
806 <span class="s2">def _showDoc(modules):</span>
807 <span class="s2">    for module in modules:</span>
808 <span class="s2">      modulePath = os.getenv(module+&quot;_ROOT_DIR&quot;)</span>
809 <span class="s2">      if modulePath != None:</span>
810 <span class="s2">        baseDir = os.path.join(modulePath, &quot;share&quot;, &quot;doc&quot;, &quot;salome&quot;)</span>
811 <span class="s2">        docfile = os.path.join(baseDir, &quot;gui&quot;, module.upper(), &quot;index.html&quot;)</span>
812 <span class="s2">        if not os.path.isfile(docfile):</span>
813 <span class="s2">          docfile = os.path.join(baseDir, &quot;tui&quot;, module.upper(), &quot;index.html&quot;)</span>
814 <span class="s2">        if not os.path.isfile(docfile):</span>
815 <span class="s2">          docfile = os.path.join(baseDir, &quot;dev&quot;, module.upper(), &quot;index.html&quot;)</span>
816 <span class="s2">        if os.path.isfile(docfile):</span>
817 <span class="s2">          out, err = subprocess.Popen([&quot;xdg-open&quot;, docfile]).communicate()</span>
818 <span class="s2">        else:</span>
819 <span class="s2">          print &quot;Online documentation is not accessible for module:&quot;, module</span>
820 <span class="s2">      else:</span>
821 <span class="s2">        print module+&quot;_ROOT_DIR not found!&quot;</span>
822
823 <span class="s2">def main(args):</span>
824 <span class="s2">  # Identify application path then locate configuration files</span>
825 <span class="s2">  __initialize()</span>
826
827 <span class="s2">  if args == [&#39;--help&#39;]:</span>
828 <span class="s2">    from salomeContext import usage</span>
829 <span class="s2">    usage()</span>
830 <span class="s2">    sys.exit(0)</span>
831
832 <span class="s2">  #from salomeContextUtils import getConfigFileNames</span>
833 <span class="s2">  #configFileNames, args, unexisting = getConfigFileNames( args, checkExistence=True )</span>
834 <span class="s2">  #if len(unexisting) &gt; 0:</span>
835 <span class="s2">  #  print &quot;ERROR: unexisting configuration file(s): &quot; + &#39;, &#39;.join(unexisting)</span>
836 <span class="s2">  #  sys.exit(1)</span>
837
838 <span class="s2">  # Create a SalomeContext which parses configFileNames to initialize environment</span>
839 <span class="s2">  try:</span>
840 <span class="s2">    from salomeContext import SalomeContext, SalomeContextException</span>
841 <span class="s2">    SalomeContext.addToSpecial=addToSpecial</span>
842 <span class="s2">    context = SalomeContext(None)</span>
843 <span class="s2">    </span>
844 <span class="s2">    # Here set specific variables, if needed</span>
845 <span class="s2">    # context.addToPath(&#39;mypath&#39;)</span>
846 <span class="s2">    # context.addToLdLibraryPath(&#39;myldlibrarypath&#39;)</span>
847 <span class="s2">    # context.addToPythonPath(&#39;mypythonpath&#39;)</span>
848 <span class="s2">    # context.setVariable(&#39;myvarname&#39;, &#39;value&#39;)</span>
849
850 <span class="s2">    # Logger level error</span>
851 <span class="s2">    context.getLogger().setLevel(40)</span>
852
853 <span class="s2">    context.setVariable(r&quot;PRODUCT_ROOT_DIR&quot;, out_dir_Path, overwrite=True)</span>
854 <span class="s2">    # here your local standalone environment</span>
855
856 <span class="s2">    if len(args) &gt;1 and args[0]==&#39;doc&#39;:</span>
857 <span class="s2">        _showDoc(args[1:])</span>
858 <span class="s2">        return</span>
859
860 <span class="s2">    # Start SALOME, parsing command line arguments</span>
861 <span class="s2">    out, err, status = context.runSalome(args)</span>
862 <span class="s2">    sys.exit(status)</span>
863
864 <span class="s2">  except SalomeContextException, e:</span>
865 <span class="s2">    import logging</span>
866 <span class="s2">    logging.getLogger(&quot;salome&quot;).error(e)</span>
867 <span class="s2">    sys.exit(1)</span>
868 <span class="s2">#</span>
869 <span class="s2">def addToSpecial(self, name, value, pathSep=None):</span>
870 <span class="s2">  # add special dangerous cases: TCLLIBPATH PV_PLUGIN_PATH etc...</span>
871 <span class="s2">  # http://computer-programming-forum.com/57-tcl/1dfddc136afccb94.htm</span>
872 <span class="s2">  # TCLLIBPATH: Tcl treats the contents of that variable as a list. Be happy, for you can now use drive letters on windows.</span>
873 <span class="s2">  if value == &#39;&#39;:</span>
874 <span class="s2">    return</span>
875 <span class="s2">  </span>
876 <span class="s2">  specialBlanksKeys=[&quot;TCLLIBPATH&quot;, &quot;TKLIBPATH&quot;]</span>
877 <span class="s2">  specialSemicolonKeys=[&quot;PV_PLUGIN_PATH&quot;]</span>
878 <span class="s2">  res=os.pathsep</span>
879 <span class="s2">  if name in specialBlanksKeys: res=&quot; &quot;</span>
880 <span class="s2">  if name in specialSemicolonKeys: res=&quot;;&quot;</span>
881 <span class="s2">  </span>
882 <span class="s2">  if pathSep==None:</span>
883 <span class="s2">    sep=res</span>
884 <span class="s2">  else:</span>
885 <span class="s2">    sep=pathSep</span>
886 <span class="s2">  value = os.path.expandvars(value) # expand environment variables</span>
887 <span class="s2">  self.getLogger().debug(&quot;Add to </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;, name, value)</span>
888 <span class="s2">  env = os.getenv(name, None)</span>
889 <span class="s2">  if env is None:</span>
890 <span class="s2">    os.environ[name] = value</span>
891 <span class="s2">  else:</span>
892 <span class="s2">    os.environ[name] = value + sep + env #explicitely or not special path separator ?whitespace, semicolon?</span>
893
894 <span class="s2">if __name__ == &quot;__main__&quot;:</span>
895 <span class="s2">  args = sys.argv[1:]</span>
896 <span class="s2">  main(args)</span>
897 <span class="s2">#</span>
898 <span class="s2">&quot;&quot;&quot;</span>
899     
900 <span class="n">withProfile3</span> <span class="o">=</span>  <span class="s2">&quot;&quot;&quot;</span><span class="se">\</span>
901 <span class="s2">#! /usr/bin/env python3</span>
902
903 <span class="s2">################################################################</span>
904 <span class="s2"># WARNING: this file is automatically generated by SalomeTools #</span>
905 <span class="s2"># WARNING: and so could be overwritten at any time.            #</span>
906 <span class="s2">################################################################</span>
907
908 <span class="s2">import os</span>
909 <span class="s2">import sys</span>
910 <span class="s2">import subprocess</span>
911
912
913 <span class="s2"># Add the pwdPath to able to run the launcher after unpacking a package</span>
914 <span class="s2"># Used only in case of a salomeTools package</span>
915 <span class="s2">out_dir_Path=os.path.abspath(os.path.dirname(__file__))</span>
916
917 <span class="s2"># Preliminary work to initialize path to SALOME Python modules</span>
918 <span class="s2">def __initialize():</span>
919
920 <span class="s2">  sys.path[:0] = [ &#39;BIN_KERNEL_INSTALL_DIR&#39; ]</span>
921 <span class="s2">  os.environ[&#39;ABSOLUTE_APPLI_PATH&#39;] = &#39;KERNEL_INSTALL_DIR&#39;</span>
922 <span class="s2">  </span>
923 <span class="s2">  # define folder to store omniorb config (initially in virtual application folder)</span>
924 <span class="s2">  try:</span>
925 <span class="s2">    from salomeContextUtils import setOmniOrbUserPath</span>
926 <span class="s2">    setOmniOrbUserPath()</span>
927 <span class="s2">  except Exception as e:</span>
928 <span class="s2">    print(e)</span>
929 <span class="s2">    sys.exit(1)</span>
930 <span class="s2"># End of preliminary work</span>
931
932 <span class="s2"># salome doc only works for virtual applications. Therefore we overwrite it with this function</span>
933 <span class="s2">def _showDoc(modules):</span>
934 <span class="s2">    for module in modules:</span>
935 <span class="s2">      modulePath = os.getenv(module+&quot;_ROOT_DIR&quot;)</span>
936 <span class="s2">      if modulePath != None:</span>
937 <span class="s2">        baseDir = os.path.join(modulePath, &quot;share&quot;, &quot;doc&quot;, &quot;salome&quot;)</span>
938 <span class="s2">        docfile = os.path.join(baseDir, &quot;gui&quot;, module.upper(), &quot;index.html&quot;)</span>
939 <span class="s2">        if not os.path.isfile(docfile):</span>
940 <span class="s2">          docfile = os.path.join(baseDir, &quot;tui&quot;, module.upper(), &quot;index.html&quot;)</span>
941 <span class="s2">        if not os.path.isfile(docfile):</span>
942 <span class="s2">          docfile = os.path.join(baseDir, &quot;dev&quot;, module.upper(), &quot;index.html&quot;)</span>
943 <span class="s2">        if os.path.isfile(docfile):</span>
944 <span class="s2">          out, err = subprocess.Popen([&quot;xdg-open&quot;, docfile]).communicate()</span>
945 <span class="s2">        else:</span>
946 <span class="s2">          print(&quot;Online documentation is not accessible for module:&quot;, module)</span>
947 <span class="s2">      else:</span>
948 <span class="s2">        print(module+&quot;_ROOT_DIR not found!&quot;)</span>
949
950 <span class="s2">def main(args):</span>
951 <span class="s2">  # Identify application path then locate configuration files</span>
952 <span class="s2">  __initialize()</span>
953
954 <span class="s2">  if args == [&#39;--help&#39;]:</span>
955 <span class="s2">    from salomeContext import usage</span>
956 <span class="s2">    usage()</span>
957 <span class="s2">    sys.exit(0)</span>
958
959 <span class="s2">  #from salomeContextUtils import getConfigFileNames</span>
960 <span class="s2">  #configFileNames, args, unexisting = getConfigFileNames( args, checkExistence=True )</span>
961 <span class="s2">  #if len(unexisting) &gt; 0:</span>
962 <span class="s2">  #  print(&quot;ERROR: unexisting configuration file(s): &quot; + &#39;, &#39;.join(unexisting))</span>
963 <span class="s2">  #  sys.exit(1)</span>
964
965 <span class="s2">  # Create a SalomeContext which parses configFileNames to initialize environment</span>
966 <span class="s2">  try:</span>
967 <span class="s2">    from salomeContext import SalomeContext, SalomeContextException</span>
968 <span class="s2">    SalomeContext.addToSpecial=addToSpecial</span>
969 <span class="s2">    context = SalomeContext(None)</span>
970 <span class="s2">    </span>
971 <span class="s2">    # Here set specific variables, if needed</span>
972 <span class="s2">    # context.addToPath(&#39;mypath&#39;)</span>
973 <span class="s2">    # context.addToLdLibraryPath(&#39;myldlibrarypath&#39;)</span>
974 <span class="s2">    # context.addToPythonPath(&#39;mypythonpath&#39;)</span>
975 <span class="s2">    # context.setVariable(&#39;myvarname&#39;, &#39;value&#39;)</span>
976
977 <span class="s2">    # Logger level error</span>
978 <span class="s2">    context.getLogger().setLevel(40)</span>
979
980 <span class="s2">    context.setVariable(r&quot;PRODUCT_ROOT_DIR&quot;, out_dir_Path, overwrite=True)</span>
981 <span class="s2">    # here your local standalone environment</span>
982
983 <span class="s2">    if len(args) &gt;1 and args[0]==&#39;doc&#39;:</span>
984 <span class="s2">        _showDoc(args[1:])</span>
985 <span class="s2">        return</span>
986
987 <span class="s2">    # Start SALOME, parsing command line arguments</span>
988 <span class="s2">    out, err, status = context.runSalome(args)</span>
989 <span class="s2">    sys.exit(status)</span>
990
991 <span class="s2">  except SalomeContextException as e:</span>
992 <span class="s2">    import logging</span>
993 <span class="s2">    logging.getLogger(&quot;salome&quot;).error(e)</span>
994 <span class="s2">    sys.exit(1)</span>
995 <span class="s2">#</span>
996 <span class="s2">def addToSpecial(self, name, value, pathSep=None):</span>
997 <span class="s2">  # add special dangerous cases: TCLLIBPATH PV_PLUGIN_PATH etc...</span>
998 <span class="s2">  # http://computer-programming-forum.com/57-tcl/1dfddc136afccb94.htm</span>
999 <span class="s2">  # TCLLIBPATH: Tcl treats the contents of that variable as a list. Be happy, for you can now use drive letters on windows.</span>
1000 <span class="s2">  if value == &#39;&#39;:</span>
1001 <span class="s2">    return</span>
1002 <span class="s2">  </span>
1003 <span class="s2">  specialBlanksKeys=[&quot;TCLLIBPATH&quot;, &quot;TKLIBPATH&quot;]</span>
1004 <span class="s2">  specialSemicolonKeys=[&quot;PV_PLUGIN_PATH&quot;]</span>
1005 <span class="s2">  res=os.pathsep</span>
1006 <span class="s2">  if name in specialBlanksKeys: res=&quot; &quot;</span>
1007 <span class="s2">  if name in specialSemicolonKeys: res=&quot;;&quot;</span>
1008 <span class="s2">  </span>
1009 <span class="s2">  if pathSep==None:</span>
1010 <span class="s2">    sep=res</span>
1011 <span class="s2">  else:</span>
1012 <span class="s2">    sep=pathSep</span>
1013 <span class="s2">  value = os.path.expandvars(value) # expand environment variables</span>
1014 <span class="s2">  self.getLogger().debug(&quot;Add to </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;, name, value)</span>
1015 <span class="s2">  env = os.getenv(name, None)</span>
1016 <span class="s2">  if env is None:</span>
1017 <span class="s2">    os.environ[name] = value</span>
1018 <span class="s2">  else:</span>
1019 <span class="s2">    os.environ[name] = value + sep + env #explicitely or not special path separator ?whitespace, semicolon?</span>
1020
1021 <span class="s2">if __name__ == &quot;__main__&quot;:</span>
1022 <span class="s2">  args = sys.argv[1:]</span>
1023 <span class="s2">  main(args)</span>
1024 <span class="s2">#</span>
1025 <span class="s2">&quot;&quot;&quot;</span>
1026     
1027 </pre></div>
1028
1029           </div>
1030         </div>
1031       </div>
1032       <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
1033         <div class="sphinxsidebarwrapper">
1034             <p class="logo"><a href="../../index.html">
1035               <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
1036             </a></p><div class="relations">
1037 <h3>Related Topics</h3>
1038 <ul>
1039   <li><a href="../../index.html">Documentation overview</a><ul>
1040   <li><a href="../index.html">Module code</a><ul>
1041   <li><a href="../src.html">src</a><ul>
1042   </ul></li>
1043   </ul></li>
1044   </ul></li>
1045 </ul>
1046 </div>
1047 <div id="searchbox" style="display: none" role="search">
1048   <h3>Quick search</h3>
1049     <div class="searchformwrapper">
1050     <form class="search" action="../../search.html" method="get">
1051       <input type="text" name="q" />
1052       <input type="submit" value="Go" />
1053       <input type="hidden" name="check_keywords" value="yes" />
1054       <input type="hidden" name="area" value="default" />
1055     </form>
1056     </div>
1057 </div>
1058 <script type="text/javascript">$('#searchbox').show(0);</script>
1059         </div>
1060       </div>
1061       <div class="clearer"></div>
1062     </div>
1063     <div class="footer">
1064       &copy;2018, CEA.
1065       
1066       |
1067       Powered by <a href="http://sphinx-doc.org/">Sphinx 1.7.3</a>
1068       &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.10</a>
1069       
1070     </div>
1071
1072     
1073
1074     
1075   </body>
1076 </html>