Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,13 @@ __pycache__/

!*.md
!*.rst

# Ignore Sphinx build output by default
_build/

# Allow the documentation build directory
!doc/_build/
!doc/_build/html/

# Track only the Python module index
!doc/_build/html/py-modindex.html
259 changes: 259 additions & 0 deletions doc/_build/html/_modules/hallmark/dothm.html

Large diffs are not rendered by default.

276 changes: 276 additions & 0 deletions doc/_build/html/_modules/hallmark/downloader.html

Large diffs are not rendered by default.

320 changes: 320 additions & 0 deletions doc/_build/html/_modules/hallmark/eht_datatree.html

Large diffs are not rendered by default.

178 changes: 178 additions & 0 deletions doc/_build/html/_modules/hallmark/error.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
<!DOCTYPE html>

<html lang="en" data-content_root="../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>hallmark.error &#8212; hallmark 0.2 documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=61cd365c" />
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css?v=12dfc556" />
<script src="../../_static/documentation_options.js?v=10f1778b"></script>
<script src="../../_static/doctools.js?v=9a2dae69"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />

<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />





</head><body>


<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">


<div class="body" role="main">

<h1>Source code for hallmark.error</h1><div class="highlight"><pre>
<span></span><span class="c1"># Copyright 2026 the Hallmark Authors</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
<span class="c1"># you may not use this file except in compliance with the License.</span>
<span class="c1"># You may obtain a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<span class="c1"># See the License for the specific language governing permissions and</span>
<span class="c1"># limitations under the License.</span>


<span class="sd">&quot;&quot;&quot;Error hierarchy for Hallmark.&quot;&quot;&quot;</span>


<span class="kn">from</span> <span class="nn">pathlib</span> <span class="kn">import</span> <span class="n">Path</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span>

<span class="kn">from</span> <span class="nn">git.exc</span> <span class="kn">import</span> <span class="n">GitError</span><span class="p">,</span> <span class="n">GitCommandError</span>


<div class="viewcode-block" id="HallmarkError">
<a class="viewcode-back" href="../../api.html#hallmark.error.HallmarkError">[docs]</a>
<span class="k">class</span> <span class="nc">HallmarkError</span><span class="p">(</span><span class="ne">RuntimeError</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Base exception for Hallmark-specific failures.&quot;&quot;&quot;</span></div>



<div class="viewcode-block" id="DothmError">
<a class="viewcode-back" href="../../api.html#hallmark.error.DothmError">[docs]</a>
<span class="k">class</span> <span class="nc">DothmError</span><span class="p">(</span><span class="n">HallmarkError</span><span class="p">,</span> <span class="n">GitError</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Raised for `.hm` repository validation and access failures.&quot;&quot;&quot;</span></div>



<div class="viewcode-block" id="CloneError">
<a class="viewcode-back" href="../../api.html#hallmark.error.CloneError">[docs]</a>
<span class="k">class</span> <span class="nc">CloneError</span><span class="p">(</span><span class="n">HallmarkError</span><span class="p">,</span> <span class="n">GitError</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Raised for hallmark clone failures.&quot;&quot;&quot;</span>

<span class="nd">@classmethod</span>
<span class="k">def</span> <span class="nf">from_git_command</span><span class="p">(</span>
<span class="bp">cls</span><span class="p">,</span>
<span class="n">error</span><span class="p">:</span> <span class="n">GitCommandError</span><span class="p">,</span>
<span class="n">fallback</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
<span class="n">clone_path</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Path</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
<span class="n">display_path</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Path</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
<span class="p">)</span> <span class="o">-&gt;</span> <span class="s2">&quot;CloneError&quot;</span><span class="p">:</span>
<span class="n">text</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="n">stderr</span> <span class="ow">or</span> <span class="n">fallback</span> <span class="ow">or</span> <span class="n">error</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">if</span> <span class="s2">&quot;fatal:&quot;</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="p">[</span><span class="n">text</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s2">&quot;fatal:&quot;</span><span class="p">):]</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">&quot; &#39;&quot;</span><span class="p">)</span>

<span class="k">if</span> <span class="n">clone_path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">display_path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">clone_path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">clone_path</span><span class="p">)</span>
<span class="n">display_path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">display_path</span><span class="p">)</span>
<span class="k">for</span> <span class="n">candidate</span> <span class="ow">in</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">clone_path</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">clone_path</span><span class="o">.</span><span class="n">resolve</span><span class="p">())):</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">candidate</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">display_path</span><span class="p">))</span>

<span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></div>



<div class="viewcode-block" id="DestinationExistsError">
<a class="viewcode-back" href="../../api.html#hallmark.error.DestinationExistsError">[docs]</a>
<span class="k">class</span> <span class="nc">DestinationExistsError</span><span class="p">(</span><span class="n">CloneError</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Raised when clone destination already exists.&quot;&quot;&quot;</span></div>


<div class="viewcode-block" id="CheckoutError">
<a class="viewcode-back" href="../../api.html#hallmark.error.CheckoutError">[docs]</a>
<span class="k">class</span> <span class="nc">CheckoutError</span><span class="p">(</span><span class="n">HallmarkError</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Raised when a hallmark checkout cannot proceed safely.&quot;&quot;&quot;</span></div>

</pre></div>

</div>

</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../../index.html">hallmark</a></h1>








<h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../design.html">Design</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../usecase.html">Use Cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../api.html">API Reference</a></li>
</ul>

<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="../../index.html">Documentation overview</a><ul>
<li><a href="../index.html">Module code</a><ul>
</ul></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>








</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2025, the Hallmark Authors.

|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.3.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>

</div>




</body>
</html>
Loading
Loading