Documentation updated

This commit is contained in:
s-kuberski 2021-12-10 09:00:28 +00:00
parent 6da0c6f619
commit eff586436d
2 changed files with 129 additions and 56 deletions

View file

@ -53,6 +53,9 @@
<li>
<a class="function" href="#dump_to_json">dump_to_json</a>
</li>
<li>
<a class="function" href="#import_json_string">import_json_string</a>
</li>
<li>
<a class="function" href="#load_json">load_json</a>
</li>
@ -280,20 +283,18 @@
<span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</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">&quot;&quot;&quot;Import a list of Obs or structures containing Obs from a .json.gz file.</span>
<span class="k">def</span> <span class="nf">import_json_string</span><span class="p">(</span><span class="n">json_string</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">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Reconstruct a list of Obs or structures containing Obs from a json string.</span>
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray</span>
<span class="sd"> If the list contains only one element, it is unpacked from the list.</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"> json_string : str</span>
<span class="sd"> json string containing the data.</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>
@ -358,35 +359,22 @@
<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">&#39;.json&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.json&#39;</span>
<span class="k">if</span> <span class="n">gz</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">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
<span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
<span class="n">prog</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;program&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">version</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;version&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">who</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;who&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">date</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;host&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">prog</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;program&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">version</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;version&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">who</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;who&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">date</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;host&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">prog</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Data has been written using </span><span class="si">%s</span><span class="s1">.&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prog</span><span class="p">))</span>
<span class="k">if</span> <span class="n">version</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Format version </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">version</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">who</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">host</span><span class="p">]</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Written by </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1"> on host </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">who</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">host</span><span class="p">))</span>
<span class="n">description</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">description</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">description</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">:</span>
<span class="nb">print</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Description: &#39;</span><span class="p">,</span> <span class="n">description</span><span class="p">)</span>
<span class="n">obsdata</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;obsdata&#39;</span><span class="p">]</span>
<span class="n">obsdata</span> <span class="o">=</span> <span class="n">json_string</span><span class="p">[</span><span class="s1">&#39;obsdata&#39;</span><span class="p">]</span>
<span class="n">ol</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">io</span> <span class="ow">in</span> <span class="n">obsdata</span><span class="p">:</span>
<span class="k">if</span> <span class="n">io</span><span class="p">[</span><span class="s1">&#39;type&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;Obs&#39;</span><span class="p">:</span>
@ -412,6 +400,40 @@
<span class="n">ol</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="k">return</span> <span class="n">ol</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">&quot;&quot;&quot;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</span>
<span class="sd"> If the list contains only one element, it is unpacked from the list.</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"> &quot;&quot;&quot;</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">&#39;.json&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.json&#39;</span>
<span class="k">if</span> <span class="n">gz</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">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
<span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</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>
</pre></div>
</details>
@ -677,30 +699,28 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
</section>
<section id="load_json">
<div class="attr function"><a class="headerlink" href="#load_json">#&nbsp;&nbsp</a>
<section id="import_json_string">
<div class="attr function"><a class="headerlink" href="#import_json_string">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">load_json</span><span class="signature">(fname, verbose=True, gz=True, full_output=False)</span>:
<span class="name">import_json_string</span><span class="signature">(json_string, verbose=True, full_output=False)</span>:
</div>
<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">&quot;&quot;&quot;Import a list of Obs or structures containing Obs from a .json.gz file.</span>
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">import_json_string</span><span class="p">(</span><span class="n">json_string</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">full_output</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Reconstruct a list of Obs or structures containing Obs from a json string.</span>
<span class="sd"> The following structures are supported: Obs, list, numpy.ndarray</span>
<span class="sd"> If the list contains only one element, it is unpacked from the list.</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"> json_string : str</span>
<span class="sd"> json string containing the data.</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>
@ -765,35 +785,22 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
<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">&#39;.json&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.json&#39;</span>
<span class="k">if</span> <span class="n">gz</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">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
<span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
<span class="n">prog</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;program&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">version</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;version&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">who</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;who&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">date</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;host&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">prog</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;program&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">version</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;version&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">who</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;who&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">date</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;host&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">prog</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Data has been written using </span><span class="si">%s</span><span class="s1">.&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">prog</span><span class="p">))</span>
<span class="k">if</span> <span class="n">version</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Format version </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">version</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">who</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">host</span><span class="p">]</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">):</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Written by </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1"> on host </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">who</span><span class="p">,</span> <span class="n">date</span><span class="p">,</span> <span class="n">host</span><span class="p">))</span>
<span class="n">description</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">description</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">description</span> <span class="ow">and</span> <span class="n">verbose</span><span class="p">:</span>
<span class="nb">print</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Description: &#39;</span><span class="p">,</span> <span class="n">description</span><span class="p">)</span>
<span class="n">obsdata</span> <span class="o">=</span> <span class="n">d</span><span class="p">[</span><span class="s1">&#39;obsdata&#39;</span><span class="p">]</span>
<span class="n">obsdata</span> <span class="o">=</span> <span class="n">json_string</span><span class="p">[</span><span class="s1">&#39;obsdata&#39;</span><span class="p">]</span>
<span class="n">ol</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">io</span> <span class="ow">in</span> <span class="n">obsdata</span><span class="p">:</span>
<span class="k">if</span> <span class="n">io</span><span class="p">[</span><span class="s1">&#39;type&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;Obs&#39;</span><span class="p">:</span>
@ -821,6 +828,72 @@ If True, the output is a gzipped json. If False, the output is a json file.</li>
<span class="k">return</span> <span class="n">ol</span>
</pre></div>
</details>
<div class="docstring"><p>Reconstruct a list of Obs or structures containing Obs from a json string.</p>
<p>The following structures are supported: Obs, list, numpy.ndarray
If the list contains only one element, it is unpacked from the list.</p>
<h6 id="parameters">Parameters</h6>
<ul>
<li><strong>json_string</strong> (str):
json string containing the data.</li>
<li><strong>verbose</strong> (bool):
Print additional information that was written to the 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>
</ul>
</div>
</section>
<section id="load_json">
<div class="attr function"><a class="headerlink" href="#load_json">#&nbsp;&nbsp</a>
<span class="def">def</span>
<span class="name">load_json</span><span class="signature">(fname, verbose=True, gz=True, full_output=False)</span>:
</div>
<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">&quot;&quot;&quot;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</span>
<span class="sd"> If the list contains only one element, it is unpacked from the list.</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"> &quot;&quot;&quot;</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">&#39;.json&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.json&#39;</span>
<span class="k">if</span> <span class="n">gz</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">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">fname</span> <span class="o">+=</span> <span class="s1">&#39;.gz&#39;</span>
<span class="k">with</span> <span class="n">gzip</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">fin</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="n">fname</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.gz&#39;</span><span class="p">):</span>
<span class="n">warnings</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span><span class="s2">&quot;Trying to read from </span><span class="si">%s</span><span class="s2"> without unzipping!&quot;</span> <span class="o">%</span> <span class="n">fname</span><span class="p">,</span> <span class="ne">UserWarning</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fin</span><span class="p">:</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</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>
</pre></div>
</details>
<div class="docstring"><p>Import a list of Obs or structures containing Obs from a .json.gz file.</p>

File diff suppressed because one or more lines are too long