Documentation updated

This commit is contained in:
fjosw 2022-06-15 13:07:17 +00:00
parent fbae8d74c1
commit 79b9accc74
3 changed files with 1131 additions and 1123 deletions

File diff suppressed because it is too large Load diff

View file

@ -743,7 +743,7 @@
</span><span id="L-652"><a href="#L-652"><span class="linenos">652</span></a> <span class="k">return</span> <span class="n">o</span>
</span><span id="L-653"><a href="#L-653"><span class="linenos">653</span></a>
</span><span id="L-654"><a href="#L-654"><span class="linenos">654</span></a>
</span><span id="L-655"><a href="#L-655"><span class="linenos">655</span></a><span class="k">def</span> <span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="p">{}):</span>
</span><span id="L-655"><a href="#L-655"><span class="linenos">655</span></a><span class="k">def</span> <span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-656"><a href="#L-656"><span class="linenos">656</span></a> <span class="sd">&quot;&quot;&quot;Generate the string for the export of a list of Obs or structures containing Obs</span>
</span><span id="L-657"><a href="#L-657"><span class="linenos">657</span></a><span class="sd"> to a .xml.gz file according to the Zeuthen dobs format.</span>
</span><span id="L-658"><a href="#L-658"><span class="linenos">658</span></a>
@ -769,199 +769,201 @@
</span><span id="L-678"><a href="#L-678"><span class="linenos">678</span></a><span class="sd"> Provide alternative enstag for ensembles in the form enstags = {ename: enstag}</span>
</span><span id="L-679"><a href="#L-679"><span class="linenos">679</span></a><span class="sd"> Otherwise, the ensemble name is used.</span>
</span><span id="L-680"><a href="#L-680"><span class="linenos">680</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a> <span class="n">od</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="n">r_names</span> <span class="o">+=</span> <span class="p">[</span><span class="n">name</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">mc_names</span><span class="p">]</span>
</span><span id="L-685"><a href="#L-685"><span class="linenos">685</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">r_names</span><span class="p">))</span>
</span><span id="L-686"><a href="#L-686"><span class="linenos">686</span></a> <span class="n">mc_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">n</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span><span class="p">]))</span>
</span><span id="L-687"><a href="#L-687"><span class="linenos">687</span></a> <span class="k">for</span> <span class="n">tmpname</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="L-688"><a href="#L-688"><span class="linenos">688</span></a> <span class="k">if</span> <span class="n">tmpname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">enstags</span><span class="p">:</span>
</span><span id="L-689"><a href="#L-689"><span class="linenos">689</span></a> <span class="n">enstags</span><span class="p">[</span><span class="n">tmpname</span><span class="p">]</span> <span class="o">=</span> <span class="n">tmpname</span>
</span><span id="L-690"><a href="#L-690"><span class="linenos">690</span></a> <span class="n">ne</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">mc_names</span><span class="p">))</span>
</span><span id="L-691"><a href="#L-691"><span class="linenos">691</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-692"><a href="#L-692"><span class="linenos">692</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-693"><a href="#L-693"><span class="linenos">693</span></a> <span class="n">cov_names</span> <span class="o">+=</span> <span class="nb">list</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">)</span>
</span><span id="L-694"><a href="#L-694"><span class="linenos">694</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="L-695"><a href="#L-695"><span class="linenos">695</span></a> <span class="n">nc</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="L-696"><a href="#L-696"><span class="linenos">696</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-697"><a href="#L-697"><span class="linenos">697</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;SCHEMA&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;lattobs&#39;</span><span class="p">,</span> <span class="s1">&#39;VERSION&#39;</span><span class="p">:</span> <span class="s1">&#39;1.0&#39;</span><span class="p">}</span>
</span><span id="L-698"><a href="#L-698"><span class="linenos">698</span></a> <span class="k">if</span> <span class="n">who</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-699"><a href="#L-699"><span class="linenos">699</span></a> <span class="n">who</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
</span><span id="L-700"><a href="#L-700"><span class="linenos">700</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-701"><a href="#L-701"><span class="linenos">701</span></a> <span class="s1">&#39;who&#39;</span><span class="p">:</span> <span class="n">who</span><span class="p">,</span>
</span><span id="L-702"><a href="#L-702"><span class="linenos">702</span></a> <span class="s1">&#39;date&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">())[:</span><span class="o">-</span><span class="mi">7</span><span class="p">],</span>
</span><span id="L-703"><a href="#L-703"><span class="linenos">703</span></a> <span class="s1">&#39;host&#39;</span><span class="p">:</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostname</span><span class="p">(),</span>
</span><span id="L-704"><a href="#L-704"><span class="linenos">704</span></a> <span class="s1">&#39;tool&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;pyerrors&#39;</span><span class="p">,</span> <span class="s1">&#39;version&#39;</span><span class="p">:</span> <span class="n">pyerrorsversion</span><span class="o">.</span><span class="n">__version__</span><span class="p">}}</span>
</span><span id="L-705"><a href="#L-705"><span class="linenos">705</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-706"><a href="#L-706"><span class="linenos">706</span></a> <span class="n">pd</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span>
</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;spec&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">spec</span>
</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">origin</span>
</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-711"><a href="#L-711"><span class="linenos">711</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;val&#39;</span>
</span><span id="L-712"><a href="#L-712"><span class="linenos">712</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="L-713"><a href="#L-713"><span class="linenos">713</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-714"><a href="#L-714"><span class="linenos">714</span></a> <span class="k">if</span> <span class="n">symbol</span><span class="p">:</span>
</span><span id="L-715"><a href="#L-715"><span class="linenos">715</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">symbol</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="L-716"><a href="#L-716"><span class="linenos">716</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list!&#39;</span><span class="p">)</span>
</span><span id="L-717"><a href="#L-717"><span class="linenos">717</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="L-718"><a href="#L-718"><span class="linenos">718</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list of lenght 0 or </span><span class="si">%d</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)))</span>
</span><span id="L-719"><a href="#L-719"><span class="linenos">719</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-720"><a href="#L-720"><span class="linenos">720</span></a> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="L-721"><a href="#L-721"><span class="linenos">721</span></a> <span class="n">osymbol</span> <span class="o">+=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">s</span>
</span><span id="L-722"><a href="#L-722"><span class="linenos">722</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;symbol&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">osymbol</span>
</span><span id="L-723"><a href="#L-723"><span class="linenos">723</span></a>
</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;#values&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])]</span>
</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;ne&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ne</span><span class="p">)</span>
</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;nc&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nc</span><span class="p">)</span>
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <span class="n">ed</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;enstag&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">enstags</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a> <span class="n">onames</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="n">n</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span> <span class="k">if</span> <span class="p">(</span><span class="n">n</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">n</span> <span class="o">==</span> <span class="n">name</span><span class="p">)])</span>
</span><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a> <span class="n">nr</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">onames</span><span class="p">)</span>
</span><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;nr&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">nr</span>
</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-735"><a href="#L-735"><span class="linenos">735</span></a>
</span><span id="L-736"><a href="#L-736"><span class="linenos">736</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nr</span><span class="p">):</span>
</span><span id="L-737"><a href="#L-737"><span class="linenos">737</span></a> <span class="n">ad</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="n">repname</span> <span class="o">=</span> <span class="n">onames</span><span class="p">[</span><span class="n">r</span><span class="p">]</span>
</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">repname</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">repname</span><span class="p">,</span> <span class="p">[])</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])</span>
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a> <span class="n">Nconf</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span>
</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a> <span class="n">layout</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> i f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Nconf</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">layout</span>
</span><span id="L-744"><a href="#L-744"><span class="linenos">744</span></a> <span class="n">data</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-745"><a href="#L-745"><span class="linenos">745</span></a> <span class="n">counters</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">]</span>
</span><span id="L-746"><a href="#L-746"><span class="linenos">746</span></a> <span class="k">for</span> <span class="n">ci</span> <span class="ow">in</span> <span class="n">idx</span><span class="p">:</span>
</span><span id="L-747"><a href="#L-747"><span class="linenos">747</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="n">ci</span>
</span><span id="L-748"><a href="#L-748"><span class="linenos">748</span></a> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="L-749"><a href="#L-749"><span class="linenos">749</span></a> <span class="n">o</span> <span class="o">=</span> <span class="n">obsl</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span>
</span><span id="L-750"><a href="#L-750"><span class="linenos">750</span></a> <span class="k">if</span> <span class="n">repname</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">:</span>
</span><span id="L-751"><a href="#L-751"><span class="linenos">751</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-752"><a href="#L-752"><span class="linenos">752</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-753"><a href="#L-753"><span class="linenos">753</span></a> <span class="k">continue</span>
</span><span id="L-754"><a href="#L-754"><span class="linenos">754</span></a> <span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span> <span class="o">==</span> <span class="n">ci</span><span class="p">:</span>
</span><span id="L-755"><a href="#L-755"><span class="linenos">755</span></a> <span class="n">num</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span>
</span><span id="L-756"><a href="#L-756"><span class="linenos">756</span></a> <span class="k">if</span> <span class="n">num</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-757"><a href="#L-757"><span class="linenos">757</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-758"><a href="#L-758"><span class="linenos">758</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-759"><a href="#L-759"><span class="linenos">759</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">)</span>
</span><span id="L-760"><a href="#L-760"><span class="linenos">760</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-761"><a href="#L-761"><span class="linenos">761</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">]):</span>
</span><span id="L-762"><a href="#L-762"><span class="linenos">762</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
</span><span id="L-763"><a href="#L-763"><span class="linenos">763</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-764"><a href="#L-764"><span class="linenos">764</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-681"><a href="#L-681"><span class="linenos">681</span></a> <span class="k">if</span> <span class="n">enstags</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-682"><a href="#L-682"><span class="linenos">682</span></a> <span class="n">enstags</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-683"><a href="#L-683"><span class="linenos">683</span></a> <span class="n">od</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-684"><a href="#L-684"><span class="linenos">684</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-685"><a href="#L-685"><span class="linenos">685</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-686"><a href="#L-686"><span class="linenos">686</span></a> <span class="n">r_names</span> <span class="o">+=</span> <span class="p">[</span><span class="n">name</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">mc_names</span><span class="p">]</span>
</span><span id="L-687"><a href="#L-687"><span class="linenos">687</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">r_names</span><span class="p">))</span>
</span><span id="L-688"><a href="#L-688"><span class="linenos">688</span></a> <span class="n">mc_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">n</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span><span class="p">]))</span>
</span><span id="L-689"><a href="#L-689"><span class="linenos">689</span></a> <span class="k">for</span> <span class="n">tmpname</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="L-690"><a href="#L-690"><span class="linenos">690</span></a> <span class="k">if</span> <span class="n">tmpname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">enstags</span><span class="p">:</span>
</span><span id="L-691"><a href="#L-691"><span class="linenos">691</span></a> <span class="n">enstags</span><span class="p">[</span><span class="n">tmpname</span><span class="p">]</span> <span class="o">=</span> <span class="n">tmpname</span>
</span><span id="L-692"><a href="#L-692"><span class="linenos">692</span></a> <span class="n">ne</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">mc_names</span><span class="p">))</span>
</span><span id="L-693"><a href="#L-693"><span class="linenos">693</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-694"><a href="#L-694"><span class="linenos">694</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-695"><a href="#L-695"><span class="linenos">695</span></a> <span class="n">cov_names</span> <span class="o">+=</span> <span class="nb">list</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">)</span>
</span><span id="L-696"><a href="#L-696"><span class="linenos">696</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="L-697"><a href="#L-697"><span class="linenos">697</span></a> <span class="n">nc</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="L-698"><a href="#L-698"><span class="linenos">698</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-699"><a href="#L-699"><span class="linenos">699</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;SCHEMA&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;lattobs&#39;</span><span class="p">,</span> <span class="s1">&#39;VERSION&#39;</span><span class="p">:</span> <span class="s1">&#39;1.0&#39;</span><span class="p">}</span>
</span><span id="L-700"><a href="#L-700"><span class="linenos">700</span></a> <span class="k">if</span> <span class="n">who</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-701"><a href="#L-701"><span class="linenos">701</span></a> <span class="n">who</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
</span><span id="L-702"><a href="#L-702"><span class="linenos">702</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-703"><a href="#L-703"><span class="linenos">703</span></a> <span class="s1">&#39;who&#39;</span><span class="p">:</span> <span class="n">who</span><span class="p">,</span>
</span><span id="L-704"><a href="#L-704"><span class="linenos">704</span></a> <span class="s1">&#39;date&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">())[:</span><span class="o">-</span><span class="mi">7</span><span class="p">],</span>
</span><span id="L-705"><a href="#L-705"><span class="linenos">705</span></a> <span class="s1">&#39;host&#39;</span><span class="p">:</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostname</span><span class="p">(),</span>
</span><span id="L-706"><a href="#L-706"><span class="linenos">706</span></a> <span class="s1">&#39;tool&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;pyerrors&#39;</span><span class="p">,</span> <span class="s1">&#39;version&#39;</span><span class="p">:</span> <span class="n">pyerrorsversion</span><span class="o">.</span><span class="n">__version__</span><span class="p">}}</span>
</span><span id="L-707"><a href="#L-707"><span class="linenos">707</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-708"><a href="#L-708"><span class="linenos">708</span></a> <span class="n">pd</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span>
</span><span id="L-709"><a href="#L-709"><span class="linenos">709</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;spec&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">spec</span>
</span><span id="L-710"><a href="#L-710"><span class="linenos">710</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">origin</span>
</span><span id="L-711"><a href="#L-711"><span class="linenos">711</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="L-712"><a href="#L-712"><span class="linenos">712</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-713"><a href="#L-713"><span class="linenos">713</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;val&#39;</span>
</span><span id="L-714"><a href="#L-714"><span class="linenos">714</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="L-715"><a href="#L-715"><span class="linenos">715</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-716"><a href="#L-716"><span class="linenos">716</span></a> <span class="k">if</span> <span class="n">symbol</span><span class="p">:</span>
</span><span id="L-717"><a href="#L-717"><span class="linenos">717</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">symbol</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="L-718"><a href="#L-718"><span class="linenos">718</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list!&#39;</span><span class="p">)</span>
</span><span id="L-719"><a href="#L-719"><span class="linenos">719</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="L-720"><a href="#L-720"><span class="linenos">720</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list of lenght 0 or </span><span class="si">%d</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)))</span>
</span><span id="L-721"><a href="#L-721"><span class="linenos">721</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-722"><a href="#L-722"><span class="linenos">722</span></a> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="L-723"><a href="#L-723"><span class="linenos">723</span></a> <span class="n">osymbol</span> <span class="o">+=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">s</span>
</span><span id="L-724"><a href="#L-724"><span class="linenos">724</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;symbol&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">osymbol</span>
</span><span id="L-725"><a href="#L-725"><span class="linenos">725</span></a>
</span><span id="L-726"><a href="#L-726"><span class="linenos">726</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;#values&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])]</span>
</span><span id="L-727"><a href="#L-727"><span class="linenos">727</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;ne&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ne</span><span class="p">)</span>
</span><span id="L-728"><a href="#L-728"><span class="linenos">728</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;nc&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nc</span><span class="p">)</span>
</span><span id="L-729"><a href="#L-729"><span class="linenos">729</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-730"><a href="#L-730"><span class="linenos">730</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="L-731"><a href="#L-731"><span class="linenos">731</span></a> <span class="n">ed</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-732"><a href="#L-732"><span class="linenos">732</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;enstag&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">enstags</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
</span><span id="L-733"><a href="#L-733"><span class="linenos">733</span></a> <span class="n">onames</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="n">n</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span> <span class="k">if</span> <span class="p">(</span><span class="n">n</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">n</span> <span class="o">==</span> <span class="n">name</span><span class="p">)])</span>
</span><span id="L-734"><a href="#L-734"><span class="linenos">734</span></a> <span class="n">nr</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">onames</span><span class="p">)</span>
</span><span id="L-735"><a href="#L-735"><span class="linenos">735</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;nr&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">nr</span>
</span><span id="L-736"><a href="#L-736"><span class="linenos">736</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-737"><a href="#L-737"><span class="linenos">737</span></a>
</span><span id="L-738"><a href="#L-738"><span class="linenos">738</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nr</span><span class="p">):</span>
</span><span id="L-739"><a href="#L-739"><span class="linenos">739</span></a> <span class="n">ad</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-740"><a href="#L-740"><span class="linenos">740</span></a> <span class="n">repname</span> <span class="o">=</span> <span class="n">onames</span><span class="p">[</span><span class="n">r</span><span class="p">]</span>
</span><span id="L-741"><a href="#L-741"><span class="linenos">741</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">repname</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
</span><span id="L-742"><a href="#L-742"><span class="linenos">742</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">repname</span><span class="p">,</span> <span class="p">[])</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])</span>
</span><span id="L-743"><a href="#L-743"><span class="linenos">743</span></a> <span class="n">Nconf</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span>
</span><span id="L-744"><a href="#L-744"><span class="linenos">744</span></a> <span class="n">layout</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> i f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Nconf</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="L-745"><a href="#L-745"><span class="linenos">745</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">layout</span>
</span><span id="L-746"><a href="#L-746"><span class="linenos">746</span></a> <span class="n">data</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-747"><a href="#L-747"><span class="linenos">747</span></a> <span class="n">counters</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">]</span>
</span><span id="L-748"><a href="#L-748"><span class="linenos">748</span></a> <span class="k">for</span> <span class="n">ci</span> <span class="ow">in</span> <span class="n">idx</span><span class="p">:</span>
</span><span id="L-749"><a href="#L-749"><span class="linenos">749</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="n">ci</span>
</span><span id="L-750"><a href="#L-750"><span class="linenos">750</span></a> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="L-751"><a href="#L-751"><span class="linenos">751</span></a> <span class="n">o</span> <span class="o">=</span> <span class="n">obsl</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span>
</span><span id="L-752"><a href="#L-752"><span class="linenos">752</span></a> <span class="k">if</span> <span class="n">repname</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">:</span>
</span><span id="L-753"><a href="#L-753"><span class="linenos">753</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-754"><a href="#L-754"><span class="linenos">754</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-755"><a href="#L-755"><span class="linenos">755</span></a> <span class="k">continue</span>
</span><span id="L-756"><a href="#L-756"><span class="linenos">756</span></a> <span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span> <span class="o">==</span> <span class="n">ci</span><span class="p">:</span>
</span><span id="L-757"><a href="#L-757"><span class="linenos">757</span></a> <span class="n">num</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span>
</span><span id="L-758"><a href="#L-758"><span class="linenos">758</span></a> <span class="k">if</span> <span class="n">num</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-759"><a href="#L-759"><span class="linenos">759</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-760"><a href="#L-760"><span class="linenos">760</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-761"><a href="#L-761"><span class="linenos">761</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">)</span>
</span><span id="L-762"><a href="#L-762"><span class="linenos">762</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-763"><a href="#L-763"><span class="linenos">763</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">]):</span>
</span><span id="L-764"><a href="#L-764"><span class="linenos">764</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
</span><span id="L-765"><a href="#L-765"><span class="linenos">765</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-766"><a href="#L-766"><span class="linenos">766</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-767"><a href="#L-767"><span class="linenos">767</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="L-768"><a href="#L-768"><span class="linenos">768</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
</span><span id="L-769"><a href="#L-769"><span class="linenos">769</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ad</span><span class="p">)</span>
</span><span id="L-770"><a href="#L-770"><span class="linenos">770</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a>
</span><span id="L-772"><a href="#L-772"><span class="linenos">772</span></a> <span class="n">allcov</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-773"><a href="#L-773"><span class="linenos">773</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-774"><a href="#L-774"><span class="linenos">774</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">:</span>
</span><span id="L-775"><a href="#L-775"><span class="linenos">775</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">allcov</span><span class="p">:</span>
</span><span id="L-776"><a href="#L-776"><span class="linenos">776</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">np</span><span class="o">.</span><span class="n">array_equal</span><span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span><span class="p">):</span>
</span><span id="L-777"><a href="#L-777"><span class="linenos">777</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Inconsistent covariance matrices for </span><span class="si">%s</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">))</span>
</span><span id="L-778"><a href="#L-778"><span class="linenos">778</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-779"><a href="#L-779"><span class="linenos">779</span></a> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span>
</span><span id="L-780"><a href="#L-780"><span class="linenos">780</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-781"><a href="#L-781"><span class="linenos">781</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">cov_names</span><span class="p">:</span>
</span><span id="L-782"><a href="#L-782"><span class="linenos">782</span></a> <span class="n">cd</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-783"><a href="#L-783"><span class="linenos">783</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="L-784"><a href="#L-784"><span class="linenos">784</span></a>
</span><span id="L-785"><a href="#L-785"><span class="linenos">785</span></a> <span class="n">covd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;cov&#39;</span><span class="p">}</span>
</span><span id="L-786"><a href="#L-786"><span class="linenos">786</span></a> <span class="k">if</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="p">():</span>
</span><span id="L-787"><a href="#L-787"><span class="linenos">787</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="L-788"><a href="#L-788"><span class="linenos">788</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 1 f&#39;</span>
</span><span id="L-789"><a href="#L-789"><span class="linenos">789</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="L-790"><a href="#L-790"><span class="linenos">790</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-791"><a href="#L-791"><span class="linenos">791</span></a> <span class="n">shape</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span>
</span><span id="L-792"><a href="#L-792"><span class="linenos">792</span></a> <span class="k">assert</span> <span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-793"><a href="#L-793"><span class="linenos">793</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-794"><a href="#L-794"><span class="linenos">794</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> </span><span class="si">%d</span><span class="s1"> f&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="n">ncov</span><span class="p">)</span>
</span><span id="L-795"><a href="#L-795"><span class="linenos">795</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-796"><a href="#L-796"><span class="linenos">796</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="L-797"><a href="#L-797"><span class="linenos">797</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="L-798"><a href="#L-798"><span class="linenos">798</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
</span><span id="L-799"><a href="#L-799"><span class="linenos">799</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-800"><a href="#L-800"><span class="linenos">800</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-801"><a href="#L-801"><span class="linenos">801</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-802"><a href="#L-802"><span class="linenos">802</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="L-803"><a href="#L-803"><span class="linenos">803</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="L-804"><a href="#L-804"><span class="linenos">804</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="L-805"><a href="#L-805"><span class="linenos">805</span></a>
</span><span id="L-806"><a href="#L-806"><span class="linenos">806</span></a> <span class="n">gradd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;grad&#39;</span><span class="p">}</span>
</span><span id="L-807"><a href="#L-807"><span class="linenos">807</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-809"><a href="#L-809"><span class="linenos">809</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="L-810"><a href="#L-810"><span class="linenos">810</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-811"><a href="#L-811"><span class="linenos">811</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">:</span>
</span><span id="L-812"><a href="#L-812"><span class="linenos">812</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">grad</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
</span><span id="L-813"><a href="#L-813"><span class="linenos">813</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-814"><a href="#L-814"><span class="linenos">814</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="L-815"><a href="#L-815"><span class="linenos">815</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-816"><a href="#L-816"><span class="linenos">816</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-767"><a href="#L-767"><span class="linenos">767</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-768"><a href="#L-768"><span class="linenos">768</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-769"><a href="#L-769"><span class="linenos">769</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="L-770"><a href="#L-770"><span class="linenos">770</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
</span><span id="L-771"><a href="#L-771"><span class="linenos">771</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ad</span><span class="p">)</span>
</span><span id="L-772"><a href="#L-772"><span class="linenos">772</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="L-773"><a href="#L-773"><span class="linenos">773</span></a>
</span><span id="L-774"><a href="#L-774"><span class="linenos">774</span></a> <span class="n">allcov</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-775"><a href="#L-775"><span class="linenos">775</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-776"><a href="#L-776"><span class="linenos">776</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">:</span>
</span><span id="L-777"><a href="#L-777"><span class="linenos">777</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">allcov</span><span class="p">:</span>
</span><span id="L-778"><a href="#L-778"><span class="linenos">778</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">np</span><span class="o">.</span><span class="n">array_equal</span><span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span><span class="p">):</span>
</span><span id="L-779"><a href="#L-779"><span class="linenos">779</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Inconsistent covariance matrices for </span><span class="si">%s</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">))</span>
</span><span id="L-780"><a href="#L-780"><span class="linenos">780</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-781"><a href="#L-781"><span class="linenos">781</span></a> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span>
</span><span id="L-782"><a href="#L-782"><span class="linenos">782</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-783"><a href="#L-783"><span class="linenos">783</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">cov_names</span><span class="p">:</span>
</span><span id="L-784"><a href="#L-784"><span class="linenos">784</span></a> <span class="n">cd</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-785"><a href="#L-785"><span class="linenos">785</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="L-786"><a href="#L-786"><span class="linenos">786</span></a>
</span><span id="L-787"><a href="#L-787"><span class="linenos">787</span></a> <span class="n">covd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;cov&#39;</span><span class="p">}</span>
</span><span id="L-788"><a href="#L-788"><span class="linenos">788</span></a> <span class="k">if</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="p">():</span>
</span><span id="L-789"><a href="#L-789"><span class="linenos">789</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="L-790"><a href="#L-790"><span class="linenos">790</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 1 f&#39;</span>
</span><span id="L-791"><a href="#L-791"><span class="linenos">791</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="L-792"><a href="#L-792"><span class="linenos">792</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-793"><a href="#L-793"><span class="linenos">793</span></a> <span class="n">shape</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span>
</span><span id="L-794"><a href="#L-794"><span class="linenos">794</span></a> <span class="k">assert</span> <span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-795"><a href="#L-795"><span class="linenos">795</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-796"><a href="#L-796"><span class="linenos">796</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> </span><span class="si">%d</span><span class="s1"> f&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="n">ncov</span><span class="p">)</span>
</span><span id="L-797"><a href="#L-797"><span class="linenos">797</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-798"><a href="#L-798"><span class="linenos">798</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="L-799"><a href="#L-799"><span class="linenos">799</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="L-800"><a href="#L-800"><span class="linenos">800</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
</span><span id="L-801"><a href="#L-801"><span class="linenos">801</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-802"><a href="#L-802"><span class="linenos">802</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-803"><a href="#L-803"><span class="linenos">803</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-804"><a href="#L-804"><span class="linenos">804</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="L-805"><a href="#L-805"><span class="linenos">805</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="L-806"><a href="#L-806"><span class="linenos">806</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="L-807"><a href="#L-807"><span class="linenos">807</span></a>
</span><span id="L-808"><a href="#L-808"><span class="linenos">808</span></a> <span class="n">gradd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;grad&#39;</span><span class="p">}</span>
</span><span id="L-809"><a href="#L-809"><span class="linenos">809</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="L-810"><a href="#L-810"><span class="linenos">810</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="L-811"><a href="#L-811"><span class="linenos">811</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="L-812"><a href="#L-812"><span class="linenos">812</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="L-813"><a href="#L-813"><span class="linenos">813</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">:</span>
</span><span id="L-814"><a href="#L-814"><span class="linenos">814</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">grad</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
</span><span id="L-815"><a href="#L-815"><span class="linenos">815</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-816"><a href="#L-816"><span class="linenos">816</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="L-817"><a href="#L-817"><span class="linenos">817</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-818"><a href="#L-818"><span class="linenos">818</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-819"><a href="#L-819"><span class="linenos">819</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="L-820"><a href="#L-820"><span class="linenos">820</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">covd</span><span class="p">,</span> <span class="n">gradd</span><span class="p">]</span>
</span><span id="L-821"><a href="#L-821"><span class="linenos">821</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cd</span><span class="p">)</span>
</span><span id="L-822"><a href="#L-822"><span class="linenos">822</span></a>
</span><span id="L-823"><a href="#L-823"><span class="linenos">823</span></a> <span class="n">rs</span> <span class="o">=</span> <span class="s1">&#39;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="n">_dobsdict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">od</span><span class="p">)</span>
</span><span id="L-819"><a href="#L-819"><span class="linenos">819</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-820"><a href="#L-820"><span class="linenos">820</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="L-821"><a href="#L-821"><span class="linenos">821</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="L-822"><a href="#L-822"><span class="linenos">822</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">covd</span><span class="p">,</span> <span class="n">gradd</span><span class="p">]</span>
</span><span id="L-823"><a href="#L-823"><span class="linenos">823</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cd</span><span class="p">)</span>
</span><span id="L-824"><a href="#L-824"><span class="linenos">824</span></a>
</span><span id="L-825"><a href="#L-825"><span class="linenos">825</span></a> <span class="k">return</span> <span class="n">rs</span>
</span><span id="L-825"><a href="#L-825"><span class="linenos">825</span></a> <span class="n">rs</span> <span class="o">=</span> <span class="s1">&#39;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="n">_dobsdict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">od</span><span class="p">)</span>
</span><span id="L-826"><a href="#L-826"><span class="linenos">826</span></a>
</span><span id="L-827"><a href="#L-827"><span class="linenos">827</span></a>
</span><span id="L-828"><a href="#L-828"><span class="linenos">828</span></a><span class="k">def</span> <span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="p">{},</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-829"><a href="#L-829"><span class="linenos">829</span></a> <span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="L-830"><a href="#L-830"><span class="linenos">830</span></a><span class="sd"> according to the Zeuthen dobs format.</span>
</span><span id="L-831"><a href="#L-831"><span class="linenos">831</span></a>
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a><span class="sd"> Tags are not written or recovered automatically. The separator | is removed from the replica names.</span>
</span><span id="L-827"><a href="#L-827"><span class="linenos">827</span></a> <span class="k">return</span> <span class="n">rs</span>
</span><span id="L-828"><a href="#L-828"><span class="linenos">828</span></a>
</span><span id="L-829"><a href="#L-829"><span class="linenos">829</span></a>
</span><span id="L-830"><a href="#L-830"><span class="linenos">830</span></a><span class="k">def</span> <span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="p">{},</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-831"><a href="#L-831"><span class="linenos">831</span></a> <span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="L-832"><a href="#L-832"><span class="linenos">832</span></a><span class="sd"> according to the Zeuthen dobs format.</span>
</span><span id="L-833"><a href="#L-833"><span class="linenos">833</span></a>
</span><span id="L-834"><a href="#L-834"><span class="linenos">834</span></a><span class="sd"> Parameters</span>
</span><span id="L-835"><a href="#L-835"><span class="linenos">835</span></a><span class="sd"> ----------</span>
</span><span id="L-836"><a href="#L-836"><span class="linenos">836</span></a><span class="sd"> obsl : list</span>
</span><span id="L-837"><a href="#L-837"><span class="linenos">837</span></a><span class="sd"> List of Obs that will be exported.</span>
</span><span id="L-838"><a href="#L-838"><span class="linenos">838</span></a><span class="sd"> The Obs inside a structure do not have to be defined on the same set of configurations,</span>
</span><span id="L-839"><a href="#L-839"><span class="linenos">839</span></a><span class="sd"> but the storage requirement is increased, if this is not the case.</span>
</span><span id="L-840"><a href="#L-840"><span class="linenos">840</span></a><span class="sd"> fname : str</span>
</span><span id="L-841"><a href="#L-841"><span class="linenos">841</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="L-842"><a href="#L-842"><span class="linenos">842</span></a><span class="sd"> name : str</span>
</span><span id="L-843"><a href="#L-843"><span class="linenos">843</span></a><span class="sd"> The name of the observable.</span>
</span><span id="L-844"><a href="#L-844"><span class="linenos">844</span></a><span class="sd"> spec : str</span>
</span><span id="L-845"><a href="#L-845"><span class="linenos">845</span></a><span class="sd"> Optional string that describes the contents of the file.</span>
</span><span id="L-846"><a href="#L-846"><span class="linenos">846</span></a><span class="sd"> origin : str</span>
</span><span id="L-847"><a href="#L-847"><span class="linenos">847</span></a><span class="sd"> Specify where the data has its origin.</span>
</span><span id="L-848"><a href="#L-848"><span class="linenos">848</span></a><span class="sd"> symbol : list</span>
</span><span id="L-849"><a href="#L-849"><span class="linenos">849</span></a><span class="sd"> A list of symbols that describe the observables to be written. May be empty.</span>
</span><span id="L-850"><a href="#L-850"><span class="linenos">850</span></a><span class="sd"> who : str</span>
</span><span id="L-851"><a href="#L-851"><span class="linenos">851</span></a><span class="sd"> Provide the name of the person that exports the data.</span>
</span><span id="L-852"><a href="#L-852"><span class="linenos">852</span></a><span class="sd"> enstags : dict</span>
</span><span id="L-853"><a href="#L-853"><span class="linenos">853</span></a><span class="sd"> Provide alternative enstag for ensembles in the form enstags = {ename: enstag}</span>
</span><span id="L-854"><a href="#L-854"><span class="linenos">854</span></a><span class="sd"> Otherwise, the ensemble name is used.</span>
</span><span id="L-855"><a href="#L-855"><span class="linenos">855</span></a><span class="sd"> gz : bool</span>
</span><span id="L-856"><a href="#L-856"><span class="linenos">856</span></a><span class="sd"> If True, the output is a gzipped XML. If False, the output is a XML file.</span>
</span><span id="L-857"><a href="#L-857"><span class="linenos">857</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-858"><a href="#L-858"><span class="linenos">858</span></a>
</span><span id="L-859"><a href="#L-859"><span class="linenos">859</span></a> <span class="n">dobsstring</span> <span class="o">=</span> <span class="n">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="p">,</span> <span class="n">origin</span><span class="p">,</span> <span class="n">symbol</span><span class="p">,</span> <span class="n">who</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="n">enstags</span><span class="p">)</span>
</span><span id="L-834"><a href="#L-834"><span class="linenos">834</span></a><span class="sd"> Tags are not written or recovered automatically. The separator | is removed from the replica names.</span>
</span><span id="L-835"><a href="#L-835"><span class="linenos">835</span></a>
</span><span id="L-836"><a href="#L-836"><span class="linenos">836</span></a><span class="sd"> Parameters</span>
</span><span id="L-837"><a href="#L-837"><span class="linenos">837</span></a><span class="sd"> ----------</span>
</span><span id="L-838"><a href="#L-838"><span class="linenos">838</span></a><span class="sd"> obsl : list</span>
</span><span id="L-839"><a href="#L-839"><span class="linenos">839</span></a><span class="sd"> List of Obs that will be exported.</span>
</span><span id="L-840"><a href="#L-840"><span class="linenos">840</span></a><span class="sd"> The Obs inside a structure do not have to be defined on the same set of configurations,</span>
</span><span id="L-841"><a href="#L-841"><span class="linenos">841</span></a><span class="sd"> but the storage requirement is increased, if this is not the case.</span>
</span><span id="L-842"><a href="#L-842"><span class="linenos">842</span></a><span class="sd"> fname : str</span>
</span><span id="L-843"><a href="#L-843"><span class="linenos">843</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="L-844"><a href="#L-844"><span class="linenos">844</span></a><span class="sd"> name : str</span>
</span><span id="L-845"><a href="#L-845"><span class="linenos">845</span></a><span class="sd"> The name of the observable.</span>
</span><span id="L-846"><a href="#L-846"><span class="linenos">846</span></a><span class="sd"> spec : str</span>
</span><span id="L-847"><a href="#L-847"><span class="linenos">847</span></a><span class="sd"> Optional string that describes the contents of the file.</span>
</span><span id="L-848"><a href="#L-848"><span class="linenos">848</span></a><span class="sd"> origin : str</span>
</span><span id="L-849"><a href="#L-849"><span class="linenos">849</span></a><span class="sd"> Specify where the data has its origin.</span>
</span><span id="L-850"><a href="#L-850"><span class="linenos">850</span></a><span class="sd"> symbol : list</span>
</span><span id="L-851"><a href="#L-851"><span class="linenos">851</span></a><span class="sd"> A list of symbols that describe the observables to be written. May be empty.</span>
</span><span id="L-852"><a href="#L-852"><span class="linenos">852</span></a><span class="sd"> who : str</span>
</span><span id="L-853"><a href="#L-853"><span class="linenos">853</span></a><span class="sd"> Provide the name of the person that exports the data.</span>
</span><span id="L-854"><a href="#L-854"><span class="linenos">854</span></a><span class="sd"> enstags : dict</span>
</span><span id="L-855"><a href="#L-855"><span class="linenos">855</span></a><span class="sd"> Provide alternative enstag for ensembles in the form enstags = {ename: enstag}</span>
</span><span id="L-856"><a href="#L-856"><span class="linenos">856</span></a><span class="sd"> Otherwise, the ensemble name is used.</span>
</span><span id="L-857"><a href="#L-857"><span class="linenos">857</span></a><span class="sd"> gz : bool</span>
</span><span id="L-858"><a href="#L-858"><span class="linenos">858</span></a><span class="sd"> If True, the output is a gzipped XML. If False, the output is a XML file.</span>
</span><span id="L-859"><a href="#L-859"><span class="linenos">859</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-860"><a href="#L-860"><span class="linenos">860</span></a>
</span><span id="L-861"><a href="#L-861"><span class="linenos">861</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.xml&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-862"><a href="#L-862"><span class="linenos">862</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.xml&#39;</span>
</span><span id="L-863"><a href="#L-863"><span class="linenos">863</span></a>
</span><span id="L-864"><a href="#L-864"><span class="linenos">864</span></a> <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
</span><span id="L-865"><a href="#L-865"><span class="linenos">865</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-866"><a href="#L-866"><span class="linenos">866</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="L-867"><a href="#L-867"><span class="linenos">867</span></a>
</span><span id="L-868"><a href="#L-868"><span class="linenos">868</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span>
</span><span id="L-869"><a href="#L-869"><span class="linenos">869</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
</span><span id="L-870"><a href="#L-870"><span class="linenos">870</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-871"><a href="#L-871"><span class="linenos">871</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span>
</span><span id="L-872"><a href="#L-872"><span class="linenos">872</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="p">)</span>
</span><span id="L-873"><a href="#L-873"><span class="linenos">873</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-861"><a href="#L-861"><span class="linenos">861</span></a> <span class="n">dobsstring</span> <span class="o">=</span> <span class="n">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="p">,</span> <span class="n">origin</span><span class="p">,</span> <span class="n">symbol</span><span class="p">,</span> <span class="n">who</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="n">enstags</span><span class="p">)</span>
</span><span id="L-862"><a href="#L-862"><span class="linenos">862</span></a>
</span><span id="L-863"><a href="#L-863"><span class="linenos">863</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.xml&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-864"><a href="#L-864"><span class="linenos">864</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.xml&#39;</span>
</span><span id="L-865"><a href="#L-865"><span class="linenos">865</span></a>
</span><span id="L-866"><a href="#L-866"><span class="linenos">866</span></a> <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
</span><span id="L-867"><a href="#L-867"><span class="linenos">867</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="L-868"><a href="#L-868"><span class="linenos">868</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="L-869"><a href="#L-869"><span class="linenos">869</span></a>
</span><span id="L-870"><a href="#L-870"><span class="linenos">870</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span>
</span><span id="L-871"><a href="#L-871"><span class="linenos">871</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
</span><span id="L-872"><a href="#L-872"><span class="linenos">872</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-873"><a href="#L-873"><span class="linenos">873</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span>
</span><span id="L-874"><a href="#L-874"><span class="linenos">874</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="p">)</span>
</span><span id="L-875"><a href="#L-875"><span class="linenos">875</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span></pre></div>
@ -1594,13 +1596,13 @@ None or False: No separator is inserted.</li>
<div class="attr function">
<span class="def">def</span>
<span class="name">create_dobs_string</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">obsl</span>,</span><span class="param"> <span class="n">name</span>,</span><span class="param"> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span>,</span><span class="param"> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span>,</span><span class="param"> <span class="n">symbol</span><span class="o">=</span><span class="p">[]</span>,</span><span class="param"> <span class="n">who</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">enstags</span><span class="o">=</span><span class="p">{}</span></span>)</span>
<span class="name">create_dobs_string</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">obsl</span>,</span><span class="param"> <span class="n">name</span>,</span><span class="param"> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span>,</span><span class="param"> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span>,</span><span class="param"> <span class="n">symbol</span><span class="o">=</span><span class="p">[]</span>,</span><span class="param"> <span class="n">who</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span></span>)</span>
<label class="view-source-button" for="create_dobs_string-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#create_dobs_string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_dobs_string-656"><a href="#create_dobs_string-656"><span class="linenos">656</span></a><span class="k">def</span> <span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="p">{}):</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="create_dobs_string-656"><a href="#create_dobs_string-656"><span class="linenos">656</span></a><span class="k">def</span> <span class="nf">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="create_dobs_string-657"><a href="#create_dobs_string-657"><span class="linenos">657</span></a> <span class="sd">&quot;&quot;&quot;Generate the string for the export of a list of Obs or structures containing Obs</span>
</span><span id="create_dobs_string-658"><a href="#create_dobs_string-658"><span class="linenos">658</span></a><span class="sd"> to a .xml.gz file according to the Zeuthen dobs format.</span>
</span><span id="create_dobs_string-659"><a href="#create_dobs_string-659"><span class="linenos">659</span></a>
@ -1626,151 +1628,153 @@ None or False: No separator is inserted.</li>
</span><span id="create_dobs_string-679"><a href="#create_dobs_string-679"><span class="linenos">679</span></a><span class="sd"> Provide alternative enstag for ensembles in the form enstags = {ename: enstag}</span>
</span><span id="create_dobs_string-680"><a href="#create_dobs_string-680"><span class="linenos">680</span></a><span class="sd"> Otherwise, the ensemble name is used.</span>
</span><span id="create_dobs_string-681"><a href="#create_dobs_string-681"><span class="linenos">681</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="create_dobs_string-682"><a href="#create_dobs_string-682"><span class="linenos">682</span></a> <span class="n">od</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-683"><a href="#create_dobs_string-683"><span class="linenos">683</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-684"><a href="#create_dobs_string-684"><span class="linenos">684</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-685"><a href="#create_dobs_string-685"><span class="linenos">685</span></a> <span class="n">r_names</span> <span class="o">+=</span> <span class="p">[</span><span class="n">name</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">mc_names</span><span class="p">]</span>
</span><span id="create_dobs_string-686"><a href="#create_dobs_string-686"><span class="linenos">686</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">r_names</span><span class="p">))</span>
</span><span id="create_dobs_string-687"><a href="#create_dobs_string-687"><span class="linenos">687</span></a> <span class="n">mc_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">n</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span><span class="p">]))</span>
</span><span id="create_dobs_string-688"><a href="#create_dobs_string-688"><span class="linenos">688</span></a> <span class="k">for</span> <span class="n">tmpname</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="create_dobs_string-689"><a href="#create_dobs_string-689"><span class="linenos">689</span></a> <span class="k">if</span> <span class="n">tmpname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">enstags</span><span class="p">:</span>
</span><span id="create_dobs_string-690"><a href="#create_dobs_string-690"><span class="linenos">690</span></a> <span class="n">enstags</span><span class="p">[</span><span class="n">tmpname</span><span class="p">]</span> <span class="o">=</span> <span class="n">tmpname</span>
</span><span id="create_dobs_string-691"><a href="#create_dobs_string-691"><span class="linenos">691</span></a> <span class="n">ne</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">mc_names</span><span class="p">))</span>
</span><span id="create_dobs_string-692"><a href="#create_dobs_string-692"><span class="linenos">692</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-693"><a href="#create_dobs_string-693"><span class="linenos">693</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-694"><a href="#create_dobs_string-694"><span class="linenos">694</span></a> <span class="n">cov_names</span> <span class="o">+=</span> <span class="nb">list</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">)</span>
</span><span id="create_dobs_string-695"><a href="#create_dobs_string-695"><span class="linenos">695</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="create_dobs_string-696"><a href="#create_dobs_string-696"><span class="linenos">696</span></a> <span class="n">nc</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="create_dobs_string-697"><a href="#create_dobs_string-697"><span class="linenos">697</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-698"><a href="#create_dobs_string-698"><span class="linenos">698</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;SCHEMA&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;lattobs&#39;</span><span class="p">,</span> <span class="s1">&#39;VERSION&#39;</span><span class="p">:</span> <span class="s1">&#39;1.0&#39;</span><span class="p">}</span>
</span><span id="create_dobs_string-699"><a href="#create_dobs_string-699"><span class="linenos">699</span></a> <span class="k">if</span> <span class="n">who</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="create_dobs_string-700"><a href="#create_dobs_string-700"><span class="linenos">700</span></a> <span class="n">who</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
</span><span id="create_dobs_string-701"><a href="#create_dobs_string-701"><span class="linenos">701</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="create_dobs_string-702"><a href="#create_dobs_string-702"><span class="linenos">702</span></a> <span class="s1">&#39;who&#39;</span><span class="p">:</span> <span class="n">who</span><span class="p">,</span>
</span><span id="create_dobs_string-703"><a href="#create_dobs_string-703"><span class="linenos">703</span></a> <span class="s1">&#39;date&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">())[:</span><span class="o">-</span><span class="mi">7</span><span class="p">],</span>
</span><span id="create_dobs_string-704"><a href="#create_dobs_string-704"><span class="linenos">704</span></a> <span class="s1">&#39;host&#39;</span><span class="p">:</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostname</span><span class="p">(),</span>
</span><span id="create_dobs_string-705"><a href="#create_dobs_string-705"><span class="linenos">705</span></a> <span class="s1">&#39;tool&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;pyerrors&#39;</span><span class="p">,</span> <span class="s1">&#39;version&#39;</span><span class="p">:</span> <span class="n">pyerrorsversion</span><span class="o">.</span><span class="n">__version__</span><span class="p">}}</span>
</span><span id="create_dobs_string-706"><a href="#create_dobs_string-706"><span class="linenos">706</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-707"><a href="#create_dobs_string-707"><span class="linenos">707</span></a> <span class="n">pd</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span>
</span><span id="create_dobs_string-708"><a href="#create_dobs_string-708"><span class="linenos">708</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;spec&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">spec</span>
</span><span id="create_dobs_string-709"><a href="#create_dobs_string-709"><span class="linenos">709</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">origin</span>
</span><span id="create_dobs_string-710"><a href="#create_dobs_string-710"><span class="linenos">710</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="create_dobs_string-711"><a href="#create_dobs_string-711"><span class="linenos">711</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-712"><a href="#create_dobs_string-712"><span class="linenos">712</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;val&#39;</span>
</span><span id="create_dobs_string-713"><a href="#create_dobs_string-713"><span class="linenos">713</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="create_dobs_string-714"><a href="#create_dobs_string-714"><span class="linenos">714</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-715"><a href="#create_dobs_string-715"><span class="linenos">715</span></a> <span class="k">if</span> <span class="n">symbol</span><span class="p">:</span>
</span><span id="create_dobs_string-716"><a href="#create_dobs_string-716"><span class="linenos">716</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">symbol</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="create_dobs_string-717"><a href="#create_dobs_string-717"><span class="linenos">717</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list!&#39;</span><span class="p">)</span>
</span><span id="create_dobs_string-718"><a href="#create_dobs_string-718"><span class="linenos">718</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="create_dobs_string-719"><a href="#create_dobs_string-719"><span class="linenos">719</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list of lenght 0 or </span><span class="si">%d</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)))</span>
</span><span id="create_dobs_string-720"><a href="#create_dobs_string-720"><span class="linenos">720</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="create_dobs_string-721"><a href="#create_dobs_string-721"><span class="linenos">721</span></a> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="create_dobs_string-722"><a href="#create_dobs_string-722"><span class="linenos">722</span></a> <span class="n">osymbol</span> <span class="o">+=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">s</span>
</span><span id="create_dobs_string-723"><a href="#create_dobs_string-723"><span class="linenos">723</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;symbol&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">osymbol</span>
</span><span id="create_dobs_string-724"><a href="#create_dobs_string-724"><span class="linenos">724</span></a>
</span><span id="create_dobs_string-725"><a href="#create_dobs_string-725"><span class="linenos">725</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;#values&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])]</span>
</span><span id="create_dobs_string-726"><a href="#create_dobs_string-726"><span class="linenos">726</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;ne&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ne</span><span class="p">)</span>
</span><span id="create_dobs_string-727"><a href="#create_dobs_string-727"><span class="linenos">727</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;nc&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nc</span><span class="p">)</span>
</span><span id="create_dobs_string-728"><a href="#create_dobs_string-728"><span class="linenos">728</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-729"><a href="#create_dobs_string-729"><span class="linenos">729</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="create_dobs_string-730"><a href="#create_dobs_string-730"><span class="linenos">730</span></a> <span class="n">ed</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-731"><a href="#create_dobs_string-731"><span class="linenos">731</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;enstag&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">enstags</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
</span><span id="create_dobs_string-732"><a href="#create_dobs_string-732"><span class="linenos">732</span></a> <span class="n">onames</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="n">n</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span> <span class="k">if</span> <span class="p">(</span><span class="n">n</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">n</span> <span class="o">==</span> <span class="n">name</span><span class="p">)])</span>
</span><span id="create_dobs_string-733"><a href="#create_dobs_string-733"><span class="linenos">733</span></a> <span class="n">nr</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">onames</span><span class="p">)</span>
</span><span id="create_dobs_string-734"><a href="#create_dobs_string-734"><span class="linenos">734</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;nr&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">nr</span>
</span><span id="create_dobs_string-735"><a href="#create_dobs_string-735"><span class="linenos">735</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-736"><a href="#create_dobs_string-736"><span class="linenos">736</span></a>
</span><span id="create_dobs_string-737"><a href="#create_dobs_string-737"><span class="linenos">737</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nr</span><span class="p">):</span>
</span><span id="create_dobs_string-738"><a href="#create_dobs_string-738"><span class="linenos">738</span></a> <span class="n">ad</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-739"><a href="#create_dobs_string-739"><span class="linenos">739</span></a> <span class="n">repname</span> <span class="o">=</span> <span class="n">onames</span><span class="p">[</span><span class="n">r</span><span class="p">]</span>
</span><span id="create_dobs_string-740"><a href="#create_dobs_string-740"><span class="linenos">740</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">repname</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
</span><span id="create_dobs_string-741"><a href="#create_dobs_string-741"><span class="linenos">741</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">repname</span><span class="p">,</span> <span class="p">[])</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])</span>
</span><span id="create_dobs_string-742"><a href="#create_dobs_string-742"><span class="linenos">742</span></a> <span class="n">Nconf</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span>
</span><span id="create_dobs_string-743"><a href="#create_dobs_string-743"><span class="linenos">743</span></a> <span class="n">layout</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> i f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Nconf</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="create_dobs_string-744"><a href="#create_dobs_string-744"><span class="linenos">744</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">layout</span>
</span><span id="create_dobs_string-745"><a href="#create_dobs_string-745"><span class="linenos">745</span></a> <span class="n">data</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-746"><a href="#create_dobs_string-746"><span class="linenos">746</span></a> <span class="n">counters</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">]</span>
</span><span id="create_dobs_string-747"><a href="#create_dobs_string-747"><span class="linenos">747</span></a> <span class="k">for</span> <span class="n">ci</span> <span class="ow">in</span> <span class="n">idx</span><span class="p">:</span>
</span><span id="create_dobs_string-748"><a href="#create_dobs_string-748"><span class="linenos">748</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="n">ci</span>
</span><span id="create_dobs_string-749"><a href="#create_dobs_string-749"><span class="linenos">749</span></a> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="create_dobs_string-750"><a href="#create_dobs_string-750"><span class="linenos">750</span></a> <span class="n">o</span> <span class="o">=</span> <span class="n">obsl</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span>
</span><span id="create_dobs_string-751"><a href="#create_dobs_string-751"><span class="linenos">751</span></a> <span class="k">if</span> <span class="n">repname</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">:</span>
</span><span id="create_dobs_string-752"><a href="#create_dobs_string-752"><span class="linenos">752</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-753"><a href="#create_dobs_string-753"><span class="linenos">753</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-754"><a href="#create_dobs_string-754"><span class="linenos">754</span></a> <span class="k">continue</span>
</span><span id="create_dobs_string-755"><a href="#create_dobs_string-755"><span class="linenos">755</span></a> <span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span> <span class="o">==</span> <span class="n">ci</span><span class="p">:</span>
</span><span id="create_dobs_string-756"><a href="#create_dobs_string-756"><span class="linenos">756</span></a> <span class="n">num</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span>
</span><span id="create_dobs_string-757"><a href="#create_dobs_string-757"><span class="linenos">757</span></a> <span class="k">if</span> <span class="n">num</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-758"><a href="#create_dobs_string-758"><span class="linenos">758</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-759"><a href="#create_dobs_string-759"><span class="linenos">759</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-760"><a href="#create_dobs_string-760"><span class="linenos">760</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">)</span>
</span><span id="create_dobs_string-761"><a href="#create_dobs_string-761"><span class="linenos">761</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="create_dobs_string-762"><a href="#create_dobs_string-762"><span class="linenos">762</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">]):</span>
</span><span id="create_dobs_string-763"><a href="#create_dobs_string-763"><span class="linenos">763</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
</span><span id="create_dobs_string-764"><a href="#create_dobs_string-764"><span class="linenos">764</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-765"><a href="#create_dobs_string-765"><span class="linenos">765</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-682"><a href="#create_dobs_string-682"><span class="linenos">682</span></a> <span class="k">if</span> <span class="n">enstags</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="create_dobs_string-683"><a href="#create_dobs_string-683"><span class="linenos">683</span></a> <span class="n">enstags</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-684"><a href="#create_dobs_string-684"><span class="linenos">684</span></a> <span class="n">od</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-685"><a href="#create_dobs_string-685"><span class="linenos">685</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-686"><a href="#create_dobs_string-686"><span class="linenos">686</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-687"><a href="#create_dobs_string-687"><span class="linenos">687</span></a> <span class="n">r_names</span> <span class="o">+=</span> <span class="p">[</span><span class="n">name</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">names</span> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">mc_names</span><span class="p">]</span>
</span><span id="create_dobs_string-688"><a href="#create_dobs_string-688"><span class="linenos">688</span></a> <span class="n">r_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">r_names</span><span class="p">))</span>
</span><span id="create_dobs_string-689"><a href="#create_dobs_string-689"><span class="linenos">689</span></a> <span class="n">mc_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">n</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span><span class="p">]))</span>
</span><span id="create_dobs_string-690"><a href="#create_dobs_string-690"><span class="linenos">690</span></a> <span class="k">for</span> <span class="n">tmpname</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="create_dobs_string-691"><a href="#create_dobs_string-691"><span class="linenos">691</span></a> <span class="k">if</span> <span class="n">tmpname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">enstags</span><span class="p">:</span>
</span><span id="create_dobs_string-692"><a href="#create_dobs_string-692"><span class="linenos">692</span></a> <span class="n">enstags</span><span class="p">[</span><span class="n">tmpname</span><span class="p">]</span> <span class="o">=</span> <span class="n">tmpname</span>
</span><span id="create_dobs_string-693"><a href="#create_dobs_string-693"><span class="linenos">693</span></a> <span class="n">ne</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">mc_names</span><span class="p">))</span>
</span><span id="create_dobs_string-694"><a href="#create_dobs_string-694"><span class="linenos">694</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-695"><a href="#create_dobs_string-695"><span class="linenos">695</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-696"><a href="#create_dobs_string-696"><span class="linenos">696</span></a> <span class="n">cov_names</span> <span class="o">+=</span> <span class="nb">list</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">)</span>
</span><span id="create_dobs_string-697"><a href="#create_dobs_string-697"><span class="linenos">697</span></a> <span class="n">cov_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="create_dobs_string-698"><a href="#create_dobs_string-698"><span class="linenos">698</span></a> <span class="n">nc</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">cov_names</span><span class="p">))</span>
</span><span id="create_dobs_string-699"><a href="#create_dobs_string-699"><span class="linenos">699</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-700"><a href="#create_dobs_string-700"><span class="linenos">700</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;SCHEMA&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;NAME&#39;</span><span class="p">:</span> <span class="s1">&#39;lattobs&#39;</span><span class="p">,</span> <span class="s1">&#39;VERSION&#39;</span><span class="p">:</span> <span class="s1">&#39;1.0&#39;</span><span class="p">}</span>
</span><span id="create_dobs_string-701"><a href="#create_dobs_string-701"><span class="linenos">701</span></a> <span class="k">if</span> <span class="n">who</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="create_dobs_string-702"><a href="#create_dobs_string-702"><span class="linenos">702</span></a> <span class="n">who</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getuser</span><span class="p">()</span>
</span><span id="create_dobs_string-703"><a href="#create_dobs_string-703"><span class="linenos">703</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="create_dobs_string-704"><a href="#create_dobs_string-704"><span class="linenos">704</span></a> <span class="s1">&#39;who&#39;</span><span class="p">:</span> <span class="n">who</span><span class="p">,</span>
</span><span id="create_dobs_string-705"><a href="#create_dobs_string-705"><span class="linenos">705</span></a> <span class="s1">&#39;date&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">())[:</span><span class="o">-</span><span class="mi">7</span><span class="p">],</span>
</span><span id="create_dobs_string-706"><a href="#create_dobs_string-706"><span class="linenos">706</span></a> <span class="s1">&#39;host&#39;</span><span class="p">:</span> <span class="n">socket</span><span class="o">.</span><span class="n">gethostname</span><span class="p">(),</span>
</span><span id="create_dobs_string-707"><a href="#create_dobs_string-707"><span class="linenos">707</span></a> <span class="s1">&#39;tool&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;pyerrors&#39;</span><span class="p">,</span> <span class="s1">&#39;version&#39;</span><span class="p">:</span> <span class="n">pyerrorsversion</span><span class="o">.</span><span class="n">__version__</span><span class="p">}}</span>
</span><span id="create_dobs_string-708"><a href="#create_dobs_string-708"><span class="linenos">708</span></a> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-709"><a href="#create_dobs_string-709"><span class="linenos">709</span></a> <span class="n">pd</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">&#39;OBSERVABLES&#39;</span><span class="p">][</span><span class="s1">&#39;dobs&#39;</span><span class="p">]</span>
</span><span id="create_dobs_string-710"><a href="#create_dobs_string-710"><span class="linenos">710</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;spec&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">spec</span>
</span><span id="create_dobs_string-711"><a href="#create_dobs_string-711"><span class="linenos">711</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;origin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">origin</span>
</span><span id="create_dobs_string-712"><a href="#create_dobs_string-712"><span class="linenos">712</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="create_dobs_string-713"><a href="#create_dobs_string-713"><span class="linenos">713</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-714"><a href="#create_dobs_string-714"><span class="linenos">714</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;val&#39;</span>
</span><span id="create_dobs_string-715"><a href="#create_dobs_string-715"><span class="linenos">715</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="create_dobs_string-716"><a href="#create_dobs_string-716"><span class="linenos">716</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-717"><a href="#create_dobs_string-717"><span class="linenos">717</span></a> <span class="k">if</span> <span class="n">symbol</span><span class="p">:</span>
</span><span id="create_dobs_string-718"><a href="#create_dobs_string-718"><span class="linenos">718</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">symbol</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="create_dobs_string-719"><a href="#create_dobs_string-719"><span class="linenos">719</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list!&#39;</span><span class="p">)</span>
</span><span id="create_dobs_string-720"><a href="#create_dobs_string-720"><span class="linenos">720</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">symbol</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="create_dobs_string-721"><a href="#create_dobs_string-721"><span class="linenos">721</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Symbol has to be a list of lenght 0 or </span><span class="si">%d</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)))</span>
</span><span id="create_dobs_string-722"><a href="#create_dobs_string-722"><span class="linenos">722</span></a> <span class="n">osymbol</span> <span class="o">=</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="create_dobs_string-723"><a href="#create_dobs_string-723"><span class="linenos">723</span></a> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">symbol</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span>
</span><span id="create_dobs_string-724"><a href="#create_dobs_string-724"><span class="linenos">724</span></a> <span class="n">osymbol</span> <span class="o">+=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">s</span>
</span><span id="create_dobs_string-725"><a href="#create_dobs_string-725"><span class="linenos">725</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;symbol&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">osymbol</span>
</span><span id="create_dobs_string-726"><a href="#create_dobs_string-726"><span class="linenos">726</span></a>
</span><span id="create_dobs_string-727"><a href="#create_dobs_string-727"><span class="linenos">727</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">][</span><span class="s1">&#39;#values&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">o</span><span class="o">.</span><span class="n">value</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])]</span>
</span><span id="create_dobs_string-728"><a href="#create_dobs_string-728"><span class="linenos">728</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;ne&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ne</span><span class="p">)</span>
</span><span id="create_dobs_string-729"><a href="#create_dobs_string-729"><span class="linenos">729</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;nc&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">nc</span><span class="p">)</span>
</span><span id="create_dobs_string-730"><a href="#create_dobs_string-730"><span class="linenos">730</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-731"><a href="#create_dobs_string-731"><span class="linenos">731</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">mc_names</span><span class="p">:</span>
</span><span id="create_dobs_string-732"><a href="#create_dobs_string-732"><span class="linenos">732</span></a> <span class="n">ed</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-733"><a href="#create_dobs_string-733"><span class="linenos">733</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;enstag&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">enstags</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
</span><span id="create_dobs_string-734"><a href="#create_dobs_string-734"><span class="linenos">734</span></a> <span class="n">onames</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="n">n</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">r_names</span> <span class="k">if</span> <span class="p">(</span><span class="n">n</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">name</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span><span class="p">)</span> <span class="ow">or</span> <span class="n">n</span> <span class="o">==</span> <span class="n">name</span><span class="p">)])</span>
</span><span id="create_dobs_string-735"><a href="#create_dobs_string-735"><span class="linenos">735</span></a> <span class="n">nr</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">onames</span><span class="p">)</span>
</span><span id="create_dobs_string-736"><a href="#create_dobs_string-736"><span class="linenos">736</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;nr&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">nr</span>
</span><span id="create_dobs_string-737"><a href="#create_dobs_string-737"><span class="linenos">737</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-738"><a href="#create_dobs_string-738"><span class="linenos">738</span></a>
</span><span id="create_dobs_string-739"><a href="#create_dobs_string-739"><span class="linenos">739</span></a> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nr</span><span class="p">):</span>
</span><span id="create_dobs_string-740"><a href="#create_dobs_string-740"><span class="linenos">740</span></a> <span class="n">ad</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-741"><a href="#create_dobs_string-741"><span class="linenos">741</span></a> <span class="n">repname</span> <span class="o">=</span> <span class="n">onames</span><span class="p">[</span><span class="n">r</span><span class="p">]</span>
</span><span id="create_dobs_string-742"><a href="#create_dobs_string-742"><span class="linenos">742</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">repname</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
</span><span id="create_dobs_string-743"><a href="#create_dobs_string-743"><span class="linenos">743</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">_merge_idx</span><span class="p">([</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">repname</span><span class="p">,</span> <span class="p">[])</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">])</span>
</span><span id="create_dobs_string-744"><a href="#create_dobs_string-744"><span class="linenos">744</span></a> <span class="n">Nconf</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span>
</span><span id="create_dobs_string-745"><a href="#create_dobs_string-745"><span class="linenos">745</span></a> <span class="n">layout</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> i f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">Nconf</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="create_dobs_string-746"><a href="#create_dobs_string-746"><span class="linenos">746</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">layout</span>
</span><span id="create_dobs_string-747"><a href="#create_dobs_string-747"><span class="linenos">747</span></a> <span class="n">data</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-748"><a href="#create_dobs_string-748"><span class="linenos">748</span></a> <span class="n">counters</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">]</span>
</span><span id="create_dobs_string-749"><a href="#create_dobs_string-749"><span class="linenos">749</span></a> <span class="k">for</span> <span class="n">ci</span> <span class="ow">in</span> <span class="n">idx</span><span class="p">:</span>
</span><span id="create_dobs_string-750"><a href="#create_dobs_string-750"><span class="linenos">750</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="n">ci</span>
</span><span id="create_dobs_string-751"><a href="#create_dobs_string-751"><span class="linenos">751</span></a> <span class="k">for</span> <span class="n">oi</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">)):</span>
</span><span id="create_dobs_string-752"><a href="#create_dobs_string-752"><span class="linenos">752</span></a> <span class="n">o</span> <span class="o">=</span> <span class="n">obsl</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span>
</span><span id="create_dobs_string-753"><a href="#create_dobs_string-753"><span class="linenos">753</span></a> <span class="k">if</span> <span class="n">repname</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">:</span>
</span><span id="create_dobs_string-754"><a href="#create_dobs_string-754"><span class="linenos">754</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-755"><a href="#create_dobs_string-755"><span class="linenos">755</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-756"><a href="#create_dobs_string-756"><span class="linenos">756</span></a> <span class="k">continue</span>
</span><span id="create_dobs_string-757"><a href="#create_dobs_string-757"><span class="linenos">757</span></a> <span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span> <span class="o">==</span> <span class="n">ci</span><span class="p">:</span>
</span><span id="create_dobs_string-758"><a href="#create_dobs_string-758"><span class="linenos">758</span></a> <span class="n">num</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">deltas</span><span class="p">[</span><span class="n">repname</span><span class="p">][</span><span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]]</span>
</span><span id="create_dobs_string-759"><a href="#create_dobs_string-759"><span class="linenos">759</span></a> <span class="k">if</span> <span class="n">num</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-760"><a href="#create_dobs_string-760"><span class="linenos">760</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-761"><a href="#create_dobs_string-761"><span class="linenos">761</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-762"><a href="#create_dobs_string-762"><span class="linenos">762</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.16e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">num</span><span class="p">)</span>
</span><span id="create_dobs_string-763"><a href="#create_dobs_string-763"><span class="linenos">763</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="create_dobs_string-764"><a href="#create_dobs_string-764"><span class="linenos">764</span></a> <span class="k">if</span> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="nb">len</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">idl</span><span class="p">[</span><span class="n">repname</span><span class="p">]):</span>
</span><span id="create_dobs_string-765"><a href="#create_dobs_string-765"><span class="linenos">765</span></a> <span class="n">counters</span><span class="p">[</span><span class="n">oi</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
</span><span id="create_dobs_string-766"><a href="#create_dobs_string-766"><span class="linenos">766</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-767"><a href="#create_dobs_string-767"><span class="linenos">767</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-768"><a href="#create_dobs_string-768"><span class="linenos">768</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="create_dobs_string-769"><a href="#create_dobs_string-769"><span class="linenos">769</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
</span><span id="create_dobs_string-770"><a href="#create_dobs_string-770"><span class="linenos">770</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ad</span><span class="p">)</span>
</span><span id="create_dobs_string-771"><a href="#create_dobs_string-771"><span class="linenos">771</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="create_dobs_string-772"><a href="#create_dobs_string-772"><span class="linenos">772</span></a>
</span><span id="create_dobs_string-773"><a href="#create_dobs_string-773"><span class="linenos">773</span></a> <span class="n">allcov</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-774"><a href="#create_dobs_string-774"><span class="linenos">774</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-775"><a href="#create_dobs_string-775"><span class="linenos">775</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">:</span>
</span><span id="create_dobs_string-776"><a href="#create_dobs_string-776"><span class="linenos">776</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">allcov</span><span class="p">:</span>
</span><span id="create_dobs_string-777"><a href="#create_dobs_string-777"><span class="linenos">777</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">np</span><span class="o">.</span><span class="n">array_equal</span><span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span><span class="p">):</span>
</span><span id="create_dobs_string-778"><a href="#create_dobs_string-778"><span class="linenos">778</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Inconsistent covariance matrices for </span><span class="si">%s</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">))</span>
</span><span id="create_dobs_string-779"><a href="#create_dobs_string-779"><span class="linenos">779</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-780"><a href="#create_dobs_string-780"><span class="linenos">780</span></a> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span>
</span><span id="create_dobs_string-781"><a href="#create_dobs_string-781"><span class="linenos">781</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-782"><a href="#create_dobs_string-782"><span class="linenos">782</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">cov_names</span><span class="p">:</span>
</span><span id="create_dobs_string-783"><a href="#create_dobs_string-783"><span class="linenos">783</span></a> <span class="n">cd</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-784"><a href="#create_dobs_string-784"><span class="linenos">784</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="create_dobs_string-785"><a href="#create_dobs_string-785"><span class="linenos">785</span></a>
</span><span id="create_dobs_string-786"><a href="#create_dobs_string-786"><span class="linenos">786</span></a> <span class="n">covd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;cov&#39;</span><span class="p">}</span>
</span><span id="create_dobs_string-787"><a href="#create_dobs_string-787"><span class="linenos">787</span></a> <span class="k">if</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="p">():</span>
</span><span id="create_dobs_string-788"><a href="#create_dobs_string-788"><span class="linenos">788</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="create_dobs_string-789"><a href="#create_dobs_string-789"><span class="linenos">789</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 1 f&#39;</span>
</span><span id="create_dobs_string-790"><a href="#create_dobs_string-790"><span class="linenos">790</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="create_dobs_string-791"><a href="#create_dobs_string-791"><span class="linenos">791</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-792"><a href="#create_dobs_string-792"><span class="linenos">792</span></a> <span class="n">shape</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span>
</span><span id="create_dobs_string-793"><a href="#create_dobs_string-793"><span class="linenos">793</span></a> <span class="k">assert</span> <span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="create_dobs_string-794"><a href="#create_dobs_string-794"><span class="linenos">794</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="create_dobs_string-795"><a href="#create_dobs_string-795"><span class="linenos">795</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> </span><span class="si">%d</span><span class="s1"> f&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="n">ncov</span><span class="p">)</span>
</span><span id="create_dobs_string-796"><a href="#create_dobs_string-796"><span class="linenos">796</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-797"><a href="#create_dobs_string-797"><span class="linenos">797</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="create_dobs_string-798"><a href="#create_dobs_string-798"><span class="linenos">798</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="create_dobs_string-799"><a href="#create_dobs_string-799"><span class="linenos">799</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
</span><span id="create_dobs_string-800"><a href="#create_dobs_string-800"><span class="linenos">800</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-801"><a href="#create_dobs_string-801"><span class="linenos">801</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-802"><a href="#create_dobs_string-802"><span class="linenos">802</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-803"><a href="#create_dobs_string-803"><span class="linenos">803</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="create_dobs_string-804"><a href="#create_dobs_string-804"><span class="linenos">804</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="create_dobs_string-805"><a href="#create_dobs_string-805"><span class="linenos">805</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="create_dobs_string-806"><a href="#create_dobs_string-806"><span class="linenos">806</span></a>
</span><span id="create_dobs_string-807"><a href="#create_dobs_string-807"><span class="linenos">807</span></a> <span class="n">gradd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;grad&#39;</span><span class="p">}</span>
</span><span id="create_dobs_string-808"><a href="#create_dobs_string-808"><span class="linenos">808</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="create_dobs_string-809"><a href="#create_dobs_string-809"><span class="linenos">809</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-810"><a href="#create_dobs_string-810"><span class="linenos">810</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="create_dobs_string-811"><a href="#create_dobs_string-811"><span class="linenos">811</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-812"><a href="#create_dobs_string-812"><span class="linenos">812</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">:</span>
</span><span id="create_dobs_string-813"><a href="#create_dobs_string-813"><span class="linenos">813</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">grad</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
</span><span id="create_dobs_string-814"><a href="#create_dobs_string-814"><span class="linenos">814</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-815"><a href="#create_dobs_string-815"><span class="linenos">815</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="create_dobs_string-816"><a href="#create_dobs_string-816"><span class="linenos">816</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-817"><a href="#create_dobs_string-817"><span class="linenos">817</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-768"><a href="#create_dobs_string-768"><span class="linenos">768</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-769"><a href="#create_dobs_string-769"><span class="linenos">769</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-770"><a href="#create_dobs_string-770"><span class="linenos">770</span></a> <span class="n">data</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="create_dobs_string-771"><a href="#create_dobs_string-771"><span class="linenos">771</span></a> <span class="n">ad</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span>
</span><span id="create_dobs_string-772"><a href="#create_dobs_string-772"><span class="linenos">772</span></a> <span class="n">ed</span><span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ad</span><span class="p">)</span>
</span><span id="create_dobs_string-773"><a href="#create_dobs_string-773"><span class="linenos">773</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;edata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ed</span><span class="p">)</span>
</span><span id="create_dobs_string-774"><a href="#create_dobs_string-774"><span class="linenos">774</span></a>
</span><span id="create_dobs_string-775"><a href="#create_dobs_string-775"><span class="linenos">775</span></a> <span class="n">allcov</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-776"><a href="#create_dobs_string-776"><span class="linenos">776</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-777"><a href="#create_dobs_string-777"><span class="linenos">777</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">cov_names</span><span class="p">:</span>
</span><span id="create_dobs_string-778"><a href="#create_dobs_string-778"><span class="linenos">778</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">allcov</span><span class="p">:</span>
</span><span id="create_dobs_string-779"><a href="#create_dobs_string-779"><span class="linenos">779</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">np</span><span class="o">.</span><span class="n">array_equal</span><span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">],</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span><span class="p">):</span>
</span><span id="create_dobs_string-780"><a href="#create_dobs_string-780"><span class="linenos">780</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Inconsistent covariance matrices for </span><span class="si">%s</span><span class="s1">!&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">))</span>
</span><span id="create_dobs_string-781"><a href="#create_dobs_string-781"><span class="linenos">781</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-782"><a href="#create_dobs_string-782"><span class="linenos">782</span></a> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">cov</span>
</span><span id="create_dobs_string-783"><a href="#create_dobs_string-783"><span class="linenos">783</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="create_dobs_string-784"><a href="#create_dobs_string-784"><span class="linenos">784</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">cov_names</span><span class="p">:</span>
</span><span id="create_dobs_string-785"><a href="#create_dobs_string-785"><span class="linenos">785</span></a> <span class="n">cd</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="create_dobs_string-786"><a href="#create_dobs_string-786"><span class="linenos">786</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;id&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
</span><span id="create_dobs_string-787"><a href="#create_dobs_string-787"><span class="linenos">787</span></a>
</span><span id="create_dobs_string-788"><a href="#create_dobs_string-788"><span class="linenos">788</span></a> <span class="n">covd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;cov&#39;</span><span class="p">}</span>
</span><span id="create_dobs_string-789"><a href="#create_dobs_string-789"><span class="linenos">789</span></a> <span class="k">if</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="p">():</span>
</span><span id="create_dobs_string-790"><a href="#create_dobs_string-790"><span class="linenos">790</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="mi">1</span>
</span><span id="create_dobs_string-791"><a href="#create_dobs_string-791"><span class="linenos">791</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;1 1 f&#39;</span>
</span><span id="create_dobs_string-792"><a href="#create_dobs_string-792"><span class="linenos">792</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">])</span>
</span><span id="create_dobs_string-793"><a href="#create_dobs_string-793"><span class="linenos">793</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-794"><a href="#create_dobs_string-794"><span class="linenos">794</span></a> <span class="n">shape</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">shape</span>
</span><span id="create_dobs_string-795"><a href="#create_dobs_string-795"><span class="linenos">795</span></a> <span class="k">assert</span> <span class="p">(</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span><span id="create_dobs_string-796"><a href="#create_dobs_string-796"><span class="linenos">796</span></a> <span class="n">ncov</span> <span class="o">=</span> <span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="create_dobs_string-797"><a href="#create_dobs_string-797"><span class="linenos">797</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> </span><span class="si">%d</span><span class="s1"> f&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="n">ncov</span><span class="p">)</span>
</span><span id="create_dobs_string-798"><a href="#create_dobs_string-798"><span class="linenos">798</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-799"><a href="#create_dobs_string-799"><span class="linenos">799</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="create_dobs_string-800"><a href="#create_dobs_string-800"><span class="linenos">800</span></a> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="create_dobs_string-801"><a href="#create_dobs_string-801"><span class="linenos">801</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">allcov</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
</span><span id="create_dobs_string-802"><a href="#create_dobs_string-802"><span class="linenos">802</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-803"><a href="#create_dobs_string-803"><span class="linenos">803</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-804"><a href="#create_dobs_string-804"><span class="linenos">804</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-805"><a href="#create_dobs_string-805"><span class="linenos">805</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="create_dobs_string-806"><a href="#create_dobs_string-806"><span class="linenos">806</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
</span><span id="create_dobs_string-807"><a href="#create_dobs_string-807"><span class="linenos">807</span></a> <span class="n">covd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="create_dobs_string-808"><a href="#create_dobs_string-808"><span class="linenos">808</span></a>
</span><span id="create_dobs_string-809"><a href="#create_dobs_string-809"><span class="linenos">809</span></a> <span class="n">gradd</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="s1">&#39;grad&#39;</span><span class="p">}</span>
</span><span id="create_dobs_string-810"><a href="#create_dobs_string-810"><span class="linenos">810</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;layout&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> f</span><span class="si">%d</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">ncov</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">obsl</span><span class="p">))</span>
</span><span id="create_dobs_string-811"><a href="#create_dobs_string-811"><span class="linenos">811</span></a> <span class="n">ds</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
</span><span id="create_dobs_string-812"><a href="#create_dobs_string-812"><span class="linenos">812</span></a> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ncov</span><span class="p">):</span>
</span><span id="create_dobs_string-813"><a href="#create_dobs_string-813"><span class="linenos">813</span></a> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">obsl</span><span class="p">:</span>
</span><span id="create_dobs_string-814"><a href="#create_dobs_string-814"><span class="linenos">814</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">:</span>
</span><span id="create_dobs_string-815"><a href="#create_dobs_string-815"><span class="linenos">815</span></a> <span class="n">val</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">covobs</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">grad</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
</span><span id="create_dobs_string-816"><a href="#create_dobs_string-816"><span class="linenos">816</span></a> <span class="k">if</span> <span class="n">val</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="create_dobs_string-817"><a href="#create_dobs_string-817"><span class="linenos">817</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="si">%1.14e</span><span class="s1"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">val</span><span class="p">)</span>
</span><span id="create_dobs_string-818"><a href="#create_dobs_string-818"><span class="linenos">818</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-819"><a href="#create_dobs_string-819"><span class="linenos">819</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-820"><a href="#create_dobs_string-820"><span class="linenos">820</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="create_dobs_string-821"><a href="#create_dobs_string-821"><span class="linenos">821</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">covd</span><span class="p">,</span> <span class="n">gradd</span><span class="p">]</span>
</span><span id="create_dobs_string-822"><a href="#create_dobs_string-822"><span class="linenos">822</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cd</span><span class="p">)</span>
</span><span id="create_dobs_string-823"><a href="#create_dobs_string-823"><span class="linenos">823</span></a>
</span><span id="create_dobs_string-824"><a href="#create_dobs_string-824"><span class="linenos">824</span></a> <span class="n">rs</span> <span class="o">=</span> <span class="s1">&#39;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="n">_dobsdict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">od</span><span class="p">)</span>
</span><span id="create_dobs_string-820"><a href="#create_dobs_string-820"><span class="linenos">820</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="create_dobs_string-821"><a href="#create_dobs_string-821"><span class="linenos">821</span></a> <span class="n">ds</span> <span class="o">+=</span> <span class="s1">&#39;0 &#39;</span>
</span><span id="create_dobs_string-822"><a href="#create_dobs_string-822"><span class="linenos">822</span></a> <span class="n">gradd</span><span class="p">[</span><span class="s1">&#39;#data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ds</span>
</span><span id="create_dobs_string-823"><a href="#create_dobs_string-823"><span class="linenos">823</span></a> <span class="n">cd</span><span class="p">[</span><span class="s1">&#39;array&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">covd</span><span class="p">,</span> <span class="n">gradd</span><span class="p">]</span>
</span><span id="create_dobs_string-824"><a href="#create_dobs_string-824"><span class="linenos">824</span></a> <span class="n">pd</span><span class="p">[</span><span class="s1">&#39;cdata&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cd</span><span class="p">)</span>
</span><span id="create_dobs_string-825"><a href="#create_dobs_string-825"><span class="linenos">825</span></a>
</span><span id="create_dobs_string-826"><a href="#create_dobs_string-826"><span class="linenos">826</span></a> <span class="k">return</span> <span class="n">rs</span>
</span><span id="create_dobs_string-826"><a href="#create_dobs_string-826"><span class="linenos">826</span></a> <span class="n">rs</span> <span class="o">=</span> <span class="s1">&#39;&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="n">_dobsdict_to_xmlstring_spaces</span><span class="p">(</span><span class="n">od</span><span class="p">)</span>
</span><span id="create_dobs_string-827"><a href="#create_dobs_string-827"><span class="linenos">827</span></a>
</span><span id="create_dobs_string-828"><a href="#create_dobs_string-828"><span class="linenos">828</span></a> <span class="k">return</span> <span class="n">rs</span>
</span></pre></div>
@ -1815,52 +1819,52 @@ Otherwise, the ensemble name is used.</li>
</div>
<a class="headerlink" href="#write_dobs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_dobs-829"><a href="#write_dobs-829"><span class="linenos">829</span></a><span class="k">def</span> <span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="p">{},</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="write_dobs-830"><a href="#write_dobs-830"><span class="linenos">830</span></a> <span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="write_dobs-831"><a href="#write_dobs-831"><span class="linenos">831</span></a><span class="sd"> according to the Zeuthen dobs format.</span>
</span><span id="write_dobs-832"><a href="#write_dobs-832"><span class="linenos">832</span></a>
</span><span id="write_dobs-833"><a href="#write_dobs-833"><span class="linenos">833</span></a><span class="sd"> Tags are not written or recovered automatically. The separator | is removed from the replica names.</span>
<div class="pdoc-code codehilite"><pre><span></span><span id="write_dobs-831"><a href="#write_dobs-831"><span class="linenos">831</span></a><span class="k">def</span> <span class="nf">write_dobs</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="o">=</span><span class="s1">&#39;dobs v1.0&#39;</span><span class="p">,</span> <span class="n">origin</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="p">[],</span> <span class="n">who</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="p">{},</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="write_dobs-832"><a href="#write_dobs-832"><span class="linenos">832</span></a> <span class="sd">&quot;&quot;&quot;Export a list of Obs or structures containing Obs to a .xml.gz file</span>
</span><span id="write_dobs-833"><a href="#write_dobs-833"><span class="linenos">833</span></a><span class="sd"> according to the Zeuthen dobs format.</span>
</span><span id="write_dobs-834"><a href="#write_dobs-834"><span class="linenos">834</span></a>
</span><span id="write_dobs-835"><a href="#write_dobs-835"><span class="linenos">835</span></a><span class="sd"> Parameters</span>
</span><span id="write_dobs-836"><a href="#write_dobs-836"><span class="linenos">836</span></a><span class="sd"> ----------</span>
</span><span id="write_dobs-837"><a href="#write_dobs-837"><span class="linenos">837</span></a><span class="sd"> obsl : list</span>
</span><span id="write_dobs-838"><a href="#write_dobs-838"><span class="linenos">838</span></a><span class="sd"> List of Obs that will be exported.</span>
</span><span id="write_dobs-839"><a href="#write_dobs-839"><span class="linenos">839</span></a><span class="sd"> The Obs inside a structure do not have to be defined on the same set of configurations,</span>
</span><span id="write_dobs-840"><a href="#write_dobs-840"><span class="linenos">840</span></a><span class="sd"> but the storage requirement is increased, if this is not the case.</span>
</span><span id="write_dobs-841"><a href="#write_dobs-841"><span class="linenos">841</span></a><span class="sd"> fname : str</span>
</span><span id="write_dobs-842"><a href="#write_dobs-842"><span class="linenos">842</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="write_dobs-843"><a href="#write_dobs-843"><span class="linenos">843</span></a><span class="sd"> name : str</span>
</span><span id="write_dobs-844"><a href="#write_dobs-844"><span class="linenos">844</span></a><span class="sd"> The name of the observable.</span>
</span><span id="write_dobs-845"><a href="#write_dobs-845"><span class="linenos">845</span></a><span class="sd"> spec : str</span>
</span><span id="write_dobs-846"><a href="#write_dobs-846"><span class="linenos">846</span></a><span class="sd"> Optional string that describes the contents of the file.</span>
</span><span id="write_dobs-847"><a href="#write_dobs-847"><span class="linenos">847</span></a><span class="sd"> origin : str</span>
</span><span id="write_dobs-848"><a href="#write_dobs-848"><span class="linenos">848</span></a><span class="sd"> Specify where the data has its origin.</span>
</span><span id="write_dobs-849"><a href="#write_dobs-849"><span class="linenos">849</span></a><span class="sd"> symbol : list</span>
</span><span id="write_dobs-850"><a href="#write_dobs-850"><span class="linenos">850</span></a><span class="sd"> A list of symbols that describe the observables to be written. May be empty.</span>
</span><span id="write_dobs-851"><a href="#write_dobs-851"><span class="linenos">851</span></a><span class="sd"> who : str</span>
</span><span id="write_dobs-852"><a href="#write_dobs-852"><span class="linenos">852</span></a><span class="sd"> Provide the name of the person that exports the data.</span>
</span><span id="write_dobs-853"><a href="#write_dobs-853"><span class="linenos">853</span></a><span class="sd"> enstags : dict</span>
</span><span id="write_dobs-854"><a href="#write_dobs-854"><span class="linenos">854</span></a><span class="sd"> Provide alternative enstag for ensembles in the form enstags = {ename: enstag}</span>
</span><span id="write_dobs-855"><a href="#write_dobs-855"><span class="linenos">855</span></a><span class="sd"> Otherwise, the ensemble name is used.</span>
</span><span id="write_dobs-856"><a href="#write_dobs-856"><span class="linenos">856</span></a><span class="sd"> gz : bool</span>
</span><span id="write_dobs-857"><a href="#write_dobs-857"><span class="linenos">857</span></a><span class="sd"> If True, the output is a gzipped XML. If False, the output is a XML file.</span>
</span><span id="write_dobs-858"><a href="#write_dobs-858"><span class="linenos">858</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="write_dobs-859"><a href="#write_dobs-859"><span class="linenos">859</span></a>
</span><span id="write_dobs-860"><a href="#write_dobs-860"><span class="linenos">860</span></a> <span class="n">dobsstring</span> <span class="o">=</span> <span class="n">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="p">,</span> <span class="n">origin</span><span class="p">,</span> <span class="n">symbol</span><span class="p">,</span> <span class="n">who</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="n">enstags</span><span class="p">)</span>
</span><span id="write_dobs-835"><a href="#write_dobs-835"><span class="linenos">835</span></a><span class="sd"> Tags are not written or recovered automatically. The separator | is removed from the replica names.</span>
</span><span id="write_dobs-836"><a href="#write_dobs-836"><span class="linenos">836</span></a>
</span><span id="write_dobs-837"><a href="#write_dobs-837"><span class="linenos">837</span></a><span class="sd"> Parameters</span>
</span><span id="write_dobs-838"><a href="#write_dobs-838"><span class="linenos">838</span></a><span class="sd"> ----------</span>
</span><span id="write_dobs-839"><a href="#write_dobs-839"><span class="linenos">839</span></a><span class="sd"> obsl : list</span>
</span><span id="write_dobs-840"><a href="#write_dobs-840"><span class="linenos">840</span></a><span class="sd"> List of Obs that will be exported.</span>
</span><span id="write_dobs-841"><a href="#write_dobs-841"><span class="linenos">841</span></a><span class="sd"> The Obs inside a structure do not have to be defined on the same set of configurations,</span>
</span><span id="write_dobs-842"><a href="#write_dobs-842"><span class="linenos">842</span></a><span class="sd"> but the storage requirement is increased, if this is not the case.</span>
</span><span id="write_dobs-843"><a href="#write_dobs-843"><span class="linenos">843</span></a><span class="sd"> fname : str</span>
</span><span id="write_dobs-844"><a href="#write_dobs-844"><span class="linenos">844</span></a><span class="sd"> Filename of the output file.</span>
</span><span id="write_dobs-845"><a href="#write_dobs-845"><span class="linenos">845</span></a><span class="sd"> name : str</span>
</span><span id="write_dobs-846"><a href="#write_dobs-846"><span class="linenos">846</span></a><span class="sd"> The name of the observable.</span>
</span><span id="write_dobs-847"><a href="#write_dobs-847"><span class="linenos">847</span></a><span class="sd"> spec : str</span>
</span><span id="write_dobs-848"><a href="#write_dobs-848"><span class="linenos">848</span></a><span class="sd"> Optional string that describes the contents of the file.</span>
</span><span id="write_dobs-849"><a href="#write_dobs-849"><span class="linenos">849</span></a><span class="sd"> origin : str</span>
</span><span id="write_dobs-850"><a href="#write_dobs-850"><span class="linenos">850</span></a><span class="sd"> Specify where the data has its origin.</span>
</span><span id="write_dobs-851"><a href="#write_dobs-851"><span class="linenos">851</span></a><span class="sd"> symbol : list</span>
</span><span id="write_dobs-852"><a href="#write_dobs-852"><span class="linenos">852</span></a><span class="sd"> A list of symbols that describe the observables to be written. May be empty.</span>
</span><span id="write_dobs-853"><a href="#write_dobs-853"><span class="linenos">853</span></a><span class="sd"> who : str</span>
</span><span id="write_dobs-854"><a href="#write_dobs-854"><span class="linenos">854</span></a><span class="sd"> Provide the name of the person that exports the data.</span>
</span><span id="write_dobs-855"><a href="#write_dobs-855"><span class="linenos">855</span></a><span class="sd"> enstags : dict</span>
</span><span id="write_dobs-856"><a href="#write_dobs-856"><span class="linenos">856</span></a><span class="sd"> Provide alternative enstag for ensembles in the form enstags = {ename: enstag}</span>
</span><span id="write_dobs-857"><a href="#write_dobs-857"><span class="linenos">857</span></a><span class="sd"> Otherwise, the ensemble name is used.</span>
</span><span id="write_dobs-858"><a href="#write_dobs-858"><span class="linenos">858</span></a><span class="sd"> gz : bool</span>
</span><span id="write_dobs-859"><a href="#write_dobs-859"><span class="linenos">859</span></a><span class="sd"> If True, the output is a gzipped XML. If False, the output is a XML file.</span>
</span><span id="write_dobs-860"><a href="#write_dobs-860"><span class="linenos">860</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="write_dobs-861"><a href="#write_dobs-861"><span class="linenos">861</span></a>
</span><span id="write_dobs-862"><a href="#write_dobs-862"><span class="linenos">862</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.xml&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="write_dobs-863"><a href="#write_dobs-863"><span class="linenos">863</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.xml&#39;</span>
</span><span id="write_dobs-864"><a href="#write_dobs-864"><span class="linenos">864</span></a>
</span><span id="write_dobs-865"><a href="#write_dobs-865"><span class="linenos">865</span></a> <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
</span><span id="write_dobs-866"><a href="#write_dobs-866"><span class="linenos">866</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="write_dobs-867"><a href="#write_dobs-867"><span class="linenos">867</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="write_dobs-868"><a href="#write_dobs-868"><span class="linenos">868</span></a>
</span><span id="write_dobs-869"><a href="#write_dobs-869"><span class="linenos">869</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span>
</span><span id="write_dobs-870"><a href="#write_dobs-870"><span class="linenos">870</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
</span><span id="write_dobs-871"><a href="#write_dobs-871"><span class="linenos">871</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="write_dobs-872"><a href="#write_dobs-872"><span class="linenos">872</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span>
</span><span id="write_dobs-873"><a href="#write_dobs-873"><span class="linenos">873</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="p">)</span>
</span><span id="write_dobs-874"><a href="#write_dobs-874"><span class="linenos">874</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="write_dobs-862"><a href="#write_dobs-862"><span class="linenos">862</span></a> <span class="n">dobsstring</span> <span class="o">=</span> <span class="n">create_dobs_string</span><span class="p">(</span><span class="n">obsl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">spec</span><span class="p">,</span> <span class="n">origin</span><span class="p">,</span> <span class="n">symbol</span><span class="p">,</span> <span class="n">who</span><span class="p">,</span> <span class="n">enstags</span><span class="o">=</span><span class="n">enstags</span><span class="p">)</span>
</span><span id="write_dobs-863"><a href="#write_dobs-863"><span class="linenos">863</span></a>
</span><span id="write_dobs-864"><a href="#write_dobs-864"><span class="linenos">864</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.xml&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="write_dobs-865"><a href="#write_dobs-865"><span class="linenos">865</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.xml&#39;</span>
</span><span id="write_dobs-866"><a href="#write_dobs-866"><span class="linenos">866</span></a>
</span><span id="write_dobs-867"><a href="#write_dobs-867"><span class="linenos">867</span></a> <span class="k">if</span> <span class="n">gz</span><span class="p">:</span>
</span><span id="write_dobs-868"><a href="#write_dobs-868"><span class="linenos">868</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
</span><span id="write_dobs-869"><a href="#write_dobs-869"><span class="linenos">869</span></a> <span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
</span><span id="write_dobs-870"><a href="#write_dobs-870"><span class="linenos">870</span></a>
</span><span id="write_dobs-871"><a href="#write_dobs-871"><span class="linenos">871</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;wb&#39;</span><span class="p">)</span>
</span><span id="write_dobs-872"><a href="#write_dobs-872"><span class="linenos">872</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
</span><span id="write_dobs-873"><a href="#write_dobs-873"><span class="linenos">873</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="write_dobs-874"><a href="#write_dobs-874"><span class="linenos">874</span></a> <span class="n">fp</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span>
</span><span id="write_dobs-875"><a href="#write_dobs-875"><span class="linenos">875</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">dobsstring</span><span class="p">)</span>
</span><span id="write_dobs-876"><a href="#write_dobs-876"><span class="linenos">876</span></a> <span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span></pre></div>

File diff suppressed because one or more lines are too long