Skip to content

Commit e525234

Browse files
committed
Deploying to gh-pages from @ 71599b9 🚀
1 parent 19d734c commit e525234

33 files changed

+1193
-1789
lines changed

_modules/functools.html

-1,349
This file was deleted.

_modules/index.html

+1-6
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,6 @@ <h1 id="modules-index--page-root">
287287
All modules for which code is available
288288
</h1>
289289
<ul>
290-
<li>
291-
<a href="functools.html">
292-
functools
293-
</a>
294-
</li>
295290
<li>
296291
<a href="oras/auth.html">
297292
oras.auth
@@ -375,7 +370,7 @@ <h1 id="modules-index--page-root">
375370
© Copyright 2023, Oras Python Developers.
376371
</div>
377372
Last updated on
378-
Oct 21, 2024.
373+
Nov 13, 2024.
379374
<br/>
380375
Created using
381376
<a href="http://www.sphinx-doc.org/">

_modules/oras/auth.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ <h1 id="modules-oras-auth--page-root">
342342
© Copyright 2023, Oras Python Developers.
343343
</div>
344344
Last updated on
345-
Oct 21, 2024.
345+
Nov 13, 2024.
346346
<br/>
347347
Created using
348348
<a href="http://www.sphinx-doc.org/">

_modules/oras/container.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ <h1 id="modules-oras-container--page-root">
454454
© Copyright 2023, Oras Python Developers.
455455
</div>
456456
Last updated on
457-
Oct 21, 2024.
457+
Nov 13, 2024.
458458
<br/>
459459
Created using
460460
<a href="http://www.sphinx-doc.org/">

_modules/oras/decorator.html

+20-52
Original file line numberDiff line numberDiff line change
@@ -298,88 +298,56 @@ <h1 id="modules-oras-decorator--page-root">
298298
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">"Apache-2.0"</span>
299299

300300
<span class="kn">import</span> <span class="nn">time</span>
301-
<span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">partial</span><span class="p">,</span> <span class="n">update_wrapper</span>
301+
<span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">wraps</span>
302302

303303
<span class="kn">import</span> <span class="nn">oras.auth</span>
304304
<span class="kn">from</span> <span class="nn">oras.logger</span> <span class="kn">import</span> <span class="n">logger</span>
305305

306306

307-
<div class="viewcode-block" id="Decorator">
308-
<a class="viewcode-back" href="../../source/oras.html#oras.decorator.Decorator">[docs]</a>
309-
<span class="k">class</span> <span class="nc">Decorator</span><span class="p">:</span>
310-
<span class="w"> </span><span class="sd">"""</span>
311-
<span class="sd"> Shared parent decorator class</span>
312-
<span class="sd"> """</span>
313-
314-
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">):</span>
315-
<span class="n">update_wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">)</span>
316-
<span class="bp">self</span><span class="o">.</span><span class="n">func</span> <span class="o">=</span> <span class="n">func</span>
317-
318-
<span class="k">def</span> <span class="fm">__get__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">objtype</span><span class="p">):</span>
319-
<span class="k">return</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="fm">__call__</span><span class="p">,</span> <span class="n">obj</span><span class="p">)</span></div>
320-
321-
322-
323307
<div class="viewcode-block" id="ensure_container">
324308
<a class="viewcode-back" href="../../source/oras.html#oras.decorator.ensure_container">[docs]</a>
325-
<span class="k">class</span> <span class="nc">ensure_container</span><span class="p">(</span><span class="n">Decorator</span><span class="p">):</span>
309+
<span class="k">def</span> <span class="nf">ensure_container</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
326310
<span class="w"> </span><span class="sd">"""</span>
327311
<span class="sd"> Ensure the first argument is a container, and not a string.</span>
328312
<span class="sd"> """</span>
329313

330-
<span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
314+
<span class="nd">@wraps</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
315+
<span class="k">def</span> <span class="nf">wrapper</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
331316
<span class="k">if</span> <span class="s2">"container"</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
332317
<span class="n">kwargs</span><span class="p">[</span><span class="s2">"container"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">get_container</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s2">"container"</span><span class="p">])</span>
333318
<span class="k">elif</span> <span class="n">args</span><span class="p">:</span>
334319
<span class="n">container</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">get_container</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
335320
<span class="n">args</span> <span class="o">=</span> <span class="p">(</span><span class="n">container</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
336-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
337-
338-
339-
340-
<div class="viewcode-block" id="classretry">
341-
<a class="viewcode-back" href="../../source/oras.html#oras.decorator.classretry">[docs]</a>
342-
<span class="k">class</span> <span class="nc">classretry</span><span class="p">(</span><span class="n">Decorator</span><span class="p">):</span>
343-
<span class="w"> </span><span class="sd">"""</span>
344-
<span class="sd"> Retry a function that is part of a class</span>
345-
<span class="sd"> """</span>
346-
347-
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">,</span> <span class="n">attempts</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
348-
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
349-
<span class="bp">self</span><span class="o">.</span><span class="n">attempts</span> <span class="o">=</span> <span class="n">attempts</span>
350-
<span class="bp">self</span><span class="o">.</span><span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span>
321+
<span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
351322

352-
<span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
353-
<span class="n">attempt</span> <span class="o">=</span> <span class="mi">0</span>
354-
<span class="n">attempts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">attempts</span>
355-
<span class="n">timeout</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">timeout</span>
356-
<span class="k">while</span> <span class="n">attempt</span> <span class="o">&lt;</span> <span class="n">attempts</span><span class="p">:</span>
357-
<span class="k">try</span><span class="p">:</span>
358-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
359-
<span class="k">except</span> <span class="n">oras</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">AuthenticationException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
360-
<span class="k">raise</span> <span class="n">e</span>
361-
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
362-
<span class="n">sleep</span> <span class="o">=</span> <span class="n">timeout</span> <span class="o">+</span> <span class="mi">3</span><span class="o">**</span><span class="n">attempt</span>
363-
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Retrying in </span><span class="si">{</span><span class="n">sleep</span><span class="si">}</span><span class="s2"> seconds - error: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
364-
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">sleep</span><span class="p">)</span>
365-
<span class="n">attempt</span> <span class="o">+=</span> <span class="mi">1</span>
366-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
323+
<span class="k">return</span> <span class="n">wrapper</span></div>
367324

368325

369326

370327
<div class="viewcode-block" id="retry">
371328
<a class="viewcode-back" href="../../source/oras.html#oras.decorator.retry">[docs]</a>
372-
<span class="k">def</span> <span class="nf">retry</span><span class="p">(</span><span class="n">attempts</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
329+
<span class="k">def</span> <span class="nf">retry</span><span class="p">(</span><span class="n">attempts</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
373330
<span class="w"> </span><span class="sd">"""</span>
374331
<span class="sd"> A simple retry decorator</span>
375332
<span class="sd"> """</span>
376333

377334
<span class="k">def</span> <span class="nf">decorator</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
335+
<span class="nd">@wraps</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
378336
<span class="k">def</span> <span class="nf">inner</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
379337
<span class="n">attempt</span> <span class="o">=</span> <span class="mi">0</span>
380338
<span class="k">while</span> <span class="n">attempt</span> <span class="o">&lt;</span> <span class="n">attempts</span><span class="p">:</span>
381339
<span class="k">try</span><span class="p">:</span>
382-
<span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
340+
<span class="n">res</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
341+
<span class="k">if</span> <span class="n">res</span><span class="o">.</span><span class="n">status_code</span> <span class="o">==</span> <span class="mi">500</span><span class="p">:</span>
342+
<span class="k">try</span><span class="p">:</span>
343+
<span class="n">msg</span> <span class="o">=</span> <span class="n">res</span><span class="o">.</span><span class="n">json</span><span class="p">()</span>
344+
<span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="n">msg</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"errors"</span><span class="p">,</span> <span class="p">[]):</span>
345+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">error</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">"message"</span> <span class="ow">in</span> <span class="n">error</span><span class="p">:</span>
346+
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error</span><span class="p">[</span><span class="s2">"message"</span><span class="p">])</span>
347+
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
348+
<span class="k">pass</span>
349+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Issue with </span><span class="si">{</span><span class="n">res</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">url</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">res</span><span class="o">.</span><span class="n">reason</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
350+
<span class="k">return</span> <span class="n">res</span>
383351
<span class="k">except</span> <span class="n">oras</span><span class="o">.</span><span class="n">auth</span><span class="o">.</span><span class="n">AuthenticationException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
384352
<span class="k">raise</span> <span class="n">e</span>
385353
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@@ -412,7 +380,7 @@ <h1 id="modules-oras-decorator--page-root">
412380
© Copyright 2023, Oras Python Developers.
413381
</div>
414382
Last updated on
415-
Oct 21, 2024.
383+
Nov 13, 2024.
416384
<br/>
417385
Created using
418386
<a href="http://www.sphinx-doc.org/">

_modules/oras/defaults.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ <h1 id="modules-oras-defaults--page-root">
365365
© Copyright 2023, Oras Python Developers.
366366
</div>
367367
Last updated on
368-
Oct 21, 2024.
368+
Nov 13, 2024.
369369
<br/>
370370
Created using
371371
<a href="http://www.sphinx-doc.org/">

_modules/oras/logger.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ <h1 id="modules-oras-logger--page-root">
675675
© Copyright 2023, Oras Python Developers.
676676
</div>
677677
Last updated on
678-
Oct 21, 2024.
678+
Nov 13, 2024.
679679
<br/>
680680
Created using
681681
<a href="http://www.sphinx-doc.org/">

_modules/oras/main/login.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ <h1 id="modules-oras-main-login--page-root">
370370
© Copyright 2023, Oras Python Developers.
371371
</div>
372372
Last updated on
373-
Oct 21, 2024.
373+
Nov 13, 2024.
374374
<br/>
375375
Created using
376376
<a href="http://www.sphinx-doc.org/">

_modules/oras/oci.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ <h1 id="modules-oras-oci--page-root">
528528
© Copyright 2023, Oras Python Developers.
529529
</div>
530530
Last updated on
531-
Oct 21, 2024.
531+
Nov 13, 2024.
532532
<br/>
533533
Created using
534534
<a href="http://www.sphinx-doc.org/">

0 commit comments

Comments
 (0)