Changeset 2625ca8 in flex_extract.git for documentation/Sphinx/build/html/_modules/install.html
- Timestamp:
- Jan 15, 2019, 1:03:37 AM (5 years ago)
- Branches:
- master, ctbto, dev
- Children:
- 6f951ca
- Parents:
- 0629ba8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
documentation/Sphinx/build/html/_modules/install.html
r274f9ef r2625ca8 167 167 <span class="c1"># - splitted code in smaller functions</span> 168 168 <span class="c1"># - delete convert build files in here instead of compile job script</span> 169 <span class="c1"># - changed static path names to Variables from config file</span> 169 <span class="c1"># - changed static path names to variables from config file</span> 170 <span class="c1"># - splitted install function into several smaller pieces</span> 171 <span class="c1"># - use of tarfile package in python</span> 170 172 <span class="c1">#</span> 171 173 <span class="c1"># @License:</span> 172 <span class="c1"># (C) Copyright 2015-2018.</span> 174 <span class="c1"># (C) Copyright 2014-2019.</span> 175 <span class="c1"># Anne Philipp, Leopold Haimberger</span> 173 176 <span class="c1">#</span> 174 <span class="c1"># This software is licensed under the terms of the Apache Licence Version 2.0</span> 175 <span class="c1"># which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.</span> 177 <span class="c1"># This work is licensed under the Creative Commons Attribution 4.0</span> 178 <span class="c1"># International License. To view a copy of this license, visit</span> 179 <span class="c1"># http://creativecommons.org/licenses/by/4.0/ or send a letter to</span> 180 <span class="c1"># Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</span> 176 181 <span class="c1">#</span> 177 <span class="c1"># @Program Functionality:</span> 178 <span class="c1"># Depending on the selected installation environment (locally or on the</span> 179 <span class="c1"># ECMWF server ecgate or cca) the program extracts the commandline</span> 180 <span class="c1"># arguments and the CONTROL file parameter and prepares the corresponding</span> 181 <span class="c1"># environment. The necessary files are collected in a tar-ball and placed</span> 182 <span class="c1"># at the target location. There its untared, the environment variables will</span> 183 <span class="c1"># be set and the Fortran code will be compiled. If the ECMWF environment is</span> 184 <span class="c1"># selected a job script is prepared and submitted for the remaining</span> 185 <span class="c1"># configurations after putting the tar-ball to the target ECMWF server.</span> 186 <span class="c1">#</span> 187 <span class="c1"># @Program Content:</span> 188 <span class="c1"># - main</span> 189 <span class="c1"># - get_install_cmdline_arguments</span> 190 <span class="c1"># - install_via_gateway</span> 191 <span class="c1"># - mk_tarball</span> 192 <span class="c1"># - un_tarball</span> 193 <span class="c1"># - mk_env_vars</span> 194 <span class="c1"># - mk_compilejob</span> 195 <span class="c1"># - mk_job_template</span> 196 <span class="c1"># - delete_convert_build</span> 197 <span class="c1"># - make_convert_build</span> 182 <span class="c1"># @Methods:</span> 183 <span class="c1"># main</span> 184 <span class="c1"># get_install_cmdline_args</span> 185 <span class="c1"># install_via_gateway</span> 186 <span class="c1"># check_install_conditions</span> 187 <span class="c1"># mk_tarball</span> 188 <span class="c1"># un_tarball</span> 189 <span class="c1"># mk_env_vars</span> 190 <span class="c1"># mk_compilejob</span> 191 <span class="c1"># mk_job_template</span> 192 <span class="c1"># del_convert_build</span> 193 <span class="c1"># mk_convert_build</span> 198 194 <span class="c1">#</span> 199 195 <span class="c1">#*******************************************************************************</span> 196 <span class="sd">'''This script installs the flex_extract program.</span> 197 198 <span class="sd">Depending on the selected installation environment (locally or on the</span> 199 <span class="sd">ECMWF server ecgate or cca) the program extracts the commandline</span> 200 <span class="sd">arguments and the CONTROL file parameter and prepares the corresponding</span> 201 <span class="sd">environment.</span> 202 <span class="sd">The necessary files are collected in a tar-ball and placed</span> 203 <span class="sd">at the target location. There its untared, the environment variables will</span> 204 <span class="sd">be set and the Fortran code will be compiled.</span> 205 <span class="sd">If the ECMWF environment is selected a job script is prepared and submitted</span> 206 <span class="sd">for the remaining configurations after putting the tar-ball to the</span> 207 <span class="sd">target ECMWF server.</span> 208 209 <span class="sd">Type: install.py --help</span> 210 <span class="sd">to get information about command line parameters.</span> 211 <span class="sd">Read the documentation for usage instructions.</span> 212 <span class="sd">'''</span> 200 213 201 214 <span class="c1"># ------------------------------------------------------------------------------</span> … … 207 220 <span class="kn">import</span> <span class="nn">subprocess</span> 208 221 <span class="kn">import</span> <span class="nn">inspect</span> 222 <span class="kn">import</span> <span class="nn">tarfile</span> 209 223 <span class="kn">from</span> <span class="nn">argparse</span> <span class="k">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentDefaultsHelpFormatter</span> 210 224 … … 213 227 <span class="kn">from</span> <span class="nn">classes.ControlFile</span> <span class="k">import</span> <span class="n">ControlFile</span> 214 228 <span class="kn">from</span> <span class="nn">classes.UioFiles</span> <span class="k">import</span> <span class="n">UioFiles</span> 215 <span class="kn">from</span> <span class="nn">mods.tools</span> <span class="k">import</span> <span class="n">make_dir</span><span class="p">,</span> <span class="n">put_file_to_ecserver</span><span class="p">,</span> <span class="n">submit_job_to_ecserver</span> 229 <span class="kn">from</span> <span class="nn">mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">make_dir</span><span class="p">,</span> <span class="n">put_file_to_ecserver</span><span class="p">,</span> <span class="n">submit_job_to_ecserver</span><span class="p">,</span> 230 <span class="n">silent_remove</span><span class="p">,</span> <span class="n">execute_subprocess</span><span class="p">)</span> 216 231 217 232 <span class="c1"># ------------------------------------------------------------------------------</span> … … 229 244 <span class="sd"> '''</span> 230 245 231 <span class="n">args</span> <span class="o">=</span> <span class="n">get_install_cmdline_arg uments</span><span class="p">()</span>246 <span class="n">args</span> <span class="o">=</span> <span class="n">get_install_cmdline_args</span><span class="p">()</span> 232 247 <span class="n">c</span> <span class="o">=</span> <span class="n">ControlFile</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">controlfile</span><span class="p">)</span> 233 248 <span class="n">c</span><span class="o">.</span><span class="n">assign_args_to_control</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> 234 <span class="n">c </span><span class="o">.</span><span class="n">check_install_conditions</span><span class="p">()</span>249 <span class="n">check_install_conditions</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> 235 250 236 251 <span class="n">install_via_gateway</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> … … 238 253 <span class="k">return</span></div> 239 254 240 <div class="viewcode-block" id="get_install_cmdline_arg uments"><a class="viewcode-back" href="../api.html#install.get_install_cmdline_arguments">[docs]</a><span class="k">def</span> <span class="nf">get_install_cmdline_arguments</span><span class="p">():</span>255 <div class="viewcode-block" id="get_install_cmdline_args"><a class="viewcode-back" href="../api.html#install.get_install_cmdline_args">[docs]</a><span class="k">def</span> <span class="nf">get_install_cmdline_args</span><span class="p">():</span> 241 256 <span class="sd">'''Decomposes the command line arguments and assigns them to variables.</span> 242 257 <span class="sd"> Apply default values for non mentioned arguments.</span> … … 247 262 <span class="sd"> Return</span> 248 263 <span class="sd"> ------</span> 249 <span class="sd"> args : :obj:`Namespace`</span>264 <span class="sd"> args : Namespace</span> 250 265 <span class="sd"> Contains the commandline arguments from script/program call.</span> 251 266 <span class="sd"> '''</span> … … 268 283 <span class="n">help</span><span class="o">=</span><span class="s1">'ecaccess destination, e.g. leo@genericSftp'</span><span class="p">)</span> 269 284 270 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--flexpart _root_scripts"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"flexpart_root_scripts"</span><span class="p">,</span>285 <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--flexpartdir"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"flexpartdir"</span><span class="p">,</span> 271 286 <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"FLEXPART root directory on ECMWF </span><span class="se">\</span> 272 287 <span class="s2"> servers (to find grib2flexpart and COMMAND file)</span><span class="se">\n\</span> … … 295 310 <span class="sd"> Parameters</span> 296 311 <span class="sd"> ----------</span> 297 <span class="sd"> c : :obj:`ControlFile`</span>312 <span class="sd"> c : ControlFile</span> 298 313 <span class="sd"> Contains all the parameters of CONTROL file and</span> 299 314 <span class="sd"> command line.</span> … … 315 330 316 331 <span class="n">mk_compilejob</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> 317 <span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">)</span>332 <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">)</span> 318 333 319 334 <span class="n">mk_job_template</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">gateway</span><span class="p">,</span> 320 <span class="n">c</span><span class="o">.</span><span class="n">destination</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">)</span>335 <span class="n">c</span><span class="o">.</span><span class="n">destination</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">)</span> 321 336 322 337 <span class="n">mk_env_vars</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">gateway</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">destination</span><span class="p">)</span> … … 331 346 <span class="n">_config</span><span class="o">.</span><span class="n">FILE_INSTALL_COMPILEJOB</span><span class="p">))</span> 332 347 348 <span class="n">silent_remove</span><span class="p">(</span><span class="n">tar_file</span><span class="p">)</span> 349 333 350 <span class="nb">print</span><span class="p">(</span><span class="s1">'job compilation script has been submitted to ecgate for '</span> <span class="o">+</span> 334 <span class="s1">'installation in '</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span> <span class="o">+</span>351 <span class="s1">'installation in '</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> <span class="o">+</span> 335 352 <span class="s1">'/'</span> <span class="o">+</span> <span class="n">target_dirname</span><span class="p">)</span> 336 353 <span class="nb">print</span><span class="p">(</span><span class="s1">'You should get an email with subject "flexcompile" within '</span> <span class="o">+</span> … … 338 355 339 356 <span class="k">else</span><span class="p">:</span> <span class="c1">#local</span> 340 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span> <span class="o">==</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span> <span class="p">:</span>341 <span class="nb">print</span><span class="p">(</span><span class="s1">'WARNING: FLEXPART _ROOT_SCRIPTShas not been specified'</span><span class="p">)</span>357 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> <span class="o">==</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span> <span class="p">:</span> 358 <span class="nb">print</span><span class="p">(</span><span class="s1">'WARNING: FLEXPARTDIR has not been specified'</span><span class="p">)</span> 342 359 <span class="nb">print</span><span class="p">(</span><span class="s1">'flex_extract will be installed in here by compiling the '</span> <span class="o">+</span> 343 360 <span class="s1">'Fortran source in '</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span> 344 361 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span> 345 362 <span class="k">else</span><span class="p">:</span> <span class="c1"># creates the target working directory for flex_extract</span> 346 <span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span>347 <span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">))</span>348 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">ecd</span><span class="p">)</span> <span class="o">!=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">):</span>363 <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span> 364 <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">))</span> 365 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">ecd</span><span class="p">)</span> <span class="o">!=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">):</span> 349 366 <span class="n">mk_tarball</span><span class="p">(</span><span class="n">tar_file</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">)</span> 350 <span class="n">make_dir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">,</span>367 <span class="n">make_dir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">,</span> 351 368 <span class="n">target_dirname</span><span class="p">))</span> 352 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">,</span>369 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">,</span> 353 370 <span class="n">target_dirname</span><span class="p">))</span> 354 371 <span class="n">un_tarball</span><span class="p">(</span><span class="n">tar_file</span><span class="p">)</span> 355 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">,</span>372 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">,</span> 356 373 <span class="n">target_dirname</span><span class="p">,</span> 357 374 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">))</span> … … 360 377 <span class="nb">print</span><span class="p">(</span><span class="s1">'Install '</span> <span class="o">+</span> <span class="n">target_dirname</span> <span class="o">+</span> <span class="s1">' software at '</span> <span class="o">+</span> 361 378 <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">' in directory '</span> <span class="o">+</span> 362 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpart _root_scripts</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>363 364 <span class="n">del ete_convert_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span>365 <span class="n">m ake_convert_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span>379 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> 380 381 <span class="n">del_convert_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">)</span> 382 <span class="n">mk_convert_build</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span> 366 383 367 384 <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">ecd</span><span class="p">)</span> … … 370 387 371 388 <span class="k">return</span></div> 389 390 <div class="viewcode-block" id="check_install_conditions"><a class="viewcode-back" href="../api.html#install.check_install_conditions">[docs]</a><span class="k">def</span> <span class="nf">check_install_conditions</span><span class="p">(</span><span class="n">c</span><span class="p">):</span> 391 <span class="sd">'''Checks a couple of necessary attributes and conditions</span> 392 <span class="sd"> for the installation such as if they exist and contain values.</span> 393 <span class="sd"> Otherwise set default values.</span> 394 395 <span class="sd"> Parameters</span> 396 <span class="sd"> ----------</span> 397 <span class="sd"> c : ControlFile</span> 398 <span class="sd"> Contains all the parameters of CONTROL file and</span> 399 <span class="sd"> command line.</span> 400 401 402 <span class="sd"> Return</span> 403 <span class="sd"> ------</span> 404 405 <span class="sd"> '''</span> 406 407 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">and</span> \ 408 <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">_config</span><span class="o">.</span><span class="n">INSTALL_TARGETS</span><span class="p">:</span> 409 <span class="nb">print</span><span class="p">(</span><span class="s1">'ERROR: unknown or missing installation target '</span><span class="p">)</span> 410 <span class="nb">print</span><span class="p">(</span><span class="s1">'target: '</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">)</span> 411 <span class="nb">print</span><span class="p">(</span><span class="s1">'please specify correct installation target '</span> <span class="o">+</span> 412 <span class="nb">str</span><span class="p">(</span><span class="n">INSTALL_TARGETS</span><span class="p">))</span> 413 <span class="nb">print</span><span class="p">(</span><span class="s1">'use -h or --help for help'</span><span class="p">)</span> 414 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> 415 416 <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">and</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">!=</span> <span class="s1">'local'</span><span class="p">:</span> 417 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">ecuid</span> <span class="ow">or</span> \ 418 <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">gateway</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">destination</span><span class="p">:</span> 419 <span class="nb">print</span><span class="p">(</span><span class="s1">'Please enter your ECMWF user id and group id as well '</span> <span class="o">+</span> 420 <span class="s1">'as the </span><span class="se">\n</span><span class="s1">name of the local gateway and the ectrans '</span> <span class="o">+</span> 421 <span class="s1">'destination '</span><span class="p">)</span> 422 <span class="nb">print</span><span class="p">(</span><span class="s1">'with command line options --ecuid --ecgid </span><span class="se">\</span> 423 <span class="s1"> --gateway --destination'</span><span class="p">)</span> 424 <span class="nb">print</span><span class="p">(</span><span class="s1">'Try "'</span> <span class="o">+</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> \ 425 <span class="s1">' -h" to print usage information'</span><span class="p">)</span> 426 <span class="nb">print</span><span class="p">(</span><span class="s1">'Please consult ecaccess documentation or ECMWF user </span><span class="se">\</span> 427 <span class="s1"> support for further details'</span><span class="p">)</span> 428 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> 429 430 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">:</span> 431 <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> <span class="o">=</span> <span class="s1">'$</span><span class="si">{HOME}</span><span class="s1">'</span> 432 <span class="k">else</span><span class="p">:</span> 433 <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> <span class="o">=</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> 434 <span class="k">else</span><span class="p">:</span> <span class="c1"># local</span> 435 <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span><span class="p">:</span> 436 <span class="n">c</span><span class="o">.</span><span class="n">flexpartdir</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span> 437 438 <span class="k">return</span></div> 439 372 440 373 441 <div class="viewcode-block" id="mk_tarball"><a class="viewcode-back" href="../api.html#install.mk_tarball">[docs]</a><span class="k">def</span> <span class="nf">mk_tarball</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">,</span> <span class="n">target</span><span class="p">):</span> … … 381 449 <span class="sd"> Parameters</span> 382 450 <span class="sd"> ----------</span> 383 <span class="sd"> tarball_path : :obj:`string`</span>451 <span class="sd"> tarball_path : str</span> 384 452 <span class="sd"> The complete path to the tar file which will contain all</span> 385 453 <span class="sd"> relevant data for flex_extract.</span> 386 454 387 <span class="sd"> target : :obj:`string`</span>455 <span class="sd"> target : str</span> 388 456 <span class="sd"> The queue where the job is submitted to.</span> 389 457 … … 392 460 393 461 <span class="sd"> '''</span> 394 <span class="kn">import</span> <span class="nn">tarfile</span>395 462 <span class="kn">from</span> <span class="nn">glob</span> <span class="k">import</span> <span class="n">glob</span> 396 463 … … 405 472 <span class="k">if</span> <span class="n">target</span> <span class="o">==</span> <span class="s1">'local'</span><span class="p">:</span> 406 473 <span class="n">ECMWF_ENV_FILE</span> <span class="o">=</span> <span class="p">[]</span> 474 <span class="n">runfile</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 475 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_RUN_DIR</span><span class="p">,</span> 476 <span class="s1">'run_local.sh'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 407 477 <span class="k">else</span><span class="p">:</span> 408 478 <span class="n">ECMWF_ENV_FILE</span> <span class="o">=</span> <span class="p">[</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_ECMWF_ENV</span><span class="p">]</span> 479 <span class="n">runfile</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 480 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_RUN_DIR</span><span class="p">,</span> 481 <span class="s1">'run.sh'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 409 482 410 483 <span class="n">pyfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 411 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_LOCAL_PYTHON</span><span class="p">,</span> <span class="s1">'*py'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 484 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHON_SRC</span><span class="p">,</span> <span class="s1">'*py'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 485 <span class="n">pytestfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 486 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHONTEST_SRC</span><span class="p">,</span> <span class="s1">'*py'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 412 487 <span class="n">controlfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 413 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ CONTROLFILES</span><span class="p">,</span>488 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_CONTROLFILES</span><span class="p">,</span> 414 489 <span class="s1">'CONTROL*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 490 <span class="n">testfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 491 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_TEST</span> <span class="p">,</span> <span class="s1">'*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 415 492 <span class="n">tempfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 416 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span> <span class="p">,</span> <span class="s1">'*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 493 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span> <span class="p">,</span> <span class="s1">'*.temp'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 494 <span class="n">nlfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 495 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span> <span class="p">,</span> <span class="s1">'*.nl'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 496 <span class="n">gribtable</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 497 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span> <span class="p">,</span> <span class="s1">'*grib*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 417 498 <span class="n">ffiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 418 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ FORTRAN_SRC</span><span class="p">,</span> <span class="s1">'*.f*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>499 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">'*.f*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 419 500 <span class="n">hfiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 420 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ FORTRAN_SRC</span><span class="p">,</span> <span class="s1">'*.h'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>501 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">'*.h'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 421 502 <span class="n">makefiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span> 422 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">'Makefile*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 503 <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">'Makefile*'</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span> 504 <span class="n">jobdir</span> <span class="o">=</span> <span class="p">[</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_JOBSCRIPTS</span><span class="p">]</span> 423 505 424 506 <span class="c1"># concatenate single lists to one for a better looping</span> 425 <span class="n">filelist</span> <span class="o">=</span> <span class="n">pyfiles</span> <span class="o">+</span> <span class="n">controlfiles</span> <span class="o">+</span> <span class="n">tempfiles</span> <span class="o">+</span> <span class="n">ffiles</span> <span class="o">+</span> <span class="n">hfiles</span> <span class="o">+</span> \ 426 <span class="n">makefiles</span> <span class="o">+</span> <span class="n">ECMWF_ENV_FILE</span> 507 <span class="n">filelist</span> <span class="o">=</span> <span class="n">pyfiles</span> <span class="o">+</span> <span class="n">pytestfiles</span> <span class="o">+</span> <span class="n">controlfiles</span> <span class="o">+</span> <span class="n">tempfiles</span> <span class="o">+</span> <span class="n">nlfiles</span> <span class="o">+</span> \ 508 <span class="n">ffiles</span> <span class="o">+</span> <span class="n">gribtable</span> <span class="o">+</span> <span class="n">hfiles</span> <span class="o">+</span> <span class="n">makefiles</span> <span class="o">+</span> <span class="n">ECMWF_ENV_FILE</span> <span class="o">+</span> \ 509 <span class="n">runfile</span> <span class="o">+</span> <span class="n">jobdir</span> <span class="o">+</span> <span class="n">testfiles</span> <span class="o">+</span>\ 510 <span class="p">[</span><span class="s1">'CODE_OF_CONDUCT.md'</span><span class="p">,</span> <span class="s1">'LICENSE.md'</span><span class="p">,</span> <span class="s1">'README.md'</span><span class="p">]</span> 427 511 428 512 <span class="c1"># create installation tar-file</span> 513 <span class="n">exclude_files</span> <span class="o">=</span> <span class="p">[</span><span class="s2">".ksh"</span><span class="p">]</span> 429 514 <span class="k">try</span><span class="p">:</span> 430 515 <span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">,</span> <span class="s2">"w:gz"</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar_handle</span><span class="p">:</span> 431 516 <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">filelist</span><span class="p">:</span> 432 <span class="n">tar_handle</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">file</span><span class="p">)</span> 433 517 <span class="n">tar_handle</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> 518 <span class="nb">filter</span><span class="o">=</span><span class="k">lambda</span> <span class="n">tarinfo</span><span class="p">:</span> <span class="kc">None</span> 519 <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">tarinfo</span><span class="o">.</span><span class="n">name</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> 520 <span class="ow">in</span> <span class="n">exclude_files</span> 521 <span class="k">else</span> <span class="n">tarinfo</span><span class="p">)</span> 434 522 <span class="k">except</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">CalledProcessError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 435 523 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE:</span><span class="se">\n</span><span class="s1"> ... '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">returncode</span><span class="p">))</span> 436 524 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> ... '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span> 437 525 438 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'... could not make installation tar ball!'</span><span class="p">)</span> 526 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... could not make installation tar ball!'</span><span class="p">)</span> 527 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 528 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 529 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 530 531 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to read tar-file '</span> <span class="o">+</span> 532 <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span> 439 533 440 534 <span class="k">return</span></div> … … 446 540 <span class="sd"> Parameters</span> 447 541 <span class="sd"> ----------</span> 448 <span class="sd"> tarball_path : :obj:`string`</span>542 <span class="sd"> tarball_path : str</span> 449 543 <span class="sd"> The complete path to the tar file which will contain all</span> 450 544 <span class="sd"> relevant data for flex_extract.</span> … … 454 548 455 549 <span class="sd"> '''</span> 456 <span class="kn">import</span> <span class="nn">tarfile</span>457 550 458 551 <span class="nb">print</span><span class="p">(</span><span class="s1">'Untar ...'</span><span class="p">)</span> 459 552 460 <span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar_handle</span><span class="p">:</span> 461 <span class="n">tar_handle</span><span class="o">.</span><span class="n">extractall</span><span class="p">()</span> 553 <span class="k">try</span><span class="p">:</span> 554 <span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar_handle</span><span class="p">:</span> 555 <span class="n">tar_handle</span><span class="o">.</span><span class="n">extractall</span><span class="p">()</span> 556 <span class="k">except</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">TarError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 557 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to read tar-file '</span> <span class="o">+</span> 558 <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span> 559 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 560 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 561 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 562 563 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to read tar-file '</span> <span class="o">+</span> 564 <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span> 462 565 463 566 <span class="k">return</span></div> … … 470 573 <span class="sd"> Parameters</span> 471 574 <span class="sd"> ----------</span> 472 <span class="sd"> ecuid : :obj:`string`</span>575 <span class="sd"> ecuid : str</span> 473 576 <span class="sd"> The user id on ECMWF server.</span> 474 577 475 <span class="sd"> ecgid : :obj:`string`</span>578 <span class="sd"> ecgid : str</span> 476 579 <span class="sd"> The group id on ECMWF server.</span> 477 580 478 <span class="sd"> gateway : :obj:`string`</span>581 <span class="sd"> gateway : str</span> 479 582 <span class="sd"> The gateway server the user is using.</span> 480 583 481 <span class="sd"> destination : :obj:`string`</span>584 <span class="sd"> destination : str</span> 482 585 <span class="sd"> The remote destination which is used to transfer files</span> 483 586 <span class="sd"> from ECMWF server to local gateway server.</span> … … 489 592 <span class="kn">from</span> <span class="nn">genshi.template.text</span> <span class="k">import</span> <span class="n">NewTextTemplate</span> 490 593 <span class="kn">from</span> <span class="nn">genshi.template</span> <span class="k">import</span> <span class="n">TemplateLoader</span> 491 492 <span class="n">loader</span> <span class="o">=</span> <span class="n">TemplateLoader</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> <span class="n">auto_reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> 493 <span class="n">ecmwfvars_template</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_USER_ENVVARS</span><span class="p">,</span> 494 <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span> 495 496 <span class="n">stream</span> <span class="o">=</span> <span class="n">ecmwfvars_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">user_name</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span> 497 <span class="n">user_group</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span> 498 <span class="n">gateway_name</span> <span class="o">=</span> <span class="n">gateway</span><span class="p">,</span> 499 <span class="n">destination_name</span> <span class="o">=</span> <span class="n">destination</span> 500 <span class="p">)</span> 501 502 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 503 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">stream</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s1">'text'</span><span class="p">))</span> 594 <span class="kn">from</span> <span class="nn">genshi.template.eval</span> <span class="k">import</span> <span class="n">UndefinedError</span> 595 596 <span class="k">try</span><span class="p">:</span> 597 <span class="n">loader</span> <span class="o">=</span> <span class="n">TemplateLoader</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> <span class="n">auto_reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> 598 <span class="n">ecmwfvars_template</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_USER_ENVVARS</span><span class="p">,</span> 599 <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span> 600 601 <span class="n">stream</span> <span class="o">=</span> <span class="n">ecmwfvars_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">user_name</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span> 602 <span class="n">user_group</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span> 603 <span class="n">gateway_name</span> <span class="o">=</span> <span class="n">gateway</span><span class="p">,</span> 604 <span class="n">destination_name</span> <span class="o">=</span> <span class="n">destination</span> 605 <span class="p">)</span> 606 <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 607 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span> 608 609 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to generate template '</span> <span class="o">+</span> 610 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">)</span> 611 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 612 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 613 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 614 615 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to generate template '</span> <span class="o">+</span> 616 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">)</span> 617 618 <span class="k">try</span><span class="p">:</span> 619 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 620 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">stream</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s1">'text'</span><span class="p">))</span> 621 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 622 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 623 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 624 625 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to write '</span> <span class="o">+</span> 626 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_ECMWF_ENV</span><span class="p">)</span> 504 627 505 628 <span class="k">return</span></div> … … 512 635 <span class="sd"> Parameters</span> 513 636 <span class="sd"> ----------</span> 514 <span class="sd"> makefile : :obj:`string`</span>637 <span class="sd"> makefile : str</span> 515 638 <span class="sd"> Name of the makefile which should be used to compile FORTRAN</span> 516 639 <span class="sd"> CONVERT2 program.</span> 517 640 518 <span class="sd"> target : :obj:`string`</span>641 <span class="sd"> target : str</span> 519 642 <span class="sd"> The target where the installation should be done, e.g. the queue.</span> 520 643 521 <span class="sd"> ecuid : :obj:`string`</span>644 <span class="sd"> ecuid : str</span> 522 645 <span class="sd"> The user id on ECMWF server.</span> 523 646 524 <span class="sd"> ecgid : :obj:`string`</span>647 <span class="sd"> ecgid : str</span> 525 648 <span class="sd"> The group id on ECMWF server.</span> 526 649 527 <span class="sd"> fp_root : :obj:`string`</span>650 <span class="sd"> fp_root : str</span> 528 651 <span class="sd"> Path to the root directory of FLEXPART environment or flex_extract</span> 529 652 <span class="sd"> environment.</span> … … 535 658 <span class="kn">from</span> <span class="nn">genshi.template.text</span> <span class="k">import</span> <span class="n">NewTextTemplate</span> 536 659 <span class="kn">from</span> <span class="nn">genshi.template</span> <span class="k">import</span> <span class="n">TemplateLoader</span> 537 538 <span class="n">loader</span> <span class="o">=</span> <span class="n">TemplateLoader</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> <span class="n">auto_reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> 539 <span class="n">compile_template</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_COMPILEJOB</span><span class="p">,</span> 540 <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span> 660 <span class="kn">from</span> <span class="nn">genshi.template.eval</span> <span class="k">import</span> <span class="n">UndefinedError</span> 541 661 542 662 <span class="k">if</span> <span class="n">fp_root</span> <span class="o">==</span> <span class="s1">'../'</span><span class="p">:</span> 543 663 <span class="n">fp_root</span> <span class="o">=</span> <span class="s1">'$HOME'</span> 544 664 545 <span class="n">stream</span> <span class="o">=</span> <span class="n">compile_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span> 546 <span class="n">usergroup</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span> 547 <span class="n">username</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span> 548 <span class="n">version_number</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span> 549 <span class="n">fp_root_scripts</span> <span class="o">=</span> <span class="n">fp_root</span><span class="p">,</span> 550 <span class="n">makefile</span> <span class="o">=</span> <span class="n">makefile</span><span class="p">,</span> 551 <span class="n">fortran_program</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span> 552 <span class="p">)</span> 553 554 <span class="n">compilejob</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_JOBSCRIPTS</span><span class="p">,</span> 555 <span class="n">_config</span><span class="o">.</span><span class="n">FILE_INSTALL_COMPILEJOB</span><span class="p">)</span> 556 557 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">compilejob</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 558 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">stream</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s1">'text'</span><span class="p">))</span> 665 <span class="k">try</span><span class="p">:</span> 666 <span class="n">loader</span> <span class="o">=</span> <span class="n">TemplateLoader</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> <span class="n">auto_reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> 667 <span class="n">compile_template</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_COMPILEJOB</span><span class="p">,</span> 668 <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span> 669 670 <span class="n">stream</span> <span class="o">=</span> <span class="n">compile_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span> 671 <span class="n">usergroup</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span> 672 <span class="n">username</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span> 673 <span class="n">version_number</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span> 674 <span class="n">fp_root_scripts</span> <span class="o">=</span> <span class="n">fp_root</span><span class="p">,</span> 675 <span class="n">makefile</span> <span class="o">=</span> <span class="n">makefile</span><span class="p">,</span> 676 <span class="n">fortran_program</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span> 677 <span class="p">)</span> 678 <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 679 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span> 680 681 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to generate template '</span> <span class="o">+</span> 682 <span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_COMPILEJOB</span><span class="p">)</span> 683 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 684 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 685 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 686 687 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to generate template '</span> <span class="o">+</span> 688 <span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_COMPILEJOB</span><span class="p">)</span> 689 690 <span class="k">try</span><span class="p">:</span> 691 <span class="n">compilejob</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_JOBSCRIPTS</span><span class="p">,</span> 692 <span class="n">_config</span><span class="o">.</span><span class="n">FILE_INSTALL_COMPILEJOB</span><span class="p">)</span> 693 694 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">compilejob</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 695 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">stream</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s1">'text'</span><span class="p">))</span> 696 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 697 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 698 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 699 700 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to write '</span> <span class="o">+</span> 701 <span class="n">compilejob</span><span class="p">)</span> 559 702 560 703 <span class="k">return</span></div> … … 567 710 <span class="sd"> Parameters</span> 568 711 <span class="sd"> ----------</span> 569 <span class="sd"> ecuid : :obj:`string`</span>712 <span class="sd"> ecuid : str</span> 570 713 <span class="sd"> The user id on ECMWF server.</span> 571 714 572 <span class="sd"> ecgid : :obj:`string`</span>715 <span class="sd"> ecgid : str</span> 573 716 <span class="sd"> The group id on ECMWF server.</span> 574 717 575 <span class="sd"> gateway : :obj:`string`</span>718 <span class="sd"> gateway : str</span> 576 719 <span class="sd"> The gateway server the user is using.</span> 577 720 578 <span class="sd"> destination : :obj:`string`</span>721 <span class="sd"> destination : str</span> 579 722 <span class="sd"> The remote destination which is used to transfer files</span> 580 723 <span class="sd"> from ECMWF server to local gateway server.</span> 581 724 582 <span class="sd"> fp_root : :obj:`string`</span>725 <span class="sd"> fp_root : str</span> 583 726 <span class="sd"> Path to the root directory of FLEXPART environment or flex_extract</span> 584 727 <span class="sd"> environment.</span> … … 590 733 <span class="kn">from</span> <span class="nn">genshi.template.text</span> <span class="k">import</span> <span class="n">NewTextTemplate</span> 591 734 <span class="kn">from</span> <span class="nn">genshi.template</span> <span class="k">import</span> <span class="n">TemplateLoader</span> 592 593 <span class="n">loader</span> <span class="o">=</span> <span class="n">TemplateLoader</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> <span class="n">auto_reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> 594 <span class="n">compile_template</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_JOB</span><span class="p">,</span> 595 <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span> 735 <span class="kn">from</span> <span class="nn">genshi.template.eval</span> <span class="k">import</span> <span class="n">UndefinedError</span> 596 736 597 737 <span class="n">fp_root_path_to_python</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">fp_root</span><span class="p">,</span> 598 738 <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">,</span> 599 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHON</span><span class="p">)</span> 600 601 <span class="n">stream</span> <span class="o">=</span> <span class="n">compile_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span> 602 <span class="n">usergroup</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span> 603 <span class="n">username</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span> 604 <span class="n">version_number</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span> 605 <span class="n">fp_root_path</span> <span class="o">=</span> <span class="n">fp_root_path_to_python</span><span class="p">,</span> 606 <span class="p">)</span> 607 608 <span class="n">tempjobfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> 609 <span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_JOB</span><span class="p">)</span> 610 611 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">tempjobfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 612 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">stream</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s1">'text'</span><span class="p">))</span> 739 <span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHON_SRC</span><span class="p">)</span> 740 <span class="k">if</span> <span class="s1">'$'</span> <span class="ow">in</span> <span class="n">fp_root_path_to_python</span><span class="p">:</span> 741 <span class="n">ind</span> <span class="o">=</span> <span class="n">fp_root_path_to_python</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">'$'</span><span class="p">)</span> 742 <span class="n">fp_root_path_to_python</span> <span class="o">=</span> <span class="n">fp_root_path_to_python</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">ind</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'$'</span> <span class="o">+</span> \ 743 <span class="n">fp_root_path_to_python</span><span class="p">[</span><span class="n">ind</span><span class="p">:]</span> 744 745 <span class="k">try</span><span class="p">:</span> 746 <span class="n">loader</span> <span class="o">=</span> <span class="n">TemplateLoader</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> <span class="n">auto_reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> 747 <span class="n">compile_template</span> <span class="o">=</span> <span class="n">loader</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_JOB</span><span class="p">,</span> 748 <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span> 749 750 <span class="n">stream</span> <span class="o">=</span> <span class="n">compile_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span> 751 <span class="n">usergroup</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span> 752 <span class="n">username</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span> 753 <span class="n">version_number</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span> 754 <span class="n">fp_root_path</span> <span class="o">=</span> <span class="n">fp_root_path_to_python</span><span class="p">,</span> 755 <span class="p">)</span> 756 <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 757 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span> 758 759 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to generate template '</span> <span class="o">+</span> 760 <span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_JOB</span><span class="p">)</span> 761 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 762 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 763 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 764 765 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to generate template '</span> <span class="o">+</span> 766 <span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_INSTALL_JOB</span><span class="p">)</span> 767 768 769 <span class="k">try</span><span class="p">:</span> 770 <span class="n">tempjobfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_TEMPLATES</span><span class="p">,</span> 771 <span class="n">_config</span><span class="o">.</span><span class="n">TEMPFILE_JOB</span><span class="p">)</span> 772 773 <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">tempjobfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> 774 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">stream</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="s1">'text'</span><span class="p">))</span> 775 <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> 776 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR CODE: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span> 777 <span class="nb">print</span><span class="p">(</span><span class="s1">'... ERROR MESSAGE:</span><span class="se">\n</span><span class="s1"> </span><span class="se">\t</span><span class="s1"> '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">strerror</span><span class="p">))</span> 778 779 <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">... error occured while trying to write '</span> <span class="o">+</span> 780 <span class="n">tempjobfile</span><span class="p">)</span> 613 781 614 782 <span class="k">return</span></div> 615 783 616 <div class="viewcode-block" id="del ete_convert_build"><a class="viewcode-back" href="../api.html#install.delete_convert_build">[docs]</a><span class="k">def</span> <span class="nf">delete_convert_build</span><span class="p">(</span><span class="n">src_path</span><span class="p">):</span>784 <div class="viewcode-block" id="del_convert_build"><a class="viewcode-back" href="../api.html#install.del_convert_build">[docs]</a><span class="k">def</span> <span class="nf">del_convert_build</span><span class="p">(</span><span class="n">src_path</span><span class="p">):</span> 617 785 <span class="sd">'''Clean up the Fortran source directory and remove all</span> 618 786 <span class="sd"> build files (e.g. \*.o, \*.mod and CONVERT2)</span> … … 620 788 <span class="sd"> Parameters</span> 621 789 <span class="sd"> ----------</span> 622 <span class="sd"> src_path : :obj:`string`</span>790 <span class="sd"> src_path : str</span> 623 791 <span class="sd"> Path to the fortran source directory.</span> 624 792 … … 638 806 <span class="k">return</span></div> 639 807 640 <div class="viewcode-block" id="m ake_convert_build"><a class="viewcode-back" href="../api.html#install.make_convert_build">[docs]</a><span class="k">def</span> <span class="nf">make_convert_build</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span> <span class="n">makefile</span><span class="p">):</span>808 <div class="viewcode-block" id="mk_convert_build"><a class="viewcode-back" href="../api.html#install.mk_convert_build">[docs]</a><span class="k">def</span> <span class="nf">mk_convert_build</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span> <span class="n">makefile</span><span class="p">):</span> 641 809 <span class="sd">'''Compiles the Fortran code and generates the executable.</span> 642 810 643 811 <span class="sd"> Parameters</span> 644 812 <span class="sd"> ----------</span> 645 <span class="sd"> src_path : :obj:`string`</span>813 <span class="sd"> src_path : str</span> 646 814 <span class="sd"> Path to the fortran source directory.</span> 647 815 648 <span class="sd"> makefile : :obj:`string`</span>816 <span class="sd"> makefile : str</span> 649 817 <span class="sd"> The name of the makefile which should be used.</span> 650 818 … … 677 845 <span class="nb">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> 678 846 <span class="k">else</span><span class="p">:</span> 679 <span class="n"> subprocess</span><span class="o">.</span><span class="n">check_call</span><span class="p">([</span><span class="s1">'ls'</span><span class="p">,</span> <span class="s1">'-l'</span><span class="p">,</span>680 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span>681 <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)])</span>847 <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">'ls'</span><span class="p">,</span> <span class="s1">'-l'</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span> 848 <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)],</span> <span class="n">error_msg</span><span class="o">=</span> 849 <span class="s1">'FORTRAN EXECUTABLE COULD NOT BE FOUND!'</span><span class="p">)</span> 682 850 683 851 <span class="k">return</span></div> … … 698 866 <div role="contentinfo"> 699 867 <p> 700 © Copyright 2018, Anne Philipp and Leopold Haimberger .868 © Copyright 2018, Anne Philipp and Leopold Haimberger 701 869 702 870 </p> … … 717 885 718 886 719 <script type="text/javascript"> 720 var DOCUMENTATION_OPTIONS = { 721 URL_ROOT:'../', 722 VERSION:'7.1 alpha', 723 LANGUAGE:'None', 724 COLLAPSE_INDEX:false, 725 FILE_SUFFIX:'.html', 726 HAS_SOURCE: true, 727 SOURCELINK_SUFFIX: '.txt' 728 }; 729 </script> 730 <script type="text/javascript" src="../_static/jquery.js"></script> 731 <script type="text/javascript" src="../_static/underscore.js"></script> 732 <script type="text/javascript" src="../_static/doctools.js"></script> 733 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> 887 888 889 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> 890 <script type="text/javascript" src="../_static/jquery.js"></script> 891 <script type="text/javascript" src="../_static/underscore.js"></script> 892 <script type="text/javascript" src="../_static/doctools.js"></script> 893 734 894 735 895
Note: See TracChangeset
for help on using the changeset viewer.