Documentation updated

This commit is contained in:
fjosw 2023-06-02 14:47:24 +00:00
parent b67b5495e2
commit 00cf624cba

View file

@ -364,164 +364,162 @@
</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a><span class="k">def</span> <span class="nf">_find_correlator</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="n">version</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">silent</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">T</span> <span class="o">=</span> <span class="mi">0</span>
</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a>
</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="n">file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span>
</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">my_file</span><span class="p">:</span>
</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a>
</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">content</span> <span class="o">=</span> <span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">match</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span>
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="k">if</span> <span class="n">match</span><span class="p">:</span>
</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="k">if</span> <span class="n">version</span> <span class="o">==</span> <span class="s2">&quot;0.0&quot;</span><span class="p">:</span>
</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">start_read</span> <span class="o">=</span> <span class="n">content</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">())</span> <span class="o">+</span> <span class="mi">1</span>
</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">content</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">start_read</span><span class="p">)</span>
</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">start_read</span> <span class="o">=</span> <span class="n">content</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">())</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">b2b</span>
</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">end_match</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\n\s*\n&#39;</span><span class="p">,</span> <span class="n">content</span><span class="p">[</span><span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">():])</span>
</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">content</span><span class="p">[</span><span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">():]</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">end_match</span><span class="o">.</span><span class="n">start</span><span class="p">())</span> <span class="o">-</span> <span class="mi">4</span> <span class="o">-</span> <span class="n">b2b</span>
</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">T</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Correlator with pattern</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">is empty!&quot;</span><span class="p">)</span>
</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">silent</span><span class="p">:</span>
</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">T</span><span class="p">,</span> <span class="s1">&#39;entries, starting to read in line&#39;</span><span class="p">,</span> <span class="n">start_read</span><span class="p">)</span>
</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">content</span> <span class="o">=</span> <span class="n">my_file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">match</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span>
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="k">if</span> <span class="n">match</span><span class="p">:</span>
</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="k">if</span> <span class="n">version</span> <span class="o">==</span> <span class="s2">&quot;0.0&quot;</span><span class="p">:</span>
</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">start_read</span> <span class="o">=</span> <span class="n">content</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">())</span> <span class="o">+</span> <span class="mi">1</span>
</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">content</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">start_read</span><span class="p">)</span>
</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">start_read</span> <span class="o">=</span> <span class="n">content</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">())</span> <span class="o">+</span> <span class="mi">5</span> <span class="o">+</span> <span class="n">b2b</span>
</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">end_match</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\n\s*\n&#39;</span><span class="p">,</span> <span class="n">content</span><span class="p">[</span><span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">():])</span>
</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">content</span><span class="p">[</span><span class="n">match</span><span class="o">.</span><span class="n">start</span><span class="p">():]</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">end_match</span><span class="o">.</span><span class="n">start</span><span class="p">())</span> <span class="o">-</span> <span class="mi">4</span> <span class="o">-</span> <span class="n">b2b</span>
</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">T</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Correlator with pattern</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">is empty!&quot;</span><span class="p">)</span>
</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">silent</span><span class="p">:</span>
</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="nb">print</span><span class="p">(</span><span class="n">T</span><span class="p">,</span> <span class="s1">&#39;entries, starting to read in line&#39;</span><span class="p">,</span> <span class="n">start_read</span><span class="p">)</span>
</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a>
</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;Correlator with pattern</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">not found.&#39;</span><span class="p">)</span>
</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a>
</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="k">return</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span>
</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a>
</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a>
</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a><span class="k">def</span> <span class="nf">_read_compact_file</span><span class="p">(</span><span class="n">rep_path</span><span class="p">,</span> <span class="n">config_file</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">im</span><span class="p">):</span>
</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">rep_path</span> <span class="o">+</span> <span class="n">config_file</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="c1"># check, if the correlator is in fact</span>
</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="c1"># printed completely</span>
</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">start_read</span> <span class="o">+</span> <span class="n">T</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)):</span>
</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;EOF before end of correlator data! Maybe &quot;</span> <span class="o">+</span> <span class="n">rep_path</span> <span class="o">+</span> <span class="n">config_file</span> <span class="o">+</span> <span class="s2">&quot; is corrupted?&quot;</span><span class="p">)</span>
</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">corr_lines</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="n">start_read</span> <span class="o">-</span> <span class="mi">6</span><span class="p">:</span> <span class="n">start_read</span> <span class="o">+</span> <span class="n">T</span><span class="p">]</span>
</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="k">del</span> <span class="n">lines</span>
</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">t_vals</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a>
</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="k">if</span> <span class="n">corr_lines</span><span class="p">[</span><span class="mi">1</span> <span class="o">-</span> <span class="n">b2b</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;name &#39;</span> <span class="o">+</span> <span class="n">name</span><span class="p">:</span>
</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Wrong format in file&#39;</span><span class="p">,</span> <span class="n">config_file</span><span class="p">)</span>
</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a>
</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">T</span> <span class="o">+</span> <span class="mi">6</span><span class="p">):</span>
</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">floats</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">float</span><span class="p">,</span> <span class="n">corr_lines</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()))</span>
</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">t_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">floats</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">:][</span><span class="n">im</span><span class="p">])</span>
</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="k">return</span> <span class="n">t_vals</span>
</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a>
</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a>
</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a><span class="k">def</span> <span class="nf">_read_compact_rep</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">rep</span><span class="p">,</span> <span class="n">sub_ls</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">im</span><span class="p">):</span>
</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">rep_path</span> <span class="o">=</span> <span class="n">path</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">rep</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span>
</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">no_cfg</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sub_ls</span><span class="p">)</span>
</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">T</span><span class="p">):</span>
</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">no_cfg</span><span class="p">))</span>
</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">for</span> <span class="n">cfg</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">no_cfg</span><span class="p">):</span>
</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="n">cfg_file</span> <span class="o">=</span> <span class="n">sub_ls</span><span class="p">[</span><span class="n">cfg</span><span class="p">]</span>
</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="n">cfg_data</span> <span class="o">=</span> <span class="n">_read_compact_file</span><span class="p">(</span><span class="n">rep_path</span><span class="p">,</span> <span class="n">cfg_file</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">im</span><span class="p">)</span>
</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">T</span><span class="p">):</span>
</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">][</span><span class="n">cfg</span><span class="p">]</span> <span class="o">=</span> <span class="n">cfg_data</span><span class="p">[</span><span class="n">t</span><span class="p">]</span>
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="k">return</span> <span class="n">deltas</span>
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a>
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a><span class="k">def</span> <span class="nf">_read_chunk</span><span class="p">(</span><span class="n">chunk</span><span class="p">,</span> <span class="n">gauge_line</span><span class="p">,</span> <span class="n">cfg_sep</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">corr_line</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">single</span><span class="p">):</span>
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">idl</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">chunk</span><span class="p">[</span><span class="n">gauge_line</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">cfg_sep</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Couldn&#39;t parse idl from directory, problem with chunk around line &quot;</span><span class="p">,</span> <span class="n">gauge_line</span><span class="p">)</span>
</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a>
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="n">found_pat</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="k">for</span> <span class="n">li</span> <span class="ow">in</span> <span class="n">chunk</span><span class="p">[</span><span class="n">corr_line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="n">corr_line</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="n">b2b</span><span class="p">]:</span>
</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="n">found_pat</span> <span class="o">+=</span> <span class="n">li</span>
</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">found_pat</span><span class="p">):</span>
</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">for</span> <span class="n">t</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">chunk</span><span class="p">[</span><span class="n">start_read</span><span class="p">:</span><span class="n">start_read</span> <span class="o">+</span> <span class="n">T</span><span class="p">]):</span>
</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="n">floats</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">float</span><span class="p">,</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()))</span>
</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">floats</span><span class="p">[</span><span class="n">im</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">single</span><span class="p">])</span>
</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="k">return</span> <span class="n">idl</span><span class="p">,</span> <span class="n">data</span>
</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a>
</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a>
</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a><span class="k">def</span> <span class="nf">_read_append_rep</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">cfg_separator</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">single</span><span class="p">):</span>
</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="n">content</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="n">data_starts</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">for</span> <span class="n">linenumber</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">content</span><span class="p">):</span>
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="s2">&quot;[run]&quot;</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">data_starts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">linenumber</span><span class="p">)</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">data_starts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">data_starts</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <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="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">data_starts</span><span class="p">))]))</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Irregularities in file structure found, not all runs have the same output length&quot;</span><span class="p">)</span>
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">chunk</span> <span class="o">=</span> <span class="n">content</span><span class="p">[:</span><span class="n">data_starts</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span>
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="k">for</span> <span class="n">linenumber</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">chunk</span><span class="p">):</span>
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;gauge_name&quot;</span><span class="p">):</span>
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="n">gauge_line</span> <span class="o">=</span> <span class="n">linenumber</span>
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;[correlator]&quot;</span><span class="p">):</span>
</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="n">corr_line</span> <span class="o">=</span> <span class="n">linenumber</span>
</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="n">found_pat</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="k">for</span> <span class="n">li</span> <span class="ow">in</span> <span class="n">chunk</span><span class="p">[</span><span class="n">corr_line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span> <span class="n">corr_line</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="n">b2b</span><span class="p">]:</span>
</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">found_pat</span> <span class="o">+=</span> <span class="n">li</span>
</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">found_pat</span><span class="p">):</span>
</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="n">start_read</span> <span class="o">=</span> <span class="n">corr_line</span> <span class="o">+</span> <span class="mi">7</span> <span class="o">+</span> <span class="n">b2b</span>
</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">break</span>
</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Did not find pattern</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">in</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="n">endline</span> <span class="o">=</span> <span class="n">corr_line</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="n">b2b</span>
</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="n">chunk</span><span class="p">[</span><span class="n">endline</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">:</span>
</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="n">endline</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">endline</span> <span class="o">-</span> <span class="n">start_read</span>
</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a>
</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="c1"># all other chunks should follow the same structure</span>
</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="n">rep_idl</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="n">rep_data</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a>
</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">for</span> <span class="n">cnfg</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">data_starts</span><span class="p">)):</span>
</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">data_starts</span><span class="p">[</span><span class="n">cnfg</span><span class="p">]</span>
</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="n">stop</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="n">data_starts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="n">chunk</span> <span class="o">=</span> <span class="n">content</span><span class="p">[</span><span class="n">start</span><span class="p">:</span><span class="n">stop</span><span class="p">]</span>
</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="n">idl</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">_read_chunk</span><span class="p">(</span><span class="n">chunk</span><span class="p">,</span> <span class="n">gauge_line</span><span class="p">,</span> <span class="n">cfg_separator</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">corr_line</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">single</span><span class="p">)</span>
</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="n">rep_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="n">rep_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;Correlator with pattern</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">not found.&#39;</span><span class="p">)</span>
</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a>
</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="k">return</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span>
</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a>
</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a>
</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a><span class="k">def</span> <span class="nf">_read_compact_file</span><span class="p">(</span><span class="n">rep_path</span><span class="p">,</span> <span class="n">config_file</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">im</span><span class="p">):</span>
</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">rep_path</span> <span class="o">+</span> <span class="n">config_file</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="c1"># check, if the correlator is in fact</span>
</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="c1"># printed completely</span>
</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">start_read</span> <span class="o">+</span> <span class="n">T</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)):</span>
</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;EOF before end of correlator data! Maybe &quot;</span> <span class="o">+</span> <span class="n">rep_path</span> <span class="o">+</span> <span class="n">config_file</span> <span class="o">+</span> <span class="s2">&quot; is corrupted?&quot;</span><span class="p">)</span>
</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">corr_lines</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="n">start_read</span> <span class="o">-</span> <span class="mi">6</span><span class="p">:</span> <span class="n">start_read</span> <span class="o">+</span> <span class="n">T</span><span class="p">]</span>
</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="k">del</span> <span class="n">lines</span>
</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">t_vals</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a>
</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="n">corr_lines</span><span class="p">[</span><span class="mi">1</span> <span class="o">-</span> <span class="n">b2b</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;name &#39;</span> <span class="o">+</span> <span class="n">name</span><span class="p">:</span>
</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">&#39;Wrong format in file&#39;</span><span class="p">,</span> <span class="n">config_file</span><span class="p">)</span>
</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a>
</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">T</span> <span class="o">+</span> <span class="mi">6</span><span class="p">):</span>
</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="n">floats</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">float</span><span class="p">,</span> <span class="n">corr_lines</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">()))</span>
</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="n">t_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">floats</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">:][</span><span class="n">im</span><span class="p">])</span>
</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="k">return</span> <span class="n">t_vals</span>
</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a>
</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a>
</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a><span class="k">def</span> <span class="nf">_read_compact_rep</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">rep</span><span class="p">,</span> <span class="n">sub_ls</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">im</span><span class="p">):</span>
</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="n">rep_path</span> <span class="o">=</span> <span class="n">path</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">rep</span> <span class="o">+</span> <span class="s1">&#39;/&#39;</span>
</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">no_cfg</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sub_ls</span><span class="p">)</span>
</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">deltas</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">T</span><span class="p">):</span>
</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">deltas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">no_cfg</span><span class="p">))</span>
</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="k">for</span> <span class="n">cfg</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">no_cfg</span><span class="p">):</span>
</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="n">cfg_file</span> <span class="o">=</span> <span class="n">sub_ls</span><span class="p">[</span><span class="n">cfg</span><span class="p">]</span>
</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="n">cfg_data</span> <span class="o">=</span> <span class="n">_read_compact_file</span><span class="p">(</span><span class="n">rep_path</span><span class="p">,</span> <span class="n">cfg_file</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">im</span><span class="p">)</span>
</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">T</span><span class="p">):</span>
</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="n">deltas</span><span class="p">[</span><span class="n">t</span><span class="p">][</span><span class="n">cfg</span><span class="p">]</span> <span class="o">=</span> <span class="n">cfg_data</span><span class="p">[</span><span class="n">t</span><span class="p">]</span>
</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="k">return</span> <span class="n">deltas</span>
</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a>
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a>
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a><span class="k">def</span> <span class="nf">_read_chunk</span><span class="p">(</span><span class="n">chunk</span><span class="p">,</span> <span class="n">gauge_line</span><span class="p">,</span> <span class="n">cfg_sep</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">corr_line</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">single</span><span class="p">):</span>
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">idl</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">chunk</span><span class="p">[</span><span class="n">gauge_line</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">cfg_sep</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Couldn&#39;t parse idl from directory, problem with chunk around line &quot;</span><span class="p">,</span> <span class="n">gauge_line</span><span class="p">)</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a>
</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">found_pat</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="k">for</span> <span class="n">li</span> <span class="ow">in</span> <span class="n">chunk</span><span class="p">[</span><span class="n">corr_line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="n">corr_line</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="n">b2b</span><span class="p">]:</span>
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="n">found_pat</span> <span class="o">+=</span> <span class="n">li</span>
</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">found_pat</span><span class="p">):</span>
</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="k">for</span> <span class="n">t</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">chunk</span><span class="p">[</span><span class="n">start_read</span><span class="p">:</span><span class="n">start_read</span> <span class="o">+</span> <span class="n">T</span><span class="p">]):</span>
</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="n">floats</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">float</span><span class="p">,</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()))</span>
</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">floats</span><span class="p">[</span><span class="n">im</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">single</span><span class="p">])</span>
</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="k">return</span> <span class="n">idl</span><span class="p">,</span> <span class="n">data</span>
</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a>
</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a>
</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a><span class="k">def</span> <span class="nf">_read_append_rep</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">cfg_separator</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">single</span><span class="p">):</span>
</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="n">content</span> <span class="o">=</span> <span class="n">fp</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">data_starts</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="k">for</span> <span class="n">linenumber</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">content</span><span class="p">):</span>
</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="s2">&quot;[run]&quot;</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="n">data_starts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">linenumber</span><span class="p">)</span>
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">data_starts</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">-</span> <span class="n">data_starts</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <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="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">data_starts</span><span class="p">))]))</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Irregularities in file structure found, not all runs have the same output length&quot;</span><span class="p">)</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="n">chunk</span> <span class="o">=</span> <span class="n">content</span><span class="p">[:</span><span class="n">data_starts</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span>
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">for</span> <span class="n">linenumber</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">chunk</span><span class="p">):</span>
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;gauge_name&quot;</span><span class="p">):</span>
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="n">gauge_line</span> <span class="o">=</span> <span class="n">linenumber</span>
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;[correlator]&quot;</span><span class="p">):</span>
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="n">corr_line</span> <span class="o">=</span> <span class="n">linenumber</span>
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="n">found_pat</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="k">for</span> <span class="n">li</span> <span class="ow">in</span> <span class="n">chunk</span><span class="p">[</span><span class="n">corr_line</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span> <span class="n">corr_line</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="n">b2b</span><span class="p">]:</span>
</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="n">found_pat</span> <span class="o">+=</span> <span class="n">li</span>
</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">pattern</span><span class="p">,</span> <span class="n">found_pat</span><span class="p">):</span>
</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">start_read</span> <span class="o">=</span> <span class="n">corr_line</span> <span class="o">+</span> <span class="mi">7</span> <span class="o">+</span> <span class="n">b2b</span>
</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="k">break</span>
</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Did not find pattern</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">in</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="n">endline</span> <span class="o">=</span> <span class="n">corr_line</span> <span class="o">+</span> <span class="mi">6</span> <span class="o">+</span> <span class="n">b2b</span>
</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="n">chunk</span><span class="p">[</span><span class="n">endline</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">:</span>
</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="n">endline</span> <span class="o">+=</span> <span class="mi">1</span>
</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">endline</span> <span class="o">-</span> <span class="n">start_read</span>
</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a>
</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="c1"># all other chunks should follow the same structure</span>
</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">rep_idl</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="n">rep_data</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a>
</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="k">for</span> <span class="n">cnfg</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">data_starts</span><span class="p">)):</span>
</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">data_starts</span><span class="p">[</span><span class="n">cnfg</span><span class="p">]</span>
</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="n">stop</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="n">data_starts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> <span class="n">chunk</span> <span class="o">=</span> <span class="n">content</span><span class="p">[</span><span class="n">start</span><span class="p">:</span><span class="n">stop</span><span class="p">]</span>
</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="n">idl</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">_read_chunk</span><span class="p">(</span><span class="n">chunk</span><span class="p">,</span> <span class="n">gauge_line</span><span class="p">,</span> <span class="n">cfg_separator</span><span class="p">,</span> <span class="n">start_read</span><span class="p">,</span> <span class="n">T</span><span class="p">,</span> <span class="n">corr_line</span><span class="p">,</span> <span class="n">b2b</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">im</span><span class="p">,</span> <span class="n">single</span><span class="p">)</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="n">rep_idl</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">idl</span><span class="p">)</span>
</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="n">rep_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a>
</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a>
</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a>
</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">T</span><span class="p">):</span>
</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="k">for</span> <span class="n">c</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">rep_data</span><span class="p">)):</span>
</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="n">data</span><span class="p">[</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rep_data</span><span class="p">[</span><span class="n">c</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="k">return</span> <span class="n">T</span><span class="p">,</span> <span class="n">rep_idl</span><span class="p">,</span> <span class="n">data</span>
</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a>
</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a>
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a><span class="k">def</span> <span class="nf">_get_rep_names</span><span class="p">(</span><span class="n">ls</span><span class="p">,</span> <span class="n">ens_name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Automatic recognition of replicum failed, please enter the key word &#39;names&#39;.&quot;</span><span class="p">)</span>
</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a>
</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="k">if</span> <span class="n">ens_name</span><span class="p">:</span>
</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;ens_name&#39;</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">entry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="k">return</span> <span class="n">new_names</span>
</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a>
</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a>
</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a><span class="k">def</span> <span class="nf">_get_appended_rep_names</span><span class="p">(</span><span class="n">ls</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ens_name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="k">for</span> <span class="n">exc</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.&#39;</span> <span class="o">+</span> <span class="n">name</span><span class="p">):</span>
</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">-</span> <span class="nb">set</span><span class="p">([</span><span class="n">exc</span><span class="p">]))</span>
</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">x</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span>
</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">myentry</span> <span class="o">=</span> <span class="n">entry</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">myentry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Automatic recognition of replicum failed, please enter the key word &#39;names&#39;.&quot;</span><span class="p">)</span>
</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a>
</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="k">if</span> <span class="n">ens_name</span><span class="p">:</span>
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;ens_name&#39;</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">myentry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">myentry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="k">return</span> <span class="n">new_names</span>
</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">T</span><span class="p">):</span>
</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a> <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span>
</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">for</span> <span class="n">c</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">rep_data</span><span class="p">)):</span>
</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="n">data</span><span class="p">[</span><span class="n">t</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rep_data</span><span class="p">[</span><span class="n">c</span><span class="p">][</span><span class="n">t</span><span class="p">])</span>
</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="k">return</span> <span class="n">T</span><span class="p">,</span> <span class="n">rep_idl</span><span class="p">,</span> <span class="n">data</span>
</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a>
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a>
</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a><span class="k">def</span> <span class="nf">_get_rep_names</span><span class="p">(</span><span class="n">ls</span><span class="p">,</span> <span class="n">ens_name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a> <span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">entry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Automatic recognition of replicum failed, please enter the key word &#39;names&#39;.&quot;</span><span class="p">)</span>
</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a>
</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="k">if</span> <span class="n">ens_name</span><span class="p">:</span>
</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;ens_name&#39;</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">entry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="k">return</span> <span class="n">new_names</span>
</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a>
</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a>
</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a><span class="k">def</span> <span class="nf">_get_appended_rep_names</span><span class="p">(</span><span class="n">ls</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">ens_name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> <span class="n">new_names</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="k">for</span> <span class="n">exc</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.&#39;</span> <span class="o">+</span> <span class="n">name</span><span class="p">):</span>
</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="n">ls</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">-</span> <span class="nb">set</span><span class="p">([</span><span class="n">exc</span><span class="p">]))</span>
</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="n">ls</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="n">x</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span>
</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">ls</span><span class="p">:</span>
</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">myentry</span> <span class="o">=</span> <span class="n">entry</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">idx</span> <span class="o">=</span> <span class="n">myentry</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Automatic recognition of replicum failed, please enter the key word &#39;names&#39;.&quot;</span><span class="p">)</span>
</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a>
</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="k">if</span> <span class="n">ens_name</span><span class="p">:</span>
</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;ens_name&#39;</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">entry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="n">new_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">myentry</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;|&#39;</span> <span class="o">+</span> <span class="n">myentry</span><span class="p">[</span><span class="n">idx</span><span class="p">:])</span>
</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="k">return</span> <span class="n">new_names</span>
</span></pre></div>