feat: collect dagpipe wiki, refresh lib and mcp artifacts

Enables dagpipe wiki on the docs hub alongside lib and mcp, removes stale nested lib pages, and picks up regenerated GSDFC docstrings in the MCP bundle.
This commit is contained in:
2026-09-16 15:43:14 +05:30
parent a51082fe77
commit 7aadae1736
82 changed files with 27200 additions and 16274 deletions

View File

@@ -494,9 +494,9 @@
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.__hash__--returns" class="md-nav__link">
<a href="#dagpipe.node.AsyncNode.__new__" class="md-nav__link">
<span class="md-ellipsis">
Returns
__new__
</span>
</a>
@@ -509,15 +509,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.__repr__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -527,15 +518,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.__str__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -572,6 +554,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.resolve" class="md-nav__link">
<span class="md-ellipsis">
resolve
</span>
</a>
</li>
<li class="md-nav__item">
@@ -638,15 +629,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.Node.__hash__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -665,15 +647,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.Node.__repr__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -683,15 +656,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.Node.__str__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1115,9 +1079,9 @@
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.__hash__--returns" class="md-nav__link">
<a href="#dagpipe.node.AsyncNode.__new__" class="md-nav__link">
<span class="md-ellipsis">
Returns
__new__
</span>
</a>
@@ -1130,15 +1094,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.__repr__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1148,15 +1103,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.__str__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1193,6 +1139,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.AsyncNode.resolve" class="md-nav__link">
<span class="md-ellipsis">
resolve
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1259,15 +1214,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.Node.__hash__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1286,15 +1232,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.Node.__repr__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1304,15 +1241,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dagpipe.node.Node.__str__--returns" class="md-nav__link">
<span class="md-ellipsis">
Returns
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1496,8 +1424,115 @@ an async engine is required.</p>
<div class="doc doc-contents ">
<p>Return stable hash based on node ID.</p>
<h6 id="dagpipe.node.AsyncNode.__hash__--returns">Returns</h6>
<p>int</p>
<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>int</code></td> <td>
<code>int</code>
</td>
<td>
<div class="doc-md-description">
<p>Hash of the node ID, allowing nodes to be used as dict keys.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="dagpipe.node.AsyncNode.__new__" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">__new__</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="fm">__new__</span><span class="p">(</span><span class="o">*</span><span class="nf">args</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AsyncNode</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Create or reuse an async node instance.</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>*args</code></td>
<td>
<code><span title="typing.Any">Any</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Positional constructor arguments forwarded to <code>__init__</code>.</p>
</div>
</td>
<td>
<code>()</code>
</td>
</tr>
<tr class="doc-section-item">
<td><code>**kwargs</code></td>
<td>
<code><span title="typing.Any">Any</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Keyword constructor arguments forwarded to <code>__init__</code>.</p>
</div>
</td>
<td>
<code>{}</code>
</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>AsyncNode</code></td> <td>
<code><a class="autorefs autorefs-internal" title="dagpipe.node.AsyncNode" href="../dagpipe/node/#dagpipe.node.AsyncNode">AsyncNode</a></code>
</td>
<td>
<div class="doc-md-description">
<p>A fresh instance for subclasses declaring a parameterized
<code>__init__</code>, or the shared singleton for stateless subclasses.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@@ -1516,9 +1551,30 @@ an async engine is required.</p>
<div class="doc doc-contents ">
<p>Return debug representation.</p>
<h6 id="dagpipe.node.AsyncNode.__repr__--returns">Returns</h6>
<p>str</p>
<p>Return computation identity based on node ID.</p>
<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>str</code></td> <td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>String of the form <code>&lt;Node {id}&gt;</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@@ -1537,9 +1593,30 @@ an async engine is required.</p>
<div class="doc doc-contents ">
<p>Return display representation.</p>
<h6 id="dagpipe.node.AsyncNode.__str__--returns">Returns</h6>
<p>str</p>
<p>Return user-facing display name.</p>
<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>str</code></td> <td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>String of the form <code>&lt;Node {name}&gt;</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@@ -1761,6 +1838,29 @@ an async engine is required.</p>
<p>Return whether this node executes asynchronously.</p>
<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>bool</code></td> <td>
<code>bool</code>
</td>
<td>
<div class="doc-md-description">
<p>True if the node is an <code>AsyncNode</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
@@ -1843,6 +1943,82 @@ an async engine is required.</p>
<div class="doc doc-object doc-function">
<h6 id="dagpipe.node.AsyncNode.resolve" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">resolve</span>
</h6>
<div class="language-python doc-signature highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nf">resolve</span><span class="p">(</span><span class="n">state</span><span class="p">:</span> <span class="n">State</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">State</span><span class="p">]</span>
</span></code></pre></div></td></tr></table></div>
<div class="doc doc-contents ">
<p>Execute no-op resolution in sync contexts.</p>
<p>Sync-only engines (and the base <code>Node.run</code>) treat an <code>AsyncNode</code> as a
no-op consumer: this returns no states, signalling that an async engine
is required.</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>state</code></td>
<td>
<code><a class="autorefs autorefs-internal" title="dagpipe.state.State" href="../dagpipe/state/#dagpipe.state.State">State</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Input execution state.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code><span title="collections.abc.Iterable">Iterable</span>[<a class="autorefs autorefs-internal" title="dagpipe.state.State" href="../dagpipe/state/#dagpipe.state.State">State</a>]</code>
</td>
<td>
<div class="doc-md-description">
<p>Iterable[State]:
Empty tuple, since async execution is handled by
<code>resolve_async</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="doc doc-object doc-function">
<h6 id="dagpipe.node.AsyncNode.resolve_async" class="doc doc-heading">
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">resolve_async</span>
@@ -1915,8 +2091,13 @@ Derived execution state(s).</p>
<details class="notes" open>
<summary>Notes</summary>
<p>Subclasses implement this. Must not mutate the input state.
Should use <code>fork()</code> to create child states.</p>
<p><strong>Guarantees:</strong></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></pre></div></td><td class="code"><div><pre><span></span><code>- Subclasses implement this.
- Must not mutate the input state.
- Should use `fork()` to create child states.
</code></pre></div></td></tr></table></div>
</details>
</div>
@@ -2036,6 +2217,82 @@ Derived execution states.</p>
<p>Execute this node asynchronously on a state, validating outputs.</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>state</code></td>
<td>
<code><a class="autorefs autorefs-internal" title="dagpipe.state.State" href="../dagpipe/state/#dagpipe.state.State">State</a></code>
</td>
<td>
<div class="doc-md-description">
<p>Input execution state.</p>
</div>
</td>
<td>
<em>required</em>
</td>
</tr>
</tbody>
</table>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td>
<code>tuple[<a class="autorefs autorefs-internal" title="dagpipe.state.State" href="../dagpipe/state/#dagpipe.state.State">State</a>, ...]</code>
</td>
<td>
<div class="doc-md-description">
<p>tuple[State, ...]:
Derived execution states.</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>TypeError</code>
</td>
<td>
<div class="doc-md-description">
<p>If <code>resolve_async()</code> yields a non-<code>State</code> object.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
@@ -2145,8 +2402,29 @@ Derived execution states.</p>
<div class="doc doc-contents ">
<p>Return stable hash based on node ID.</p>
<h6 id="dagpipe.node.Node.__hash__--returns">Returns</h6>
<p>int</p>
<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>int</code></td> <td>
<code>int</code>
</td>
<td>
<div class="doc-md-description">
<p>Hash of the node ID, allowing nodes to be used as dict keys.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@@ -2165,13 +2443,92 @@ Derived execution states.</p>
<div class="doc doc-contents ">
<p>Create or reuse a Node instance.</p>
<p>Stateless subclasses (no parameterized <code>__init__</code>) share one singleton
instance per class — matching the original dagpipe behaviour underpinning
<code>set_registry</code>-style configuration. Subclasses that declare an <code>__init__</code>
requiring instance-state arguments get a fresh instance per construction
so pipeline builders can inject per-run dependencies.</p>
<p>Create or reuse a node instance.</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>*args</code></td>
<td>
<code><span title="typing.Any">Any</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Positional constructor arguments forwarded to <code>__init__</code>.</p>
</div>
</td>
<td>
<code>()</code>
</td>
</tr>
<tr class="doc-section-item">
<td><code>**kwargs</code></td>
<td>
<code><span title="typing.Any">Any</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Keyword constructor arguments forwarded to <code>__init__</code>.</p>
</div>
</td>
<td>
<code>{}</code>
</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>Node</code></td> <td>
<code><a class="autorefs autorefs-internal" title="dagpipe.node.Node" href="../dagpipe/node/#dagpipe.node.Node">Node</a></code>
</td>
<td>
<div class="doc-md-description">
<p>A fresh instance for subclasses declaring a parameterized
<code>__init__</code>, or the shared singleton for stateless subclasses.</p>
</div>
</td>
</tr>
</tbody>
</table>
<details class="notes" open>
<summary>Notes</summary>
<p><strong>Guarantees:</strong></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>- Stateless subclasses (no parameterized `__init__`) share one
singleton instance per class — matching the original dagpipe
behaviour underpinning `set_registry`-style configuration.
- Subclasses that declare an `__init__` requiring instance-state
arguments get a fresh instance per construction so pipeline
builders can inject per-run dependencies.
</code></pre></div></td></tr></table></div>
</details>
</div>
</div>
@@ -2189,9 +2546,30 @@ so pipeline builders can inject per-run dependencies.</p>
<div class="doc doc-contents ">
<p>Return debug representation.</p>
<h6 id="dagpipe.node.Node.__repr__--returns">Returns</h6>
<p>str</p>
<p>Return computation identity based on node ID.</p>
<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>str</code></td> <td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>String of the form <code>&lt;Node {id}&gt;</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@@ -2210,9 +2588,30 @@ so pipeline builders can inject per-run dependencies.</p>
<div class="doc doc-contents ">
<p>Return display representation.</p>
<h6 id="dagpipe.node.Node.__str__--returns">Returns</h6>
<p>str</p>
<p>Return user-facing display name.</p>
<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>str</code></td> <td>
<code>str</code>
</td>
<td>
<div class="doc-md-description">
<p>String of the form <code>&lt;Node {name}&gt;</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
@@ -2434,6 +2833,29 @@ so pipeline builders can inject per-run dependencies.</p>
<p>Return whether this node executes asynchronously.</p>
<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>bool</code></td> <td>
<code>bool</code>
</td>
<td>
<div class="doc-md-description">
<p>True if the node is an <code>AsyncNode</code> instance.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>