Skip to content

Commit

Permalink
Add nestable terminal status utility (#949) b8a7bb7
Browse files Browse the repository at this point in the history
  • Loading branch information
ofek committed Aug 28, 2023
1 parent e730cd4 commit 1e7c655
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
14 changes: 7 additions & 7 deletions dev/plugins/environment/reference/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,30 +19,30 @@
<span class=p>]</span>
</code></pre></div> </div> </div> </div> <h2 id=life-cycle>Life cycle<a class=headerlink href=#life-cycle title="Permanent link">&para;</a></h2> <p>Whenever an environment is used, the following logic is performed:</p> <div class="doc doc-object doc-function"> <div class="doc doc-contents first"> <details class=quote> <summary>Source code in <code>src/hatch/cli/application.py</code></summary> <div class=highlight><pre><span></span><code><span class=linenos data-linenos="72 "></span><span class=k>def</span> <span class=nf>prepare_environment</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>environment</span><span class=p>):</span>
<span class=linenos data-linenos="73 "></span> <span class=k>if</span> <span class=ow>not</span> <span class=n>environment</span><span class=o>.</span><span class=n>exists</span><span class=p>():</span>
<span class=linenos data-linenos="74 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=sa>f</span><span class=s1>&#39;Creating environment: </span><span class=si>{</span><span class=n>environment</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s1>&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="74 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=sa>f</span><span class=s1>&#39;Creating environment: </span><span class=si>{</span><span class=n>environment</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s1>&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="75 "></span> <span class=n>environment</span><span class=o>.</span><span class=n>create</span><span class=p>()</span>
<span class=linenos data-linenos="76 "></span>
<span class=linenos data-linenos="77 "></span> <span class=k>if</span> <span class=ow>not</span> <span class=n>environment</span><span class=o>.</span><span class=n>skip_install</span><span class=p>:</span>
<span class=linenos data-linenos="78 "></span> <span class=k>if</span> <span class=n>environment</span><span class=o>.</span><span class=n>pre_install_commands</span><span class=p>:</span>
<span class=linenos data-linenos="79 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=s1>&#39;Running pre-installation commands&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="79 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=s1>&#39;Running pre-installation commands&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="80 "></span> <span class=bp>self</span><span class=o>.</span><span class=n>run_shell_commands</span><span class=p>(</span><span class=n>environment</span><span class=p>,</span> <span class=n>environment</span><span class=o>.</span><span class=n>pre_install_commands</span><span class=p>,</span> <span class=n>source</span><span class=o>=</span><span class=s1>&#39;pre-install&#39;</span><span class=p>)</span>
<span class=linenos data-linenos="81 "></span>
<span class=linenos data-linenos="82 "></span> <span class=k>if</span> <span class=n>environment</span><span class=o>.</span><span class=n>dev_mode</span><span class=p>:</span>
<span class=linenos data-linenos="83 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=s1>&#39;Installing project in development mode&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="83 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=s1>&#39;Installing project in development mode&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="84 "></span> <span class=n>environment</span><span class=o>.</span><span class=n>install_project_dev_mode</span><span class=p>()</span>
<span class=linenos data-linenos="85 "></span> <span class=k>else</span><span class=p>:</span>
<span class=linenos data-linenos="86 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=s1>&#39;Installing project&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="86 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=s1>&#39;Installing project&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="87 "></span> <span class=n>environment</span><span class=o>.</span><span class=n>install_project</span><span class=p>()</span>
<span class=linenos data-linenos="88 "></span>
<span class=linenos data-linenos="89 "></span> <span class=k>if</span> <span class=n>environment</span><span class=o>.</span><span class=n>post_install_commands</span><span class=p>:</span>
<span class=linenos data-linenos="90 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=s1>&#39;Running post-installation commands&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="90 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=s1>&#39;Running post-installation commands&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="91 "></span> <span class=bp>self</span><span class=o>.</span><span class=n>run_shell_commands</span><span class=p>(</span><span class=n>environment</span><span class=p>,</span> <span class=n>environment</span><span class=o>.</span><span class=n>post_install_commands</span><span class=p>,</span> <span class=n>source</span><span class=o>=</span><span class=s1>&#39;post-install&#39;</span><span class=p>)</span>
<span class=linenos data-linenos="92 "></span>
<span class=linenos data-linenos="93 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=s1>&#39;Checking dependencies&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="93 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=s1>&#39;Checking dependencies&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="94 "></span> <span class=n>dependencies_in_sync</span> <span class=o>=</span> <span class=n>environment</span><span class=o>.</span><span class=n>dependencies_in_sync</span><span class=p>()</span>
<span class=linenos data-linenos="95 "></span>
<span class=linenos data-linenos="96 "></span> <span class=k>if</span> <span class=ow>not</span> <span class=n>dependencies_in_sync</span><span class=p>:</span>
<span class=linenos data-linenos="97 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status_waiting</span><span class=p>(</span><span class=s1>&#39;Syncing dependencies&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="97 "></span> <span class=k>with</span> <span class=bp>self</span><span class=o>.</span><span class=n>status</span><span class=p>(</span><span class=s1>&#39;Syncing dependencies&#39;</span><span class=p>):</span>
<span class=linenos data-linenos="98 "></span> <span class=n>environment</span><span class=o>.</span><span class=n>sync_dependencies</span><span class=p>()</span>
</code></pre></div> </details> </div> </div><h2 id=build-environments>Build environments<a class=headerlink href=#build-environments title="Permanent link">&para;</a></h2> <p>All environment types should <a href=#hatch.env.plugin.interface.EnvironmentInterface.build_environment>offer support</a> for a special sub-environment in which projects can be built. This environment is used in the following scenarios:</p> <ul> <li>the <a href=../../../cli/reference/#hatch-build><code>build</code></a> command</li> <li>commands that read dependencies, like <a href=../../../cli/reference/#hatch-dep-hash><code>dep hash</code></a>, if any <a href=../../../config/metadata/#dependencies>project dependencies</a> are <a href=../../../config/metadata/#dynamic>set dynamically</a></li> </ul> <div class="doc doc-object doc-class"> <h2 id=hatch.env.plugin.interface.EnvironmentInterface class="doc doc-heading"> <code>EnvironmentInterface</code> <a href=#hatch.env.plugin.interface.EnvironmentInterface class=headerlink title="Permanent link">&para;</a></h2> <div class="doc doc-contents first"> <p>Example usage:</p> <div class="tabbed-set tabbed-alternate" data-tabs=1:2><input checked=checked id=hatch.env.plugin.interface.EnvironmentInterface--__tabbed_1_1 name=hatch.env.plugin.interface.EnvironmentInterface--__tabbed_1 type=radio><input id=hatch.env.plugin.interface.EnvironmentInterface--__tabbed_1_2 name=hatch.env.plugin.interface.EnvironmentInterface--__tabbed_1 type=radio><div class=tabbed-labels><label for=hatch.env.plugin.interface.EnvironmentInterface--__tabbed_1_1><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 16 16"><path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"/></svg></span> plugin.py</label><label for=hatch.env.plugin.interface.EnvironmentInterface--__tabbed_1_2><span class=twemoji><svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 16 16"><path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"/></svg></span> hooks.py</label></div> <div class=tabbed-content> <div class=tabbed-block> <div class=highlight><pre><span></span><code><span class=kn>from</span> <span class=nn>hatch.env.plugin.interface</span> <span class=kn>import</span> <span class=n>EnvironmentInterface</span>

Expand Down
2 changes: 1 addition & 1 deletion dev/search/search_index.json

Large diffs are not rendered by default.

0 comments on commit 1e7c655

Please sign in to comment.