updated hexa and docforge docs

This commit is contained in:
2026-09-15 16:53:19 +05:30
parent 27f76c7831
commit b1f5ce092a
78 changed files with 2653 additions and 54095 deletions

View File

@@ -253,8 +253,6 @@
@@ -278,7 +276,7 @@
<span class="md-ellipsis">
Concepts
Shared Model
</span>
@@ -288,108 +286,6 @@
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Concepts
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../design/" class="md-nav__link">
<span class="md-ellipsis">
hexa — Design (extraction pipeline, Axis/Icici)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../philosophy/" class="md-nav__link">
<span class="md-ellipsis">
hexa — Philosophy
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-ellipsis">
Shared Model
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Shared Model
</label>
@@ -451,10 +347,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
@@ -467,8 +363,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Container
</label>
@@ -532,10 +428,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
@@ -548,8 +444,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_5">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Parsing
</label>
@@ -628,6 +524,24 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml--examples" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml--notes" class="md-nav__link">
<span class="md-ellipsis">
Notes
</span>
</a>
</li>
<li class="md-nav__item">
@@ -656,39 +570,6 @@
</span>
</a>
<nav class="md-nav" aria-label="parse_yaml">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#hexa.parse_yaml.parse_yaml--parameters" class="md-nav__link">
<span class="md-ellipsis">
Parameters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml.parse_yaml--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml.parse_yaml--raises" class="md-nav__link">
<span class="md-ellipsis">
Raises
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -768,10 +649,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="">
@@ -784,8 +665,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Generation
</label>
@@ -870,10 +751,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="">
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
@@ -886,8 +767,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Verification
</label>
@@ -949,10 +830,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_8" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="">
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="">
@@ -965,8 +846,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
CLI
</label>
@@ -1045,6 +926,24 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml--examples" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml--notes" class="md-nav__link">
<span class="md-ellipsis">
Notes
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1073,39 +972,6 @@
</span>
</a>
<nav class="md-nav" aria-label="parse_yaml">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#hexa.parse_yaml.parse_yaml--parameters" class="md-nav__link">
<span class="md-ellipsis">
Parameters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml.parse_yaml--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#hexa.parse_yaml.parse_yaml--raises" class="md-nav__link">
<span class="md-ellipsis">
Raises
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1158,7 +1024,29 @@
<li><strong>port</strong>: a <code>name:</code> mapping whose single key is a class whose value is a
body, or a class key with a <code>...</code> body. A port carries a class shape.</li>
</ul>
<p>Example::</p>
<details class="disambiguation-of-a-mapping-value" open>
<summary>Disambiguation of a mapping value</summary>
<p>A mapping with exactly one key whose value is a non-scalar body (a mapping,
<code>...</code>, or a list) is a <strong>port</strong>. Any other mapping (multiple keys, or all
scalar-typed values) is a <strong>nested struct</strong> of attributes.</p>
</details> <hr />
<h3 id="hexa.parse_yaml--examples">Examples</h3>
<p>Parse a spec into a port tree:</p>
<div class="language-text highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><code>```python
from hexa import parse_yaml
node = parse_yaml(&quot;samples/minimal/sample.yaml&quot;)
print(node)
```
</code></pre></div></td></tr></table></div>
<p>The YAML grammar:</p>
<div class="language-text highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
@@ -1170,7 +1058,10 @@
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code>RootClassName:
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code>```yaml
RootClassName:
attr: type # scalar attribute
source: # nested struct (all scalar sub-attributes)
source_type: str
@@ -1182,16 +1073,14 @@
IngestPort:
source_type: str
methods: {Method: ...}
```
</code></pre></div></td></tr></table></div>
<details class="disambiguation-of-a-mapping-value" open>
<summary>Disambiguation of a mapping value</summary>
<p>A mapping with exactly one key whose value is a non-scalar body (a mapping,
<code>...</code>, or a list) is a <strong>port</strong>. Any other mapping (multiple keys, or all
scalar-typed values) is a <strong>nested struct</strong> of attributes.</p>
</details> <p>See <code>samples/minimal/sample.yaml</code> and
<code>samples/extraction_pipeline/extraction_pipeline.yaml</code> for examples.</p>
<hr />
<h3 id="hexa.parse_yaml--notes">Notes</h3>
<ul>
<li>See <code>samples/minimal/sample.yaml</code> and
<code>samples/extraction_pipeline/extraction_pipeline.yaml</code> for worked examples.</li>
</ul>
@@ -1219,15 +1108,81 @@ scalar-typed values) is a <strong>nested struct</strong> of attributes.</p>
<div class="doc doc-contents ">
<p>Parse a hexa YAML spec file into a :class:<code>PortNode</code> tree.</p>
<h6 id="hexa.parse_yaml.parse_yaml--parameters">Parameters</h6>
<p>path : str | Path
Path to the <code>.yaml</code> file.</p>
<h6 id="hexa.parse_yaml.parse_yaml--returns">Returns</h6>
<p>PortNode
The root node of the parsed tree.</p>
<h6 id="hexa.parse_yaml.parse_yaml--raises">Raises</h6>
<p>ValueError
On structural errors in the YAML.</p>
<p><span class="doc-section-title">Parameters:</span></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>path</code></td>
<td>
<code>str | <span title="pathlib.Path">Path</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Path to the <code>.yaml</code> file.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Name</th> <th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>PortNode</code></td> <td>
<code><a class="autorefs autorefs-internal" title="hexa.model.PortNode" href="../model/#hexa.model.PortNode">PortNode</a></code>
</td>
<td>
<div class="doc-md-description">
<p>The root node of the parsed tree.</p>
</div>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Raises:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>ValueError</code>
</td>
<td>
<div class="doc-md-description">
<p>On structural errors in the YAML.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>