mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-16 15:20:24 +01:00
Documentation updated
This commit is contained in:
parent
03ad784966
commit
bc2e43353f
2 changed files with 64 additions and 54 deletions
|
@ -87,7 +87,7 @@
|
|||
<span class="kn">import</span> <span class="nn">warnings</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="sd">"""Generate the string for the export of a list of Obs or structures containing Obs</span>
|
||||
<span class="sd"> to a .json(.gz) file</span>
|
||||
|
||||
|
@ -97,8 +97,6 @@
|
|||
<span class="sd"> List of objects that will be exported. At the moments, these objects can be</span>
|
||||
<span class="sd"> either of: Obs, list, np.ndarray</span>
|
||||
<span class="sd"> All Obs inside a structure have to be defined on the same set of configurations.</span>
|
||||
<span class="sd"> fname : str</span>
|
||||
<span class="sd"> Filename of the output file</span>
|
||||
<span class="sd"> description : str</span>
|
||||
<span class="sd"> Optional string that describes the contents of the json file</span>
|
||||
<span class="sd"> indent : int</span>
|
||||
|
@ -166,7 +164,7 @@
|
|||
<span class="n">d</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Obs'</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'layout'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'1'</span>
|
||||
<span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">tag</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'reweighted'</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">value</span><span class="p">]</span>
|
||||
|
@ -178,13 +176,9 @@
|
|||
<span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'List'</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'layout'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'</span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<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">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]))</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">''</span>
|
||||
<span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">+=</span> <span class="s1">'</span><span class="si">%s</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">tag</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">taglist</span><span class="p">]):</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">taglist</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'reweighted'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</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">ol</span><span class="p">]</span>
|
||||
|
@ -198,13 +192,9 @@
|
|||
<span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Array'</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'layout'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">oa</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="s1">'('</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">')'</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">','</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<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">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]))</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">''</span>
|
||||
<span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">+=</span> <span class="s1">'</span><span class="si">%s</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">tag</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">taglist</span><span class="p">]):</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">taglist</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'reweighted'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</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">ol</span><span class="p">]</span>
|
||||
|
@ -231,9 +221,22 @@
|
|||
<span class="n">d</span><span class="p">[</span><span class="s1">'obsdata'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">write_Array_to_dict</span><span class="p">(</span><span class="n">io</span><span class="p">))</span>
|
||||
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="n">indent</span><span class="p">,</span> <span class="bp">cls</span><span class="o">=</span><span class="n">my_encoder</span><span class="p">,</span> <span class="n">ensure_ascii</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||||
<span class="c1"># workaround for un-indentation of delta lists</span>
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">jsonstring</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">' "['</span><span class="p">,</span> <span class="s1">' ['</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">']",'</span><span class="p">,</span> <span class="s1">'],'</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">']"</span><span class="se">\n</span><span class="s1">'</span><span class="p">,</span> <span class="s1">']</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># workaround for un-quoting of delta lists, adds 5% of work</span>
|
||||
<span class="c1"># but is save, compared to a simple replace that could destroy the structure</span>
|
||||
<span class="k">def</span> <span class="nf">remove_quotationmarks</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="n">split</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</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="nb">len</span><span class="p">(</span><span class="n">split</span><span class="p">)):</span>
|
||||
<span class="k">if</span> <span class="s1">'"deltas":'</span> <span class="ow">in</span> <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<span class="k">elif</span> <span class="n">deltas</span><span class="p">:</span>
|
||||
<span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">'"['</span><span class="p">,</span> <span class="s1">'['</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">']"'</span><span class="p">,</span> <span class="s1">']'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s1">']'</span><span class="p">:</span>
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="k">return</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">split</span><span class="p">)</span>
|
||||
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">remove_quotationmarks</span><span class="p">(</span><span class="n">jsonstring</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">jsonstring</span>
|
||||
|
||||
|
||||
|
@ -257,7 +260,7 @@
|
|||
<span class="sd"> If True, the output is a gzipped json. If False, the output is a json file.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span>
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span>
|
||||
|
||||
<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">'.json'</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">'.gz'</span><span class="p">):</span>
|
||||
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">'.json'</span>
|
||||
|
@ -317,7 +320,7 @@
|
|||
<span class="n">ret</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">([[</span><span class="n">ddi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">ddi</span> <span class="ow">in</span> <span class="n">di</span><span class="p">]</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">od</span><span class="p">[</span><span class="s1">'deltas'</span><span class="p">]],</span> <span class="n">od</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="n">od</span><span class="p">[</span><span class="s1">'idl'</span><span class="p">])</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'reweighted'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">'is_merged'</span><span class="p">]</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="p">[</span><span class="kc">None</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">ret</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">get_List_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
|
||||
|
@ -327,25 +330,28 @@
|
|||
<span class="n">od</span> <span class="o">=</span> <span class="n">_gen_obsd_from_datad</span><span class="p">(</span><span class="n">o</span><span class="p">[</span><span class="s1">'data'</span><span class="p">])</span>
|
||||
|
||||
<span class="n">ret</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="n">layout</span> <span class="o">*</span> <span class="p">[</span><span class="kc">None</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="n">layout</span><span class="p">):</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="nb">list</span><span class="p">(</span><span class="n">di</span><span class="p">[:,</span> <span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">od</span><span class="p">[</span><span class="s1">'deltas'</span><span class="p">]],</span> <span class="n">od</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="n">od</span><span class="p">[</span><span class="s1">'idl'</span><span class="p">]))</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'reweighted'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">'is_merged'</span><span class="p">]</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">taglist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">ret</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">get_Array_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
|
||||
<span class="n">layouts</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'layout'</span><span class="p">,</span> <span class="s1">'1'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
||||
<span class="n">layout</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">ls</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="k">for</span> <span class="n">ls</span> <span class="ow">in</span> <span class="n">layouts</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">','</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">N</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">prod</span><span class="p">(</span><span class="n">layout</span><span class="p">)</span>
|
||||
<span class="n">values</span> <span class="o">=</span> <span class="n">o</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span>
|
||||
<span class="n">od</span> <span class="o">=</span> <span class="n">_gen_obsd_from_datad</span><span class="p">(</span><span class="n">o</span><span class="p">[</span><span class="s1">'data'</span><span class="p">])</span>
|
||||
|
||||
<span class="n">ret</span> <span class="o">=</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="n">np</span><span class="o">.</span><span class="n">prod</span><span class="p">(</span><span class="n">layout</span><span class="p">)):</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="n">N</span> <span class="o">*</span> <span class="p">[</span><span class="kc">None</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="n">N</span><span class="p">):</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="n">di</span><span class="p">[:,</span> <span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">od</span><span class="p">[</span><span class="s1">'deltas'</span><span class="p">]],</span> <span class="n">od</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="n">od</span><span class="p">[</span><span class="s1">'idl'</span><span class="p">]))</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'reweighted'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">'is_merged'</span><span class="p">]</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">taglist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">layout</span><span class="p">)</span>
|
||||
|
||||
<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">'.json'</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">'.gz'</span><span class="p">):</span>
|
||||
|
@ -412,12 +418,12 @@
|
|||
|
||||
|
||||
<span class="def">def</span>
|
||||
<span class="name">create_json_string</span><span class="signature">(ol, fname, description='', indent=1)</span>:
|
||||
<span class="name">create_json_string</span><span class="signature">(ol, description='', indent=1)</span>:
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>View Source</summary>
|
||||
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
|
||||
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
|
||||
<span class="sd">"""Generate the string for the export of a list of Obs or structures containing Obs</span>
|
||||
<span class="sd"> to a .json(.gz) file</span>
|
||||
|
||||
|
@ -427,8 +433,6 @@
|
|||
<span class="sd"> List of objects that will be exported. At the moments, these objects can be</span>
|
||||
<span class="sd"> either of: Obs, list, np.ndarray</span>
|
||||
<span class="sd"> All Obs inside a structure have to be defined on the same set of configurations.</span>
|
||||
<span class="sd"> fname : str</span>
|
||||
<span class="sd"> Filename of the output file</span>
|
||||
<span class="sd"> description : str</span>
|
||||
<span class="sd"> Optional string that describes the contents of the json file</span>
|
||||
<span class="sd"> indent : int</span>
|
||||
|
@ -496,7 +500,7 @@
|
|||
<span class="n">d</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Obs'</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'layout'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'1'</span>
|
||||
<span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">tag</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'reweighted'</span><span class="p">]</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">value</span><span class="p">]</span>
|
||||
|
@ -508,13 +512,9 @@
|
|||
<span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'List'</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'layout'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'</span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">ol</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<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">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]))</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">''</span>
|
||||
<span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">+=</span> <span class="s1">'</span><span class="si">%s</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">tag</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">taglist</span><span class="p">]):</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">taglist</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'reweighted'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</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">ol</span><span class="p">]</span>
|
||||
|
@ -528,13 +528,9 @@
|
|||
<span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Array'</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'layout'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">oa</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="s1">'('</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">')'</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">','</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<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">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]))</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">''</span>
|
||||
<span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">+=</span> <span class="s1">'</span><span class="si">%s</span><span class="se">\n</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="p">[</span><span class="n">o</span><span class="o">.</span><span class="n">tag</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ol</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">any</span><span class="p">([</span><span class="n">tag</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">taglist</span><span class="p">]):</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'tag'</span><span class="p">]</span> <span class="o">=</span> <span class="n">taglist</span>
|
||||
<span class="k">if</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'reweighted'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span>
|
||||
<span class="n">d</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</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">ol</span><span class="p">]</span>
|
||||
|
@ -561,9 +557,22 @@
|
|||
<span class="n">d</span><span class="p">[</span><span class="s1">'obsdata'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">write_Array_to_dict</span><span class="p">(</span><span class="n">io</span><span class="p">))</span>
|
||||
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="n">indent</span><span class="p">,</span> <span class="bp">cls</span><span class="o">=</span><span class="n">my_encoder</span><span class="p">,</span> <span class="n">ensure_ascii</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||||
<span class="c1"># workaround for un-indentation of delta lists</span>
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">jsonstring</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">' "['</span><span class="p">,</span> <span class="s1">' ['</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">']",'</span><span class="p">,</span> <span class="s1">'],'</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">']"</span><span class="se">\n</span><span class="s1">'</span><span class="p">,</span> <span class="s1">']</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># workaround for un-quoting of delta lists, adds 5% of work</span>
|
||||
<span class="c1"># but is save, compared to a simple replace that could destroy the structure</span>
|
||||
<span class="k">def</span> <span class="nf">remove_quotationmarks</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="n">split</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</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="nb">len</span><span class="p">(</span><span class="n">split</span><span class="p">)):</span>
|
||||
<span class="k">if</span> <span class="s1">'"deltas":'</span> <span class="ow">in</span> <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">]:</span>
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<span class="k">elif</span> <span class="n">deltas</span><span class="p">:</span>
|
||||
<span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">'"['</span><span class="p">,</span> <span class="s1">'['</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">']"'</span><span class="p">,</span> <span class="s1">']'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s1">']'</span><span class="p">:</span>
|
||||
<span class="n">deltas</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="k">return</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">split</span><span class="p">)</span>
|
||||
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">remove_quotationmarks</span><span class="p">(</span><span class="n">jsonstring</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">jsonstring</span>
|
||||
</pre></div>
|
||||
|
||||
|
@ -579,8 +588,6 @@ to a .json(.gz) file</p>
|
|||
List of objects that will be exported. At the moments, these objects can be
|
||||
either of: Obs, list, np.ndarray
|
||||
All Obs inside a structure have to be defined on the same set of configurations.</li>
|
||||
<li><strong>fname</strong> (str):
|
||||
Filename of the output file</li>
|
||||
<li><strong>description</strong> (str):
|
||||
Optional string that describes the contents of the json file</li>
|
||||
<li><strong>indent</strong> (int):
|
||||
|
@ -621,7 +628,7 @@ saves disk space.</li>
|
|||
<span class="sd"> If True, the output is a gzipped json. If False, the output is a json file.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">fname</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span>
|
||||
<span class="n">jsonstring</span> <span class="o">=</span> <span class="n">create_json_string</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">indent</span><span class="p">)</span>
|
||||
|
||||
<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">'.json'</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">'.gz'</span><span class="p">):</span>
|
||||
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">'.json'</span>
|
||||
|
@ -716,7 +723,7 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
|
|||
<span class="n">ret</span> <span class="o">=</span> <span class="n">Obs</span><span class="p">([[</span><span class="n">ddi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">ddi</span> <span class="ow">in</span> <span class="n">di</span><span class="p">]</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">od</span><span class="p">[</span><span class="s1">'deltas'</span><span class="p">]],</span> <span class="n">od</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="n">od</span><span class="p">[</span><span class="s1">'idl'</span><span class="p">])</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'reweighted'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">'is_merged'</span><span class="p">]</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="p">[</span><span class="kc">None</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">ret</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">get_List_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
|
||||
|
@ -726,25 +733,28 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
|
|||
<span class="n">od</span> <span class="o">=</span> <span class="n">_gen_obsd_from_datad</span><span class="p">(</span><span class="n">o</span><span class="p">[</span><span class="s1">'data'</span><span class="p">])</span>
|
||||
|
||||
<span class="n">ret</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="n">layout</span> <span class="o">*</span> <span class="p">[</span><span class="kc">None</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="n">layout</span><span class="p">):</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="nb">list</span><span class="p">(</span><span class="n">di</span><span class="p">[:,</span> <span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">od</span><span class="p">[</span><span class="s1">'deltas'</span><span class="p">]],</span> <span class="n">od</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="n">od</span><span class="p">[</span><span class="s1">'idl'</span><span class="p">]))</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'reweighted'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">'is_merged'</span><span class="p">]</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">taglist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">ret</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">get_Array_from_dict</span><span class="p">(</span><span class="n">o</span><span class="p">):</span>
|
||||
<span class="n">layouts</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'layout'</span><span class="p">,</span> <span class="s1">'1'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
||||
<span class="n">layout</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">ls</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span> <span class="k">for</span> <span class="n">ls</span> <span class="ow">in</span> <span class="n">layouts</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">','</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ls</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">N</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">prod</span><span class="p">(</span><span class="n">layout</span><span class="p">)</span>
|
||||
<span class="n">values</span> <span class="o">=</span> <span class="n">o</span><span class="p">[</span><span class="s1">'value'</span><span class="p">]</span>
|
||||
<span class="n">od</span> <span class="o">=</span> <span class="n">_gen_obsd_from_datad</span><span class="p">(</span><span class="n">o</span><span class="p">[</span><span class="s1">'data'</span><span class="p">])</span>
|
||||
|
||||
<span class="n">ret</span> <span class="o">=</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="n">np</span><span class="o">.</span><span class="n">prod</span><span class="p">(</span><span class="n">layout</span><span class="p">)):</span>
|
||||
<span class="n">taglist</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="n">N</span> <span class="o">*</span> <span class="p">[</span><span class="kc">None</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="n">N</span><span class="p">):</span>
|
||||
<span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Obs</span><span class="p">([</span><span class="n">di</span><span class="p">[:,</span> <span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">di</span> <span class="ow">in</span> <span class="n">od</span><span class="p">[</span><span class="s1">'deltas'</span><span class="p">]],</span> <span class="n">od</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span> <span class="n">idl</span><span class="o">=</span><span class="n">od</span><span class="p">[</span><span class="s1">'idl'</span><span class="p">]))</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">reweighted</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'reweighted'</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">is_merged</span> <span class="o">=</span> <span class="n">od</span><span class="p">[</span><span class="s1">'is_merged'</span><span class="p">]</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">o</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'tag'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||||
<span class="n">ret</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">tag</span> <span class="o">=</span> <span class="n">taglist</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">ret</span><span class="p">,</span> <span class="n">layout</span><span class="p">)</span>
|
||||
|
||||
<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">'.json'</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">'.gz'</span><span class="p">):</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue