Skip to content

Commit e396607

Browse files
Update documentation
1 parent 1efa445 commit e396607

15 files changed

+48
-100
lines changed
0 Bytes
Binary file not shown.
Binary file not shown.
Binary file not shown.

main/.doctrees/environment.pickle

-1.39 KB
Binary file not shown.
-128 Bytes
Binary file not shown.

main/_modules/mache/spack/config_machines.html

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
<h1>Source code for mache.spack.config_machines</h1><div class="highlight"><pre>
8686
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">re</span>
8787
<span class="kn">from</span><span class="w"> </span><span class="nn">collections</span><span class="w"> </span><span class="kn">import</span> <span class="n">defaultdict</span>
88+
<span class="kn">from</span><span class="w"> </span><span class="nn">importlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">resources</span> <span class="k">as</span> <span class="n">importlib_resources</span>
8889

8990
<span class="kn">from</span><span class="w"> </span><span class="nn">lxml</span><span class="w"> </span><span class="kn">import</span> <span class="n">etree</span>
9091

@@ -194,13 +195,13 @@ <h1>Source code for mache.spack.config_machines</h1><div class="highlight"><pre>
194195
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
195196

196197
<span class="k">if</span> <span class="n">e3sm_hdf5_netcdf_modules</span><span class="p">:</span>
197-
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">% i</span><span class="s1">f e3sm_hdf5_netcdf %}&#39;</span><span class="p">)</span>
198+
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">%- i</span><span class="s1">f e3sm_hdf5_netcdf %}&#39;</span><span class="p">)</span>
198199
<span class="n">script_lines</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span>
199200
<span class="n">_convert_module_commands_to_script_lines</span><span class="p">(</span>
200201
<span class="n">e3sm_hdf5_netcdf_modules</span><span class="p">,</span> <span class="n">shell_type</span>
201202
<span class="p">)</span>
202203
<span class="p">)</span>
203-
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">% e</span><span class="s1">ndif %}&#39;</span><span class="p">)</span>
204+
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">%- e</span><span class="s1">ndif %}&#39;</span><span class="p">)</span>
204205
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
205206

206207
<span class="n">script_lines</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">_convert_env_vars_to_script_lines</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">shell_type</span><span class="p">))</span>
@@ -214,7 +215,7 @@ <h1>Source code for mache.spack.config_machines</h1><div class="highlight"><pre>
214215
<div class="viewcode-block" id="extract_spack_from_config_machines">
215216
<a class="viewcode-back" href="../../../developers_guide/generated/mache.spack.extract_spack_from_config_machines.html#mache.spack.extract_spack_from_config_machines">[docs]</a>
216217
<span class="k">def</span><span class="w"> </span><span class="nf">extract_spack_from_config_machines</span><span class="p">(</span>
217-
<span class="n">machine</span><span class="p">,</span> <span class="n">compiler</span><span class="p">,</span> <span class="n">mpilib</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">output</span>
218+
<span class="n">machine</span><span class="p">,</span> <span class="n">compiler</span><span class="p">,</span> <span class="n">mpilib</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="kc">None</span>
218219
<span class="p">):</span>
219220
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
220221
<span class="sd"> Extract machine configuration from XML and write it to a shell script.</span>
@@ -229,10 +230,18 @@ <h1>Source code for mache.spack.config_machines</h1><div class="highlight"><pre>
229230
<span class="sd"> MPI library name.</span>
230231
<span class="sd"> shell : str</span>
231232
<span class="sd"> Shell script type (&#39;sh&#39; or &#39;csh&#39;).</span>
232-
<span class="sd"> output : str</span>
233+
<span class="sd"> output : str, optional</span>
233234
<span class="sd"> Output file to write the shell script.</span>
235+
236+
<span class="sd"> Returns</span>
237+
<span class="sd"> -------</span>
238+
<span class="sd"> script: str</span>
239+
<span class="sd"> The generated shell script as a string.</span>
234240
<span class="sd"> &quot;&quot;&quot;</span>
235-
<span class="n">config_filename</span> <span class="o">=</span> <span class="s1">&#39;mache/cime_machine_config/config_machines.xml&#39;</span>
241+
<span class="n">config_filename</span> <span class="o">=</span> <span class="p">(</span>
242+
<span class="n">importlib_resources</span><span class="o">.</span><span class="n">files</span><span class="p">(</span><span class="s1">&#39;mache.cime_machine_config&#39;</span><span class="p">)</span>
243+
<span class="o">/</span> <span class="s1">&#39;config_machines.xml&#39;</span>
244+
<span class="p">)</span>
236245

237246
<span class="n">config</span> <span class="o">=</span> <span class="n">extract_machine_config</span><span class="p">(</span><span class="n">config_filename</span><span class="p">,</span> <span class="n">machine</span><span class="p">,</span> <span class="n">compiler</span><span class="p">,</span> <span class="n">mpilib</span><span class="p">)</span>
238247
<span class="k">if</span> <span class="n">config</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
@@ -242,8 +251,11 @@ <h1>Source code for mache.spack.config_machines</h1><div class="highlight"><pre>
242251
<span class="p">)</span>
243252

244253
<span class="n">script</span> <span class="o">=</span> <span class="n">config_to_shell_script</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">shell</span><span class="p">)</span>
245-
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
246-
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">script</span><span class="p">)</span></div>
254+
<span class="k">if</span> <span class="n">output</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
255+
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
256+
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">script</span><span class="p">)</span>
257+
258+
<span class="k">return</span> <span class="n">script</span></div>
247259

248260

249261

@@ -343,13 +355,13 @@ <h1>Source code for mache.spack.config_machines</h1><div class="highlight"><pre>
343355
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
344356

345357
<span class="k">if</span> <span class="n">e3sm_hdf5_netcdf_env_vars</span><span class="p">:</span>
346-
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">% i</span><span class="s1">f e3sm_hdf5_netcdf %}&#39;</span><span class="p">)</span>
358+
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">%- i</span><span class="s1">f e3sm_hdf5_netcdf %}&#39;</span><span class="p">)</span>
347359
<span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">e3sm_hdf5_netcdf_env_vars</span><span class="p">:</span>
348360
<span class="k">if</span> <span class="n">shell_type</span> <span class="o">==</span> <span class="s1">&#39;sh&#39;</span><span class="p">:</span>
349361
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;export </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s1">=&quot;</span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&quot;&#39;</span><span class="p">)</span>
350362
<span class="k">elif</span> <span class="n">shell_type</span> <span class="o">==</span> <span class="s1">&#39;csh&#39;</span><span class="p">:</span>
351363
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;setenv </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s1"> &quot;</span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&quot;&#39;</span><span class="p">)</span>
352-
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">% e</span><span class="s1">ndif %}&#39;</span><span class="p">)</span>
364+
<span class="n">script_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{</span><span class="si">%- e</span><span class="s1">ndif %}&#39;</span><span class="p">)</span>
353365

354366
<span class="k">return</span> <span class="n">script_lines</span>
355367
</pre></div>

main/_modules/mache/spack/env.html

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ <h1>Source code for mache.spack.env</h1><div class="highlight"><pre>
9090
<span class="kn">from</span><span class="w"> </span><span class="nn">jinja2</span><span class="w"> </span><span class="kn">import</span> <span class="n">Template</span>
9191

9292
<span class="kn">from</span><span class="w"> </span><span class="nn">mache.machine_info</span><span class="w"> </span><span class="kn">import</span> <span class="n">MachineInfo</span><span class="p">,</span> <span class="n">discover_machine</span>
93-
<span class="kn">from</span><span class="w"> </span><span class="nn">mache.spack.shared</span><span class="w"> </span><span class="kn">import</span> <span class="n">_get_modules</span><span class="p">,</span> <span class="n">_get_yaml_data</span>
93+
<span class="kn">from</span><span class="w"> </span><span class="nn">mache.spack.shared</span><span class="w"> </span><span class="kn">import</span> <span class="n">_get_yaml_data</span>
9494
<span class="kn">from</span><span class="w"> </span><span class="nn">mache.version</span><span class="w"> </span><span class="kn">import</span> <span class="n">__version__</span>
9595

9696

@@ -176,12 +176,6 @@ <h1>Source code for mache.spack.env</h1><div class="highlight"><pre>
176176
<span class="k">if</span> <span class="n">config_file</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
177177
<span class="n">config</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">config_file</span><span class="p">)</span>
178178

179-
<span class="n">section</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;spack&#39;</span><span class="p">]</span>
180-
181-
<span class="n">with_modules</span> <span class="o">=</span> <span class="n">section</span><span class="o">.</span><span class="n">getboolean</span><span class="p">(</span><span class="s1">&#39;modules_before&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">section</span><span class="o">.</span><span class="n">getboolean</span><span class="p">(</span>
182-
<span class="s1">&#39;modules_after&#39;</span>
183-
<span class="p">)</span>
184-
185179
<span class="n">yaml_data</span> <span class="o">=</span> <span class="n">_get_yaml_data</span><span class="p">(</span>
186180
<span class="n">machine</span><span class="p">,</span>
187181
<span class="n">compiler</span><span class="p">,</span>
@@ -196,11 +190,7 @@ <h1>Source code for mache.spack.env</h1><div class="highlight"><pre>
196190
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">yaml_filename</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">handle</span><span class="p">:</span>
197191
<span class="n">handle</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">yaml_data</span><span class="p">)</span>
198192

199-
<span class="k">if</span> <span class="n">with_modules</span><span class="p">:</span>
200-
<span class="n">mods</span> <span class="o">=</span> <span class="n">_get_modules</span><span class="p">(</span><span class="n">yaml_data</span><span class="p">)</span>
201-
<span class="n">modules</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;module purge</span><span class="se">\n</span><span class="si">{</span><span class="n">mods</span><span class="si">}</span><span class="s1">&#39;</span>
202-
<span class="k">else</span><span class="p">:</span>
203-
<span class="n">modules</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
193+
<span class="n">modules</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
204194

205195
<span class="k">for</span> <span class="n">shell_filename</span> <span class="ow">in</span> <span class="p">[</span><span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">machine</span><span class="si">}</span><span class="s1">.sh&#39;</span><span class="p">,</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">machine</span><span class="si">}</span><span class="s1">_</span><span class="si">{</span><span class="n">compiler</span><span class="si">}</span><span class="s1">_</span><span class="si">{</span><span class="n">mpi</span><span class="si">}</span><span class="s1">.sh&#39;</span><span class="p">]:</span>
206196
<span class="c1"># load modules, etc. for this machine</span>
@@ -264,7 +254,6 @@ <h1>Source code for mache.spack.env</h1><div class="highlight"><pre>
264254
<span class="n">shell</span><span class="p">,</span>
265255
<span class="n">include_e3sm_lapack</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
266256
<span class="n">include_e3sm_hdf5_netcdf</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
267-
<span class="n">yaml_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
268257
<span class="p">):</span>
269258
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
270259
<span class="sd"> Get the non-spack modules, environment variables and compiler names for a</span>
@@ -293,11 +282,6 @@ <h1>Source code for mache.spack.env</h1><div class="highlight"><pre>
293282
<span class="sd"> Whether to include the same hdf5, netcdf-c, netcdf-fortran and pnetcdf</span>
294283
<span class="sd"> as used in E3SM</span>
295284

296-
<span class="sd"> yaml_template : str, optional</span>
297-
<span class="sd"> A jinja template for a yaml file to be used for the environment instead</span>
298-
<span class="sd"> of the mache template. This allows you to use compilers and other</span>
299-
<span class="sd"> modules that differ from E3SM.</span>
300-
301285
<span class="sd"> Returns</span>
302286
<span class="sd"> -------</span>
303287
<span class="sd"> mpicc : str</span>
@@ -326,27 +310,10 @@ <h1>Source code for mache.spack.env</h1><div class="highlight"><pre>
326310
<span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">has_section</span><span class="p">(</span><span class="s1">&#39;spack&#39;</span><span class="p">):</span>
327311
<span class="n">section</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;spack&#39;</span><span class="p">]</span>
328312

329-
<span class="n">with_modules</span> <span class="o">=</span> <span class="n">section</span><span class="o">.</span><span class="n">getboolean</span><span class="p">(</span>
330-
<span class="s1">&#39;modules_before&#39;</span>
331-
<span class="p">)</span> <span class="ow">or</span> <span class="n">section</span><span class="o">.</span><span class="n">getboolean</span><span class="p">(</span><span class="s1">&#39;modules_after&#39;</span><span class="p">)</span>
332313
<span class="k">if</span> <span class="n">config</span><span class="o">.</span><span class="n">has_option</span><span class="p">(</span><span class="s1">&#39;spack&#39;</span><span class="p">,</span> <span class="s1">&#39;cray_compilers&#39;</span><span class="p">):</span>
333314
<span class="n">cray_compilers</span> <span class="o">=</span> <span class="n">section</span><span class="o">.</span><span class="n">getboolean</span><span class="p">(</span><span class="s1">&#39;cray_compilers&#39;</span><span class="p">)</span>
334-
<span class="k">else</span><span class="p">:</span>
335-
<span class="n">with_modules</span> <span class="o">=</span> <span class="kc">False</span>
336315

337316
<span class="n">mod_env_commands</span> <span class="o">=</span> <span class="s1">&#39;module purge</span><span class="se">\n</span><span class="s1">&#39;</span>
338-
<span class="k">if</span> <span class="n">with_modules</span><span class="p">:</span>
339-
<span class="n">yaml_data</span> <span class="o">=</span> <span class="n">_get_yaml_data</span><span class="p">(</span>
340-
<span class="n">machine</span><span class="p">,</span>
341-
<span class="n">compiler</span><span class="p">,</span>
342-
<span class="n">mpi</span><span class="p">,</span>
343-
<span class="n">include_e3sm_lapack</span><span class="p">,</span>
344-
<span class="n">include_e3sm_hdf5_netcdf</span><span class="p">,</span>
345-
<span class="n">specs</span><span class="o">=</span><span class="p">[],</span>
346-
<span class="n">yaml_template</span><span class="o">=</span><span class="n">yaml_template</span><span class="p">,</span>
347-
<span class="p">)</span>
348-
<span class="n">mods</span> <span class="o">=</span> <span class="n">_get_modules</span><span class="p">(</span><span class="n">yaml_data</span><span class="p">)</span>
349-
<span class="n">mod_env_commands</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">mod_env_commands</span><span class="si">}</span><span class="se">\n</span><span class="si">{</span><span class="n">mods</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span>
350317

351318
<span class="k">for</span> <span class="n">shell_filename</span> <span class="ow">in</span> <span class="p">[</span>
352319
<span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">machine</span><span class="si">}</span><span class="s1">.</span><span class="si">{</span><span class="n">shell</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">,</span>

0 commit comments

Comments
 (0)