Skip to content

Commit c273b94

Browse files
authored
Gen3Index fixes (#161)
1 parent afc293c commit c273b94

File tree

20 files changed

+214
-49
lines changed

20 files changed

+214
-49
lines changed
4.32 KB
Binary file not shown.

docs/_build/doctrees/file.doctree

3.44 KB
Binary file not shown.
695 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

docs/_build/html/_modules/gen3/file.html

Lines changed: 96 additions & 7 deletions
Large diffs are not rendered by default.

docs/_build/html/_modules/gen3/index.html

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -508,30 +508,39 @@ <h1>Source code for gen3.index</h1><div class="highlight"><pre>
508508
<span class="n">urls</span> <span class="o">=</span> <span class="p">[]</span>
509509

510510
<span class="n">json</span> <span class="o">=</span> <span class="p">{</span>
511-
<span class="s2">&quot;urls&quot;</span><span class="p">:</span> <span class="n">urls</span><span class="p">,</span>
512511
<span class="s2">&quot;form&quot;</span><span class="p">:</span> <span class="s2">&quot;object&quot;</span><span class="p">,</span>
513512
<span class="s2">&quot;hashes&quot;</span><span class="p">:</span> <span class="n">hashes</span><span class="p">,</span>
514513
<span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="n">size</span><span class="p">,</span>
515-
<span class="s2">&quot;file_name&quot;</span><span class="p">:</span> <span class="n">file_name</span><span class="p">,</span>
516-
<span class="s2">&quot;metadata&quot;</span><span class="p">:</span> <span class="n">metadata</span><span class="p">,</span>
517-
<span class="s2">&quot;urls_metadata&quot;</span><span class="p">:</span> <span class="n">urls_metadata</span><span class="p">,</span>
518-
<span class="s2">&quot;baseid&quot;</span><span class="p">:</span> <span class="n">baseid</span><span class="p">,</span>
519-
<span class="s2">&quot;acl&quot;</span><span class="p">:</span> <span class="n">acl</span><span class="p">,</span>
520-
<span class="s2">&quot;authz&quot;</span><span class="p">:</span> <span class="n">authz</span><span class="p">,</span>
521-
<span class="s2">&quot;version&quot;</span><span class="p">:</span> <span class="n">version</span><span class="p">,</span>
514+
<span class="s2">&quot;urls&quot;</span><span class="p">:</span> <span class="n">urls</span> <span class="ow">or</span> <span class="p">[],</span>
522515
<span class="p">}</span>
523-
524516
<span class="k">if</span> <span class="n">did</span><span class="p">:</span>
525517
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;did&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">did</span>
518+
<span class="k">if</span> <span class="n">file_name</span><span class="p">:</span>
519+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;file_name&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">file_name</span>
520+
<span class="k">if</span> <span class="n">metadata</span><span class="p">:</span>
521+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;metadata&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">metadata</span>
522+
<span class="k">if</span> <span class="n">baseid</span><span class="p">:</span>
523+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;baseid&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">baseid</span>
524+
<span class="k">if</span> <span class="n">acl</span><span class="p">:</span>
525+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;acl&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">acl</span>
526+
<span class="k">if</span> <span class="n">urls_metadata</span><span class="p">:</span>
527+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;urls_metadata&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">urls_metadata</span>
528+
<span class="k">if</span> <span class="n">version</span><span class="p">:</span>
529+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;version&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">version</span>
530+
<span class="k">if</span> <span class="n">authz</span><span class="p">:</span>
531+
<span class="n">json</span><span class="p">[</span><span class="s2">&quot;authz&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">authz</span>
532+
533+
<span class="c1"># aiohttp only allows basic auth with their built in auth, so we</span>
534+
<span class="c1"># need to manually add JWT auth header</span>
535+
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;Authorization&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">_get_auth_value</span><span class="p">()}</span>
526536

527537
<span class="k">async</span> <span class="k">with</span> <span class="n">session</span><span class="o">.</span><span class="n">post</span><span class="p">(</span>
528538
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">url</span><span class="si">}</span><span class="s2">/index/&quot;</span><span class="p">,</span>
529539
<span class="n">json</span><span class="o">=</span><span class="n">json</span><span class="p">,</span>
530-
<span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;content-type&quot;</span><span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">},</span>
540+
<span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">,</span>
531541
<span class="n">ssl</span><span class="o">=</span><span class="n">_ssl</span><span class="p">,</span>
532-
<span class="n">auth</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">auth</span><span class="p">,</span>
533542
<span class="p">)</span> <span class="k">as</span> <span class="n">response</span><span class="p">:</span>
534-
<span class="n">raise_for_status_and_print_error</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
543+
<span class="k">assert</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">200</span><span class="p">,</span> <span class="k">await</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
535544
<span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
536545

537546
<span class="k">return</span> <span class="n">response</span></div>
@@ -750,6 +759,8 @@ <h1>Source code for gen3.index</h1><div class="highlight"><pre>
750759
<span class="n">acl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
751760
<span class="n">authz</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
752761
<span class="n">urls_metadata</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
762+
<span class="n">_ssl</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
763+
<span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
753764
<span class="p">):</span>
754765
<span class="sd">&quot;&quot;&quot;</span>
755766
<span class="sd"> Asynchronous function to update a record in indexd.</span>
@@ -771,21 +782,38 @@ <h1>Source code for gen3.index</h1><div class="highlight"><pre>
771782
<span class="s2">&quot;authz&quot;</span><span class="p">:</span> <span class="n">authz</span><span class="p">,</span>
772783
<span class="s2">&quot;urls_metadata&quot;</span><span class="p">:</span> <span class="n">urls_metadata</span><span class="p">,</span>
773784
<span class="p">}</span>
774-
<span class="n">record</span> <span class="o">=</span> <span class="k">await</span> <span class="n">async_get_record</span><span class="p">(</span><span class="n">guid</span><span class="p">)</span>
785+
<span class="n">record</span> <span class="o">=</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">async_get_record</span><span class="p">(</span><span class="n">guid</span><span class="p">)</span>
775786
<span class="n">revision</span> <span class="o">=</span> <span class="n">record</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;rev&quot;</span><span class="p">)</span>
776787

777788
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">updatable_attrs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
778789
<span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
779790
<span class="n">record</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
780791

792+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;created_date&quot;</span><span class="p">]</span>
793+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;rev&quot;</span><span class="p">]</span>
794+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;updated_date&quot;</span><span class="p">]</span>
795+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;version&quot;</span><span class="p">]</span>
796+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;uploader&quot;</span><span class="p">]</span>
797+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;form&quot;</span><span class="p">]</span>
798+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;urls_metadata&quot;</span><span class="p">]</span>
799+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;baseid&quot;</span><span class="p">]</span>
800+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;size&quot;</span><span class="p">]</span>
801+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;hashes&quot;</span><span class="p">]</span>
802+
<span class="k">del</span> <span class="n">record</span><span class="p">[</span><span class="s2">&quot;did&quot;</span><span class="p">]</span>
803+
804+
<span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;PUT-ing record: </span><span class="si">{</span><span class="n">record</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
805+
806+
<span class="c1"># aiohttp only allows basic auth with their built in auth, so we</span>
807+
<span class="c1"># need to manually add JWT auth header</span>
808+
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;Authorization&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">_get_auth_value</span><span class="p">()}</span>
809+
781810
<span class="k">async</span> <span class="k">with</span> <span class="n">session</span><span class="o">.</span><span class="n">put</span><span class="p">(</span>
782-
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">url</span><span class="si">}</span><span class="s2">/index/</span><span class="si">{</span><span class="n">guid</span><span class="si">}</span><span class="s2">/rev=</span><span class="si">{</span><span class="n">revision</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
811+
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">url</span><span class="si">}</span><span class="s2">/index/</span><span class="si">{</span><span class="n">guid</span><span class="si">}</span><span class="s2">?rev=</span><span class="si">{</span><span class="n">revision</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
783812
<span class="n">json</span><span class="o">=</span><span class="n">record</span><span class="p">,</span>
784-
<span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;content-type&quot;</span><span class="p">:</span> <span class="s2">&quot;application/json&quot;</span><span class="p">},</span>
813+
<span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">,</span>
785814
<span class="n">ssl</span><span class="o">=</span><span class="n">_ssl</span><span class="p">,</span>
786-
<span class="n">auth</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">auth</span><span class="p">,</span>
787815
<span class="p">)</span> <span class="k">as</span> <span class="n">response</span><span class="p">:</span>
788-
<span class="n">raise_for_status_and_print_error</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
816+
<span class="k">assert</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">200</span><span class="p">,</span> <span class="k">await</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
789817
<span class="n">response</span> <span class="o">=</span> <span class="k">await</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
790818

791819
<span class="k">return</span> <span class="n">response</span></div>

docs/_build/html/_modules/gen3/tools/indexing/download_manifest.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,6 @@ <h1>Source code for gen3.tools.indexing.download_manifest</h1><div class="highli
224224
<span class="n">input_record_chunks</span> <span class="o">=</span> <span class="p">(</span>
225225
<span class="s2">&quot;|||&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">,</span> <span class="n">record_chunks</span><span class="p">[</span><span class="n">x</span><span class="p">]))</span> <span class="k">if</span> <span class="n">record_chunks</span> <span class="k">else</span> <span class="s2">&quot;|||&quot;</span>
226226
<span class="p">)</span>
227-
<span class="nb">print</span><span class="p">(</span><span class="n">input_record_chunks</span><span class="p">)</span>
228227

229228
<span class="c1"># write record_checksum chunks to temporary files since the size can overload</span>
230229
<span class="c1"># command line arguments</span>

docs/_build/html/file.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,20 @@ <h1>Gen3 File Class<a class="headerlink" href="#gen3-file-class" title="Permalin
9191
</dl>
9292
</dd></dl>
9393

94+
<dl class="py method">
95+
<dt class="sig sig-object py" id="gen3.file.Gen3File.download_single">
96+
<span class="sig-name descname"><span class="pre">download_single</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">object_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gen3/file.html#Gen3File.download_single"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gen3.file.Gen3File.download_single" title="Permalink to this definition"></a></dt>
97+
<dd><p>Download a single file using its GUID.</p>
98+
<dl class="field-list simple">
99+
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
100+
<dd class="field-odd"><ul class="simple">
101+
<li><p><strong>object_id</strong> (<em>str</em>) – The file’s unique ID</p></li>
102+
<li><p><strong>path</strong> (<em>str</em>) – Path to store the downloaded file at</p></li>
103+
</ul>
104+
</dd>
105+
</dl>
106+
</dd></dl>
107+
94108
<dl class="py method">
95109
<dt class="sig sig-object py" id="gen3.file.Gen3File.get_presigned_url">
96110
<span class="sig-name descname"><span class="pre">get_presigned_url</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">protocol</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/gen3/file.html#Gen3File.get_presigned_url"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gen3.file.Gen3File.get_presigned_url" title="Permalink to this definition"></a></dt>
@@ -199,6 +213,7 @@ <h3>Navigation</h3>
199213
<li class="toctree-l2"><a class="reference internal" href="#gen3.file.Gen3File"><code class="docutils literal notranslate"><span class="pre">Gen3File</span></code></a><ul>
200214
<li class="toctree-l3"><a class="reference internal" href="#gen3.file.Gen3File.delete_file"><code class="docutils literal notranslate"><span class="pre">Gen3File.delete_file()</span></code></a></li>
201215
<li class="toctree-l3"><a class="reference internal" href="#gen3.file.Gen3File.delete_file_locations"><code class="docutils literal notranslate"><span class="pre">Gen3File.delete_file_locations()</span></code></a></li>
216+
<li class="toctree-l3"><a class="reference internal" href="#gen3.file.Gen3File.download_single"><code class="docutils literal notranslate"><span class="pre">Gen3File.download_single()</span></code></a></li>
202217
<li class="toctree-l3"><a class="reference internal" href="#gen3.file.Gen3File.get_presigned_url"><code class="docutils literal notranslate"><span class="pre">Gen3File.get_presigned_url()</span></code></a></li>
203218
<li class="toctree-l3"><a class="reference internal" href="#gen3.file.Gen3File.upload_file"><code class="docutils literal notranslate"><span class="pre">Gen3File.upload_file()</span></code></a></li>
204219
<li class="toctree-l3"><a class="reference internal" href="#gen3.file.Gen3File.upload_file_to_guid"><code class="docutils literal notranslate"><span class="pre">Gen3File.upload_file_to_guid()</span></code></a></li>

0 commit comments

Comments
 (0)