Deployed b1a66cb with MkDocs version: 1.3.0
This commit is contained in:
parent
0683061983
commit
7305d2ead3
38 changed files with 3566 additions and 2820 deletions
|
|
@ -48,6 +48,19 @@
|
|||
|
||||
|
||||
|
||||
<meta property="og:title" content="">
|
||||
<meta property="og:site_name" content="">
|
||||
<meta property="og:url" content="">
|
||||
<meta property="og:description" content="Transform your prototype AI code into production-ready software.">
|
||||
<meta property="og:type" content="">
|
||||
<meta property="og:image" content=https://great-ai.scoutinscience.com/media/og-image.png>
|
||||
|
||||
<style>
|
||||
.jupyter-wrapper a {
|
||||
color: var(--md-typeset-a-color) !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
|
@ -351,6 +364,20 @@
|
|||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../how-to-guides/install/" class="md-nav__link">
|
||||
Installation guide
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../how-to-guides/create-service/" class="md-nav__link">
|
||||
How to create a GreatAI service
|
||||
|
|
@ -772,7 +799,7 @@
|
|||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../examples/simple/data/" class="md-nav__link">
|
||||
Train a domain classifier on the semantic scholar dataset
|
||||
Simple example: data engineering
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
|
@ -786,7 +813,7 @@
|
|||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../examples/simple/train/" class="md-nav__link">
|
||||
Train a domain classifier on the semantic scholar dataset
|
||||
Optimise and train a model
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
|
@ -800,7 +827,7 @@
|
|||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../examples/simple/deploy/" class="md-nav__link">
|
||||
Train a domain classifier on the semantic scholar dataset
|
||||
Hardening and deployment
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
|
@ -1010,6 +1037,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="https://github.com/schmelczer/great-ai/edit/main/docs/reference/utilities.md" title="Edit this page" class="md-content__button md-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
|
||||
|
|
@ -3161,6 +3189,7 @@ which is between 1 and <code>chunk_size</code>.</p>
|
|||
<p>Turn a stream of chunks of items into a stream of items (flatten operation).</p>
|
||||
<p>The inverse operation of <a class="autorefs autorefs-internal" href="#great_ai.utilities.chunk.chunk">chunk</a>.
|
||||
Useful for parallel processing.</p>
|
||||
<p>Similar to itertools.chain but ignores <code>None</code> chunks.</p>
|
||||
|
||||
<p><strong>Examples:</strong></p>
|
||||
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="gp">>>> </span><span class="nb">list</span><span class="p">(</span><span class="n">unchunk</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">],</span> <span class="p">[</span><span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">],</span> <span class="p">[</span><span class="mi">9</span><span class="p">]]))</span>
|
||||
|
|
@ -3230,26 +3259,30 @@ Useful for parallel processing.</p>
|
|||
<span class="normal"><a href="#__codelineno-0-22">22</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-23">23</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-24">24</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-25">25</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="k">def</span> <span class="nf">unchunk</span><span class="p">(</span><span class="n">chunks</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Optional</span><span class="p">[</span><span class="n">Iterable</span><span class="p">[</span><span class="n">T</span><span class="p">]]])</span> <span class="o">-></span> <span class="n">Iterable</span><span class="p">[</span><span class="n">T</span><span class="p">]:</span>
|
||||
<span class="normal"><a href="#__codelineno-0-25">25</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-26">26</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-27">27</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="k">def</span> <span class="nf">unchunk</span><span class="p">(</span><span class="n">chunks</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Optional</span><span class="p">[</span><span class="n">Iterable</span><span class="p">[</span><span class="n">T</span><span class="p">]]])</span> <span class="o">-></span> <span class="n">Iterable</span><span class="p">[</span><span class="n">T</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-7" name="__codelineno-0-7"></a> <span class="sd">"""Turn a stream of chunks of items into a stream of items (flatten operation).</span>
|
||||
<a id="__codelineno-0-8" name="__codelineno-0-8"></a>
|
||||
<a id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="sd"> The inverse operation of [chunk][great_ai.utilities.chunk.chunk].</span>
|
||||
<a id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="sd"> Useful for parallel processing.</span>
|
||||
<a id="__codelineno-0-11" name="__codelineno-0-11"></a>
|
||||
<a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="sd"> Examples:</span>
|
||||
<a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="sd"> >>> list(unchunk([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]))</span>
|
||||
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="sd"> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</span>
|
||||
<a id="__codelineno-0-15" name="__codelineno-0-15"></a>
|
||||
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="sd"> chunks: Stream of chunks to unpack.</span>
|
||||
<a id="__codelineno-0-18" name="__codelineno-0-18"></a>
|
||||
<a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="sd"> Yields:</span>
|
||||
<a id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="sd"> The next item in the flattened iterable.</span>
|
||||
<a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-22" name="__codelineno-0-22"></a>
|
||||
<a id="__codelineno-0-23" name="__codelineno-0-23"></a> <span class="k">for</span> <span class="n">chunk</span> <span class="ow">in</span> <span class="n">chunks</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="k">if</span> <span class="n">chunk</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="k">yield from</span> <span class="n">chunk</span>
|
||||
<a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="sd"> Similar to itertools.chain but ignores `None` chunks.</span>
|
||||
<a id="__codelineno-0-13" name="__codelineno-0-13"></a>
|
||||
<a id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="sd"> Examples:</span>
|
||||
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd"> >>> list(unchunk([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]))</span>
|
||||
<a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="sd"> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</span>
|
||||
<a id="__codelineno-0-17" name="__codelineno-0-17"></a>
|
||||
<a id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="sd"> chunks: Stream of chunks to unpack.</span>
|
||||
<a id="__codelineno-0-20" name="__codelineno-0-20"></a>
|
||||
<a id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="sd"> Yields:</span>
|
||||
<a id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="sd"> The next item in the flattened iterable.</span>
|
||||
<a id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-24" name="__codelineno-0-24"></a>
|
||||
<a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="k">for</span> <span class="n">chunk</span> <span class="ow">in</span> <span class="n">chunks</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-26" name="__codelineno-0-26"></a> <span class="k">if</span> <span class="n">chunk</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-27" name="__codelineno-0-27"></a> <span class="k">yield from</span> <span class="n">chunk</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
@ -3463,7 +3496,9 @@ with the <code>dict</code> interface.</p>
|
|||
<span class="normal"><a href="#__codelineno-0-155">155</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-156">156</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-157">157</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-158">158</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">class</span> <span class="nc">ConfigFile</span><span class="p">(</span><span class="n">Mapping</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]):</span>
|
||||
<span class="normal"><a href="#__codelineno-0-158">158</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-159">159</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-160">160</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">class</span> <span class="nc">ConfigFile</span><span class="p">(</span><span class="n">Mapping</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]):</span>
|
||||
<a id="__codelineno-0-13" name="__codelineno-0-13"></a> <span class="sd">"""A small and safe `INI`-style configuration loader with `dict` and `ENV` support.</span>
|
||||
<a id="__codelineno-0-14" name="__codelineno-0-14"></a>
|
||||
<a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="sd"> The values can be accessed using both dot- and index-notation. It is compatible</span>
|
||||
|
|
@ -3549,67 +3584,69 @@ with the <code>dict</code> interface.</p>
|
|||
<a id="__codelineno-0-95" name="__codelineno-0-95"></a> <span class="n">value</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">v</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">values</span> <span class="k">if</span> <span class="n">v</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-96" name="__codelineno-0-96"></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-97" name="__codelineno-0-97"></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-98" name="__codelineno-0-98"></a> <span class="sa">f</span><span class="s2">"Cannot parse config file (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_path</span><span class="o">.</span><span class="n">absolute</span><span class="p">()</span><span class="si">}</span><span class="s2">), error at key `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">`"</span>
|
||||
<a id="__codelineno-0-99" name="__codelineno-0-99"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-100" name="__codelineno-0-100"></a>
|
||||
<a id="__codelineno-0-101" name="__codelineno-0-101"></a> <span class="n">already_exists</span> <span class="o">=</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span>
|
||||
<a id="__codelineno-0-102" name="__codelineno-0-102"></a> <span class="k">if</span> <span class="n">already_exists</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-103" name="__codelineno-0-103"></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">ENVIRONMENT_VARIABLE_KEY_PREFIX</span><span class="si">}</span><span class="s2">:"</span>
|
||||
<a id="__codelineno-0-104" name="__codelineno-0-104"></a> <span class="p">):</span>
|
||||
<a id="__codelineno-0-105" name="__codelineno-0-105"></a> <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-106" name="__codelineno-0-106"></a> <span class="sa">f</span><span class="s2">"Key `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">` has been already defined and its value is `</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="si">}</span><span class="s2">`"</span>
|
||||
<a id="__codelineno-0-107" name="__codelineno-0-107"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-108" name="__codelineno-0-108"></a>
|
||||
<a id="__codelineno-0-109" name="__codelineno-0-109"></a> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">ENVIRONMENT_VARIABLE_KEY_PREFIX</span><span class="si">}</span><span class="s2">:"</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-110" name="__codelineno-0-110"></a> <span class="n">_</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">":"</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-111" name="__codelineno-0-111"></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-112" name="__codelineno-0-112"></a> <span class="n">issue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"""The value of `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">` contains the "</span><span class="si">{</span>
|
||||
<a id="__codelineno-0-113" name="__codelineno-0-113"></a> <span class="bp">self</span><span class="o">.</span><span class="n">ENVIRONMENT_VARIABLE_KEY_PREFIX</span>
|
||||
<a id="__codelineno-0-114" name="__codelineno-0-114"></a> <span class="si">}</span><span class="s2">` prefix but `</span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">` is not defined as an environment variable"""</span>
|
||||
<a id="__codelineno-0-115" name="__codelineno-0-115"></a> <span class="k">if</span> <span class="n">already_exists</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-116" name="__codelineno-0-116"></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-117" name="__codelineno-0-117"></a> <span class="sa">f</span><span class="s2">"""</span><span class="si">{</span><span class="n">issue</span><span class="si">}</span><span class="s2">, using the default value defined above (`</span><span class="si">{</span>
|
||||
<a id="__codelineno-0-118" name="__codelineno-0-118"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
<a id="__codelineno-0-119" name="__codelineno-0-119"></a> <span class="si">}</span><span class="s2">`)"""</span>
|
||||
<a id="__codelineno-0-120" name="__codelineno-0-120"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-121" name="__codelineno-0-121"></a> <span class="k">continue</span>
|
||||
<a id="__codelineno-0-122" name="__codelineno-0-122"></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ignore_missing</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-123" name="__codelineno-0-123"></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">issue</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-124" name="__codelineno-0-124"></a> <span class="k">else</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-125" name="__codelineno-0-125"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-126" name="__codelineno-0-126"></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">issue</span><span class="si">}</span><span class="s2"> and no default value has been provided"</span>
|
||||
<a id="__codelineno-0-127" name="__codelineno-0-127"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-128" name="__codelineno-0-128"></a> <span class="k">else</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-129" name="__codelineno-0-129"></a> <span class="n">value</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">value</span><span class="p">]</span>
|
||||
<a id="__codelineno-0-130" name="__codelineno-0-130"></a>
|
||||
<a id="__codelineno-0-131" name="__codelineno-0-131"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
|
||||
<a id="__codelineno-0-98" name="__codelineno-0-98"></a> <span class="sa">f</span><span class="s2">"""Cannot parse config file (</span><span class="si">{</span>
|
||||
<a id="__codelineno-0-99" name="__codelineno-0-99"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_path</span><span class="o">.</span><span class="n">absolute</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-100" name="__codelineno-0-100"></a> <span class="si">}</span><span class="s2">), error at key `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">`"""</span>
|
||||
<a id="__codelineno-0-101" name="__codelineno-0-101"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-102" name="__codelineno-0-102"></a>
|
||||
<a id="__codelineno-0-103" name="__codelineno-0-103"></a> <span class="n">already_exists</span> <span class="o">=</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span>
|
||||
<a id="__codelineno-0-104" name="__codelineno-0-104"></a> <span class="k">if</span> <span class="n">already_exists</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-105" name="__codelineno-0-105"></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">ENVIRONMENT_VARIABLE_KEY_PREFIX</span><span class="si">}</span><span class="s2">:"</span>
|
||||
<a id="__codelineno-0-106" name="__codelineno-0-106"></a> <span class="p">):</span>
|
||||
<a id="__codelineno-0-107" name="__codelineno-0-107"></a> <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-108" name="__codelineno-0-108"></a> <span class="sa">f</span><span class="s2">"Key `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">` has been already defined and its value is `</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="si">}</span><span class="s2">`"</span>
|
||||
<a id="__codelineno-0-109" name="__codelineno-0-109"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-110" name="__codelineno-0-110"></a>
|
||||
<a id="__codelineno-0-111" name="__codelineno-0-111"></a> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">ENVIRONMENT_VARIABLE_KEY_PREFIX</span><span class="si">}</span><span class="s2">:"</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-112" name="__codelineno-0-112"></a> <span class="n">_</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">":"</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-113" name="__codelineno-0-113"></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-114" name="__codelineno-0-114"></a> <span class="n">issue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"""The value of `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">` contains the "</span><span class="si">{</span>
|
||||
<a id="__codelineno-0-115" name="__codelineno-0-115"></a> <span class="bp">self</span><span class="o">.</span><span class="n">ENVIRONMENT_VARIABLE_KEY_PREFIX</span>
|
||||
<a id="__codelineno-0-116" name="__codelineno-0-116"></a> <span class="si">}</span><span class="s2">` prefix but `</span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">` is not defined as an environment variable"""</span>
|
||||
<a id="__codelineno-0-117" name="__codelineno-0-117"></a> <span class="k">if</span> <span class="n">already_exists</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-118" name="__codelineno-0-118"></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-119" name="__codelineno-0-119"></a> <span class="sa">f</span><span class="s2">"""</span><span class="si">{</span><span class="n">issue</span><span class="si">}</span><span class="s2">, using the default value defined above (`</span><span class="si">{</span>
|
||||
<a id="__codelineno-0-120" name="__codelineno-0-120"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
<a id="__codelineno-0-121" name="__codelineno-0-121"></a> <span class="si">}</span><span class="s2">`)"""</span>
|
||||
<a id="__codelineno-0-122" name="__codelineno-0-122"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-123" name="__codelineno-0-123"></a> <span class="k">continue</span>
|
||||
<a id="__codelineno-0-124" name="__codelineno-0-124"></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ignore_missing</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-125" name="__codelineno-0-125"></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">issue</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-126" name="__codelineno-0-126"></a> <span class="k">else</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-127" name="__codelineno-0-127"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-128" name="__codelineno-0-128"></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">issue</span><span class="si">}</span><span class="s2"> and no default value has been provided"</span>
|
||||
<a id="__codelineno-0-129" name="__codelineno-0-129"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-130" name="__codelineno-0-130"></a> <span class="k">else</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-131" name="__codelineno-0-131"></a> <span class="n">value</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">value</span><span class="p">]</span>
|
||||
<a id="__codelineno-0-132" name="__codelineno-0-132"></a>
|
||||
<a id="__codelineno-0-133" name="__codelineno-0-133"></a> <span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-134" name="__codelineno-0-134"></a> <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-135" name="__codelineno-0-135"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
<a id="__codelineno-0-136" name="__codelineno-0-136"></a> <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-137" name="__codelineno-0-137"></a> <span class="sa">f</span><span class="s2">"Key `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">` is not found in configuration file (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_path</span><span class="o">.</span><span class="n">absolute</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span>
|
||||
<a id="__codelineno-0-138" name="__codelineno-0-138"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-139" name="__codelineno-0-139"></a>
|
||||
<a id="__codelineno-0-140" name="__codelineno-0-140"></a> <span class="fm">__getitem__</span> <span class="o">=</span> <span class="fm">__getattr__</span>
|
||||
<a id="__codelineno-0-133" name="__codelineno-0-133"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
|
||||
<a id="__codelineno-0-134" name="__codelineno-0-134"></a>
|
||||
<a id="__codelineno-0-135" name="__codelineno-0-135"></a> <span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-136" name="__codelineno-0-136"></a> <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-137" name="__codelineno-0-137"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
<a id="__codelineno-0-138" name="__codelineno-0-138"></a> <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-139" name="__codelineno-0-139"></a> <span class="sa">f</span><span class="s2">"Key `</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2">` is not found in configuration file (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_path</span><span class="o">.</span><span class="n">absolute</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span>
|
||||
<a id="__codelineno-0-140" name="__codelineno-0-140"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-141" name="__codelineno-0-141"></a>
|
||||
<a id="__codelineno-0-142" name="__codelineno-0-142"></a> <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Iterator</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-143" name="__codelineno-0-143"></a> <span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-144" name="__codelineno-0-144"></a>
|
||||
<a id="__codelineno-0-145" name="__codelineno-0-145"></a> <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-146" name="__codelineno-0-146"></a> <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-147" name="__codelineno-0-147"></a>
|
||||
<a id="__codelineno-0-148" name="__codelineno-0-148"></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">KeysView</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-149" name="__codelineno-0-149"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-150" name="__codelineno-0-150"></a>
|
||||
<a id="__codelineno-0-151" name="__codelineno-0-151"></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">ValuesView</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-152" name="__codelineno-0-152"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-153" name="__codelineno-0-153"></a>
|
||||
<a id="__codelineno-0-154" name="__codelineno-0-154"></a> <span class="k">def</span> <span class="nf">items</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">ItemsView</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-155" name="__codelineno-0-155"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-156" name="__codelineno-0-156"></a>
|
||||
<a id="__codelineno-0-157" name="__codelineno-0-157"></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-158" name="__codelineno-0-158"></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">(path=</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_path</span><span class="si">}</span><span class="s2">) </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="si">}</span><span class="s2">"</span>
|
||||
<a id="__codelineno-0-142" name="__codelineno-0-142"></a> <span class="fm">__getitem__</span> <span class="o">=</span> <span class="fm">__getattr__</span>
|
||||
<a id="__codelineno-0-143" name="__codelineno-0-143"></a>
|
||||
<a id="__codelineno-0-144" name="__codelineno-0-144"></a> <span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Iterator</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-145" name="__codelineno-0-145"></a> <span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-146" name="__codelineno-0-146"></a>
|
||||
<a id="__codelineno-0-147" name="__codelineno-0-147"></a> <span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-148" name="__codelineno-0-148"></a> <span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-149" name="__codelineno-0-149"></a>
|
||||
<a id="__codelineno-0-150" name="__codelineno-0-150"></a> <span class="k">def</span> <span class="nf">keys</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">KeysView</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-151" name="__codelineno-0-151"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-152" name="__codelineno-0-152"></a>
|
||||
<a id="__codelineno-0-153" name="__codelineno-0-153"></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">ValuesView</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-154" name="__codelineno-0-154"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="o">.</span><span class="n">values</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-155" name="__codelineno-0-155"></a>
|
||||
<a id="__codelineno-0-156" name="__codelineno-0-156"></a> <span class="k">def</span> <span class="nf">items</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">ItemsView</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]:</span>
|
||||
<a id="__codelineno-0-157" name="__codelineno-0-157"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-158" name="__codelineno-0-158"></a>
|
||||
<a id="__codelineno-0-159" name="__codelineno-0-159"></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-160" name="__codelineno-0-160"></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">(path=</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_path</span><span class="o">.</span><span class="n">as_posix</span><span class="p">()</span><span class="si">}</span><span class="s2">) </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_key_values</span><span class="si">}</span><span class="s2">"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue