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
3a01f1a035
commit
7ec39a4886
2 changed files with 370 additions and 10 deletions
|
@ -59,6 +59,12 @@
|
|||
<li>
|
||||
<a class="function" href="#load_json">load_json</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="function" href="#dump_dict_to_json">dump_dict_to_json</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="function" href="#load_json_dict">load_json_dict</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -86,6 +92,7 @@
|
|||
<span class="kn">import</span> <span class="nn">datetime</span>
|
||||
<span class="kn">import</span> <span class="nn">platform</span>
|
||||
<span class="kn">import</span> <span class="nn">warnings</span>
|
||||
<span class="kn">import</span> <span class="nn">re</span>
|
||||
<span class="kn">from</span> <span class="nn">..obs</span> <span class="kn">import</span> <span class="n">Obs</span>
|
||||
<span class="kn">from</span> <span class="nn">..covobs</span> <span class="kn">import</span> <span class="n">Covobs</span>
|
||||
<span class="kn">from</span> <span class="nn">..correlators</span> <span class="kn">import</span> <span class="n">Corr</span>
|
||||
|
@ -100,7 +107,7 @@
|
|||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> ol : list</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moments, these objects can be</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moment, these objects can be</span>
|
||||
<span class="sd"> either of: Obs, list, numpy.ndarray, Corr.</span>
|
||||
<span class="sd"> All Obs inside a structure have to be defined on the same set of configurations.</span>
|
||||
<span class="sd"> description : str</span>
|
||||
|
@ -326,7 +333,7 @@
|
|||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> ol : list</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moments, these objects can be</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moment, these objects can be</span>
|
||||
<span class="sd"> either of: Obs, list, numpy.ndarray, Corr.</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>
|
||||
|
@ -556,7 +563,7 @@
|
|||
|
||||
|
||||
<span class="k">def</span> <span class="nf">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="sd">"""Import a list of Obs or structures containing Obs from a .json.gz file.</span>
|
||||
<span class="sd">"""Import a list of Obs or structures containing Obs from a .json(.gz) file.</span>
|
||||
|
||||
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
|
||||
<span class="sd"> If the list contains only one element, it is unpacked from the list.</span>
|
||||
|
@ -587,6 +594,218 @@
|
|||
<span class="n">d</span> <span class="o">=</span> <span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">import_json_string</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">verbose</span><span class="p">,</span> <span class="n">full_output</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_ol_from_dict</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">'DICTOBS'</span><span class="p">):</span>
|
||||
<span class="sd">"""Convert a dictionary of Obs objects to a list and a dictionary that contains</span>
|
||||
<span class="sd"> placeholders instead of the Obs objects.</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> ind : dict</span>
|
||||
<span class="sd"> Dict of JSON valid structures and objects that will be exported.</span>
|
||||
<span class="sd"> At the moment, these object can be either of: Obs, list, numpy.ndarray, Corr.</span>
|
||||
<span class="sd"> All Obs inside a structure have to be defined on the same set of configurations.</span>
|
||||
<span class="sd"> reps : str</span>
|
||||
<span class="sd"> Specify the structure of the placeholder in exported dict to be reps[0-9]+.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">obstypes</span> <span class="o">=</span> <span class="p">(</span><span class="n">Obs</span><span class="p">,</span> <span class="n">Corr</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">reps</span><span class="o">.</span><span class="n">isalnum</span><span class="p">():</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Placeholder string has to be alphanumeric!'</span><span class="p">)</span>
|
||||
<span class="n">ol</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">dict_replace_obs</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
<span class="k">nonlocal</span> <span class="n">ol</span>
|
||||
<span class="k">nonlocal</span> <span class="n">counter</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">dict_replace_obs</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">all</span><span class="p">([</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">Obs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">v</span><span class="p">]):</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">obslist_replace_obs</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">list_replace_obs</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">obstypes</span><span class="p">):</span>
|
||||
<span class="n">ol</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">reps</span> <span class="o">+</span> <span class="s1">'</span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">counter</span><span class="p">)</span>
|
||||
<span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="nb">bool</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">'</span><span class="si">%s</span><span class="s1">[0-9]+'</span> <span class="o">%</span> <span class="p">(</span><span class="n">reps</span><span class="p">),</span> <span class="n">v</span><span class="p">)):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Dict contains string </span><span class="si">%s</span><span class="s1"> that matches the placeholder! </span><span class="si">%s</span><span class="s1"> Cannot be savely exported.'</span> <span class="o">%</span> <span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">reps</span><span class="p">))</span>
|
||||
<span class="n">x</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span>
|
||||
<span class="k">return</span> <span class="n">x</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">list_replace_obs</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
|
||||
<span class="k">nonlocal</span> <span class="n">ol</span>
|
||||
<span class="k">nonlocal</span> <span class="n">counter</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">li</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">list_replace_obs</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">all</span><span class="p">([</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">Obs</span><span class="p">)</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">e</span><span class="p">]):</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">obslist_replace_obs</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">dict_replace_obs</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">obstypes</span><span class="p">):</span>
|
||||
<span class="n">ol</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">reps</span> <span class="o">+</span> <span class="s1">'</span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">counter</span><span class="p">)</span>
|
||||
<span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="nb">bool</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">'</span><span class="si">%s</span><span class="s1">[0-9]+'</span> <span class="o">%</span> <span class="p">(</span><span class="n">reps</span><span class="p">),</span> <span class="n">e</span><span class="p">)):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Dict contains string </span><span class="si">%s</span><span class="s1"> that matches the placeholder! </span><span class="si">%s</span><span class="s1"> Cannot be savely exported.'</span> <span class="o">%</span> <span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">reps</span><span class="p">))</span>
|
||||
<span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">x</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">obslist_replace_obs</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
|
||||
<span class="k">nonlocal</span> <span class="n">ol</span>
|
||||
<span class="k">nonlocal</span> <span class="n">counter</span>
|
||||
<span class="n">il</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">li</span><span class="p">:</span>
|
||||
<span class="n">il</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
|
||||
<span class="n">ol</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">il</span><span class="p">)</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="n">reps</span> <span class="o">+</span> <span class="s1">'</span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">counter</span><span class="p">)</span>
|
||||
<span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="k">return</span> <span class="n">x</span>
|
||||
|
||||
<span class="n">nd</span> <span class="o">=</span> <span class="n">dict_replace_obs</span><span class="p">(</span><span class="n">ind</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">ol</span><span class="p">,</span> <span class="n">nd</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">dump_dict_to_json</span><span class="p">(</span><span class="n">od</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="n">reps</span><span class="o">=</span><span class="s1">'DICTOBS'</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||
<span class="sd">"""Export a dict of Obs or structures containing Obs to a .json(.gz) file</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> od : dict</span>
|
||||
<span class="sd"> Dict of JSON valid structures and objects that will be exported.</span>
|
||||
<span class="sd"> At the moment, these objects can be either of: Obs, list, numpy.ndarray, Corr.</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>
|
||||
<span class="sd"> Specify the indentation level of the json file. None or 0 is permissible and</span>
|
||||
<span class="sd"> saves disk space.</span>
|
||||
<span class="sd"> reps : str</span>
|
||||
<span class="sd"> Specify the structure of the placeholder in exported dict to be reps[0-9]+.</span>
|
||||
<span class="sd"> gz : bool</span>
|
||||
<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="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'od has to be a dictionary. Did you want to use dump_to_json?'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">infostring</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'This JSON file contains a python dictionary that has been parsed to a list of structures. '</span>
|
||||
<span class="s1">'OBSDICT contains the dictionary, where Obs or other structures have been replaced by '</span>
|
||||
<span class="s1">''</span> <span class="o">+</span> <span class="n">reps</span> <span class="o">+</span> <span class="s1">'[0-9]+. The field description contains the additional description of this JSON file. '</span>
|
||||
<span class="s1">'This file may be parsed to a dict with the pyerrors routine load_json_dict.'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">desc_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'INFO'</span><span class="p">:</span> <span class="n">infostring</span><span class="p">,</span> <span class="s1">'OBSDICT'</span><span class="p">:</span> <span class="p">{},</span> <span class="s1">'description'</span><span class="p">:</span> <span class="n">description</span><span class="p">}</span>
|
||||
<span class="n">ol</span><span class="p">,</span> <span class="n">desc_dict</span><span class="p">[</span><span class="s1">'OBSDICT'</span><span class="p">]</span> <span class="o">=</span> <span class="n">_ol_from_dict</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="n">reps</span><span class="p">)</span>
|
||||
|
||||
<span class="n">dump_to_json</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="n">desc_dict</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="n">gz</span><span class="o">=</span><span class="n">gz</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_od_from_list_and_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">ind</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">'DICTOBS'</span><span class="p">):</span>
|
||||
<span class="sd">"""Parse a list of Obs or structures containing Obs and an accompanying</span>
|
||||
<span class="sd"> dict, where the structures have been replaced by placeholders to a</span>
|
||||
<span class="sd"> dict that contains the structures.</span>
|
||||
|
||||
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> ol : list</span>
|
||||
<span class="sd"> List of objects -</span>
|
||||
<span class="sd"> At the moment, these objects can be either of: Obs, list, numpy.ndarray, Corr.</span>
|
||||
<span class="sd"> All Obs inside a structure have to be defined on the same set of configurations.</span>
|
||||
<span class="sd"> ind : dict</span>
|
||||
<span class="sd"> Dict that defines the structure of the resulting dict and contains placeholders</span>
|
||||
<span class="sd"> reps : str</span>
|
||||
<span class="sd"> Specify the structure of the placeholder in imported dict to be reps[0-9]+.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">reps</span><span class="o">.</span><span class="n">isalnum</span><span class="p">():</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'Placeholder string has to be alphanumeric!'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">dict_replace_string</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
<span class="k">nonlocal</span> <span class="n">counter</span>
|
||||
<span class="k">nonlocal</span> <span class="n">ol</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">d</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">dict_replace_string</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">list_replace_string</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">bool</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">'</span><span class="si">%s</span><span class="s1">[0-9]+'</span> <span class="o">%</span> <span class="p">(</span><span class="n">reps</span><span class="p">),</span> <span class="n">v</span><span class="p">)):</span>
|
||||
<span class="n">index</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">v</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">reps</span><span class="p">):])</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="n">index</span><span class="p">]</span>
|
||||
<span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="n">x</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span>
|
||||
<span class="k">return</span> <span class="n">x</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">list_replace_string</span><span class="p">(</span><span class="n">li</span><span class="p">):</span>
|
||||
<span class="k">nonlocal</span> <span class="n">counter</span>
|
||||
<span class="k">nonlocal</span> <span class="n">ol</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">li</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">list_replace_string</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">dict_replace_string</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">bool</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">'</span><span class="si">%s</span><span class="s1">[0-9]+'</span> <span class="o">%</span> <span class="p">(</span><span class="n">reps</span><span class="p">),</span> <span class="n">e</span><span class="p">)):</span>
|
||||
<span class="n">index</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">e</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">reps</span><span class="p">):])</span>
|
||||
<span class="n">e</span> <span class="o">=</span> <span class="n">ol</span><span class="p">[</span><span class="n">index</span><span class="p">]</span>
|
||||
<span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="n">x</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">x</span>
|
||||
|
||||
<span class="n">nd</span> <span class="o">=</span> <span class="n">dict_replace_string</span><span class="p">(</span><span class="n">ind</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">counter</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'No placeholder has been replaced! Check if reps is set correctly.'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">nd</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">load_json_dict</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">'DICTOBS'</span><span class="p">):</span>
|
||||
<span class="sd">"""Import a dict of Obs or structures containing Obs from a .json(.gz) file.</span>
|
||||
|
||||
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> fname : str</span>
|
||||
<span class="sd"> Filename of the input file.</span>
|
||||
<span class="sd"> verbose : bool</span>
|
||||
<span class="sd"> Print additional information that was written to the file.</span>
|
||||
<span class="sd"> gz : bool</span>
|
||||
<span class="sd"> If True, assumes that data is gzipped. If False, assumes JSON file.</span>
|
||||
<span class="sd"> full_output : bool</span>
|
||||
<span class="sd"> If True, a dict containing auxiliary information and the data is returned.</span>
|
||||
<span class="sd"> If False, only the data is returned.</span>
|
||||
<span class="sd"> reps : str</span>
|
||||
<span class="sd"> Specify the structure of the placeholder in imported dict to be reps[0-9]+.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">indata</span> <span class="o">=</span> <span class="n">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="n">verbose</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="n">gz</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">description</span> <span class="o">=</span> <span class="n">indata</span><span class="p">[</span><span class="s1">'description'</span><span class="p">][</span><span class="s1">'description'</span><span class="p">]</span>
|
||||
<span class="n">indict</span> <span class="o">=</span> <span class="n">indata</span><span class="p">[</span><span class="s1">'description'</span><span class="p">][</span><span class="s1">'OBSDICT'</span><span class="p">]</span>
|
||||
<span class="n">ol</span> <span class="o">=</span> <span class="n">indata</span><span class="p">[</span><span class="s1">'obsdata'</span><span class="p">]</span>
|
||||
<span class="n">od</span> <span class="o">=</span> <span class="n">_od_from_list_and_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">indict</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="n">reps</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">full_output</span><span class="p">:</span>
|
||||
<span class="n">indata</span><span class="p">[</span><span class="s1">'description'</span><span class="p">]</span> <span class="o">=</span> <span class="n">description</span>
|
||||
<span class="n">indata</span><span class="p">[</span><span class="s1">'obsdata'</span><span class="p">]</span> <span class="o">=</span> <span class="n">od</span>
|
||||
<span class="k">return</span> <span class="n">indata</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">od</span>
|
||||
</pre></div>
|
||||
|
||||
</details>
|
||||
|
@ -609,7 +828,7 @@
|
|||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> ol : list</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moments, these objects can be</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moment, these objects can be</span>
|
||||
<span class="sd"> either of: Obs, list, numpy.ndarray, Corr.</span>
|
||||
<span class="sd"> All Obs inside a structure have to be defined on the same set of configurations.</span>
|
||||
<span class="sd"> description : str</span>
|
||||
|
@ -838,7 +1057,7 @@ to a .json(.gz) file</p>
|
|||
|
||||
<ul>
|
||||
<li><strong>ol</strong> (list):
|
||||
List of objects that will be exported. At the moments, these objects can be
|
||||
List of objects that will be exported. At the moment, these objects can be
|
||||
either of: Obs, list, numpy.ndarray, Corr.
|
||||
All Obs inside a structure have to be defined on the same set of configurations.</li>
|
||||
<li><strong>description</strong> (str):
|
||||
|
@ -867,7 +1086,7 @@ saves disk space.</li>
|
|||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> ol : list</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moments, these objects can be</span>
|
||||
<span class="sd"> List of objects that will be exported. At the moment, these objects can be</span>
|
||||
<span class="sd"> either of: Obs, list, numpy.ndarray, Corr.</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>
|
||||
|
@ -906,7 +1125,7 @@ saves disk space.</li>
|
|||
|
||||
<ul>
|
||||
<li><strong>ol</strong> (list):
|
||||
List of objects that will be exported. At the moments, these objects can be
|
||||
List of objects that will be exported. At the moment, these objects can be
|
||||
either of: Obs, list, numpy.ndarray, Corr.
|
||||
All Obs inside a structure have to be defined on the same set of configurations.</li>
|
||||
<li><strong>fname</strong> (str):
|
||||
|
@ -1164,7 +1383,7 @@ If False, only the data is returned.</li>
|
|||
<details>
|
||||
<summary>View Source</summary>
|
||||
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||||
<span class="sd">"""Import a list of Obs or structures containing Obs from a .json.gz file.</span>
|
||||
<span class="sd">"""Import a list of Obs or structures containing Obs from a .json(.gz) file.</span>
|
||||
|
||||
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
|
||||
<span class="sd"> If the list contains only one element, it is unpacked from the list.</span>
|
||||
|
@ -1199,7 +1418,7 @@ If False, only the data is returned.</li>
|
|||
|
||||
</details>
|
||||
|
||||
<div class="docstring"><p>Import a list of Obs or structures containing Obs from a .json.gz file.</p>
|
||||
<div class="docstring"><p>Import a list of Obs or structures containing Obs from a .json(.gz) file.</p>
|
||||
|
||||
<p>The following structures are supported: Obs, list, numpy.ndarray, Corr
|
||||
If the list contains only one element, it is unpacked from the list.</p>
|
||||
|
@ -1220,6 +1439,147 @@ If False, only the data is returned.</li>
|
|||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
<section id="dump_dict_to_json">
|
||||
<div class="attr function"><a class="headerlink" href="#dump_dict_to_json">#  </a>
|
||||
|
||||
|
||||
<span class="def">def</span>
|
||||
<span class="name">dump_dict_to_json</span><span class="signature">(od, fname, description='', indent=1, reps='DICTOBS', gz=True)</span>:
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>View Source</summary>
|
||||
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">dump_dict_to_json</span><span class="p">(</span><span class="n">od</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="n">reps</span><span class="o">=</span><span class="s1">'DICTOBS'</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||
<span class="sd">"""Export a dict of Obs or structures containing Obs to a .json(.gz) file</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> od : dict</span>
|
||||
<span class="sd"> Dict of JSON valid structures and objects that will be exported.</span>
|
||||
<span class="sd"> At the moment, these objects can be either of: Obs, list, numpy.ndarray, Corr.</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>
|
||||
<span class="sd"> Specify the indentation level of the json file. None or 0 is permissible and</span>
|
||||
<span class="sd"> saves disk space.</span>
|
||||
<span class="sd"> reps : str</span>
|
||||
<span class="sd"> Specify the structure of the placeholder in exported dict to be reps[0-9]+.</span>
|
||||
<span class="sd"> gz : bool</span>
|
||||
<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="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s1">'od has to be a dictionary. Did you want to use dump_to_json?'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">infostring</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'This JSON file contains a python dictionary that has been parsed to a list of structures. '</span>
|
||||
<span class="s1">'OBSDICT contains the dictionary, where Obs or other structures have been replaced by '</span>
|
||||
<span class="s1">''</span> <span class="o">+</span> <span class="n">reps</span> <span class="o">+</span> <span class="s1">'[0-9]+. The field description contains the additional description of this JSON file. '</span>
|
||||
<span class="s1">'This file may be parsed to a dict with the pyerrors routine load_json_dict.'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">desc_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'INFO'</span><span class="p">:</span> <span class="n">infostring</span><span class="p">,</span> <span class="s1">'OBSDICT'</span><span class="p">:</span> <span class="p">{},</span> <span class="s1">'description'</span><span class="p">:</span> <span class="n">description</span><span class="p">}</span>
|
||||
<span class="n">ol</span><span class="p">,</span> <span class="n">desc_dict</span><span class="p">[</span><span class="s1">'OBSDICT'</span><span class="p">]</span> <span class="o">=</span> <span class="n">_ol_from_dict</span><span class="p">(</span><span class="n">od</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="n">reps</span><span class="p">)</span>
|
||||
|
||||
<span class="n">dump_to_json</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="n">desc_dict</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="n">gz</span><span class="o">=</span><span class="n">gz</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</details>
|
||||
|
||||
<div class="docstring"><p>Export a dict of Obs or structures containing Obs to a .json(.gz) file</p>
|
||||
|
||||
<h6 id="parameters">Parameters</h6>
|
||||
|
||||
<ul>
|
||||
<li><strong>od</strong> (dict):
|
||||
Dict of JSON valid structures and objects that will be exported.
|
||||
At the moment, these objects can be either of: Obs, list, numpy.ndarray, Corr.
|
||||
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):
|
||||
Specify the indentation level of the json file. None or 0 is permissible and
|
||||
saves disk space.</li>
|
||||
<li><strong>reps</strong> (str):
|
||||
Specify the structure of the placeholder in exported dict to be reps[0-9]+.</li>
|
||||
<li><strong>gz</strong> (bool):
|
||||
If True, the output is a gzipped json. If False, the output is a json file.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
<section id="load_json_dict">
|
||||
<div class="attr function"><a class="headerlink" href="#load_json_dict">#  </a>
|
||||
|
||||
|
||||
<span class="def">def</span>
|
||||
<span class="name">load_json_dict</span><span class="signature">(fname, verbose=True, gz=True, full_output=False, reps='DICTOBS')</span>:
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>View Source</summary>
|
||||
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">load_json_dict</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="s1">'DICTOBS'</span><span class="p">):</span>
|
||||
<span class="sd">"""Import a dict of Obs or structures containing Obs from a .json(.gz) file.</span>
|
||||
|
||||
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray, Corr</span>
|
||||
|
||||
<span class="sd"> Parameters</span>
|
||||
<span class="sd"> ----------</span>
|
||||
<span class="sd"> fname : str</span>
|
||||
<span class="sd"> Filename of the input file.</span>
|
||||
<span class="sd"> verbose : bool</span>
|
||||
<span class="sd"> Print additional information that was written to the file.</span>
|
||||
<span class="sd"> gz : bool</span>
|
||||
<span class="sd"> If True, assumes that data is gzipped. If False, assumes JSON file.</span>
|
||||
<span class="sd"> full_output : bool</span>
|
||||
<span class="sd"> If True, a dict containing auxiliary information and the data is returned.</span>
|
||||
<span class="sd"> If False, only the data is returned.</span>
|
||||
<span class="sd"> reps : str</span>
|
||||
<span class="sd"> Specify the structure of the placeholder in imported dict to be reps[0-9]+.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">indata</span> <span class="o">=</span> <span class="n">load_json</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="n">verbose</span><span class="p">,</span> <span class="n">gz</span><span class="o">=</span><span class="n">gz</span><span class="p">,</span> <span class="n">full_output</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">description</span> <span class="o">=</span> <span class="n">indata</span><span class="p">[</span><span class="s1">'description'</span><span class="p">][</span><span class="s1">'description'</span><span class="p">]</span>
|
||||
<span class="n">indict</span> <span class="o">=</span> <span class="n">indata</span><span class="p">[</span><span class="s1">'description'</span><span class="p">][</span><span class="s1">'OBSDICT'</span><span class="p">]</span>
|
||||
<span class="n">ol</span> <span class="o">=</span> <span class="n">indata</span><span class="p">[</span><span class="s1">'obsdata'</span><span class="p">]</span>
|
||||
<span class="n">od</span> <span class="o">=</span> <span class="n">_od_from_list_and_dict</span><span class="p">(</span><span class="n">ol</span><span class="p">,</span> <span class="n">indict</span><span class="p">,</span> <span class="n">reps</span><span class="o">=</span><span class="n">reps</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">full_output</span><span class="p">:</span>
|
||||
<span class="n">indata</span><span class="p">[</span><span class="s1">'description'</span><span class="p">]</span> <span class="o">=</span> <span class="n">description</span>
|
||||
<span class="n">indata</span><span class="p">[</span><span class="s1">'obsdata'</span><span class="p">]</span> <span class="o">=</span> <span class="n">od</span>
|
||||
<span class="k">return</span> <span class="n">indata</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">od</span>
|
||||
</pre></div>
|
||||
|
||||
</details>
|
||||
|
||||
<div class="docstring"><p>Import a dict of Obs or structures containing Obs from a .json(.gz) file.</p>
|
||||
|
||||
<p>The following structures are supported: Obs, list, numpy.ndarray, Corr</p>
|
||||
|
||||
<h6 id="parameters">Parameters</h6>
|
||||
|
||||
<ul>
|
||||
<li><strong>fname</strong> (str):
|
||||
Filename of the input file.</li>
|
||||
<li><strong>verbose</strong> (bool):
|
||||
Print additional information that was written to the file.</li>
|
||||
<li><strong>gz</strong> (bool):
|
||||
If True, assumes that data is gzipped. If False, assumes JSON file.</li>
|
||||
<li><strong>full_output</strong> (bool):
|
||||
If True, a dict containing auxiliary information and the data is returned.
|
||||
If False, only the data is returned.</li>
|
||||
<li><strong>reps</strong> (str):
|
||||
Specify the structure of the placeholder in imported dict to be reps[0-9]+.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
</main>
|
||||
<script>
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Add table
Reference in a new issue