Files
docs/dagpipe/mcp/modules/dagpipe.graph.json
Vishesh 'ironeagle' Bangotra a32eeaf2b4 feat: serve docs flat at /<repo>/ with no redirects
- collect.py copies each repo's built site contents directly to a
  top-level <repo>/ dir (was libs|apis|wiki/<repo>/site nesting)
- nginx uses `index index.html lib/index.html api/index.html` so
  /dagpipe/ -> lib/index.html, /auth-server/ -> api/index.html are
  served internally with no redirects
- _index regenerates links against the flat layout
  (/dagpipe/lib/, /auth-server/api/, /mongo-ops/, /blog/...)
- config.yml static entries point at vendored blog/ + media-manager/
- Dockerfile copies per-repo dirs flat into the nginx html root
- removed stale libs/, apis/, wiki/, tutorials/ category trees
2026-09-11 21:32:30 +05:30

132 lines
9.1 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"module": "dagpipe.graph",
"content": {
"path": "dagpipe.graph",
"docstring": "# Summary\n\nDefines DAG structure connecting nodes.\n\nA `Graph` describes execution topology only. It does not execute nodes or manage\n`State`. Execution is handled by an `Engine`.\n\n---\n\n# Responsibilities\n\n- Multiple roots, branching, and merging support.\n- Deterministic traversal based on topology.\n- Graph is mutable during construction but treated as immutable at runtime.",
"objects": {
"defaultdict": {
"name": "defaultdict",
"kind": "alias",
"path": "dagpipe.graph.defaultdict",
"signature": "<bound method Alias.signature of Alias('defaultdict', 'collections.defaultdict')>",
"docstring": null
},
"Node": {
"name": "Node",
"kind": "class",
"path": "dagpipe.graph.Node",
"signature": "<bound method Alias.signature of Alias('Node', 'dagpipe.node.Node')>",
"docstring": "Base class for all dagpipe execution nodes.\n\nAttributes:\n id (str):\n Unique identifier of the node (snake_case dotted format).\n\n name (str):\n Human-readable display name.\n\nNotes:\n **Responsibilities:**\n\n - Represents a deterministic unit of execution in the pipeline graph.\n - Consumes one `State` and produces zero, one, or many derived states.\n - Defines execution logic and enables branching, filtering, and transformation.\n\n **Guarantees:**\n\n - Nodes must never mutate the input `State`.\n - Instances are singletons per subclass and reused across executions.",
"members": {
"id": {
"name": "id",
"kind": "attribute",
"path": "dagpipe.graph.Node.id",
"signature": "<bound method Alias.signature of Alias('id', 'dagpipe.node.Node.id')>",
"docstring": null
},
"name": {
"name": "name",
"kind": "attribute",
"path": "dagpipe.graph.Node.name",
"signature": "<bound method Alias.signature of Alias('name', 'dagpipe.node.Node.name')>",
"docstring": null
},
"node_id_to_name": {
"name": "node_id_to_name",
"kind": "function",
"path": "dagpipe.graph.Node.node_id_to_name",
"signature": "<bound method Alias.signature of Alias('node_id_to_name', 'dagpipe.node.Node.node_id_to_name')>",
"docstring": "Convert a dotted snake_case node ID into a human-readable name.\n\nArgs:\n node_id (str):\n Unique node identifier (e.g., 'entity.resolve.numeric_merchant').\n\nReturns:\n str:\n Human-readable display name (e.g., 'Entity Resolve Numeric Merchant')."
},
"clean_id_and_name": {
"name": "clean_id_and_name",
"kind": "function",
"path": "dagpipe.graph.Node.clean_id_and_name",
"signature": "<bound method Alias.signature of Alias('clean_id_and_name', 'dagpipe.node.Node.clean_id_and_name')>",
"docstring": "Normalize and validate node ID and display name.\n\nRaises:\n TypeError:\n If ID is not a string.\n ValueError:\n If ID format is invalid.\n\nNotes:\n **Guarantees:**\n\n - Generates ID from module and class name if missing.\n - Validates ID format.\n - Generates human-readable name if missing."
},
"run": {
"name": "run",
"kind": "function",
"path": "dagpipe.graph.Node.run",
"signature": "<bound method Alias.signature of Alias('run', 'dagpipe.node.Node.run')>",
"docstring": "Execute this node on a `State`.\n\nArgs:\n state (State):\n Input execution state.\n\nReturns:\n tuple[State, ...]:\n Derived execution states.\n\nRaises:\n TypeError:\n If `resolve()` yields a non-`State` object."
},
"fork": {
"name": "fork",
"kind": "function",
"path": "dagpipe.graph.Node.fork",
"signature": "<bound method Alias.signature of Alias('fork', 'dagpipe.node.Node.fork')>",
"docstring": "Create a child `State` attributed to this node.\n\nArgs:\n state (State):\n Parent execution state.\n\n payload_update (Mapping[str, Any], optional):\n Dot-path payload updates.\n\n confidence_delta (float, optional):\n Confidence adjustment.\n\n metadata_update (Mapping[str, Any], optional):\n Metadata updates.\n\nReturns:\n State:\n New child execution state.\n\nNotes:\n **Responsibilities:**\n\n - Convenience wrapper around `State.fork()` that automatically\n records this node's ID in state history."
},
"resolve": {
"name": "resolve",
"kind": "function",
"path": "dagpipe.graph.Node.resolve",
"signature": "<bound method Alias.signature of Alias('resolve', 'dagpipe.node.Node.resolve')>",
"docstring": "Execute node logic.\n\nArgs:\n state (State):\n Input execution state.\n\nYields:\n State:\n Derived execution state(s).\n\nNotes:\n **Responsibilities:**\n\n - Subclasses implement specific resolution behavior.\n - Must not mutate input state.\n - Should use `fork()` to create child states.\n - May yield zero states to terminate a branch."
},
"is_async": {
"name": "is_async",
"kind": "function",
"path": "dagpipe.graph.Node.is_async",
"signature": "<bound method Alias.signature of Alias('is_async', 'dagpipe.node.Node.is_async')>",
"docstring": "Return whether this node executes asynchronously."
}
}
},
"Graph": {
"name": "Graph",
"kind": "class",
"path": "dagpipe.graph.Graph",
"signature": "<bound method Class.signature of Class('Graph', 23, 212)>",
"docstring": "Directed Acyclic Graph defining execution topology of `Node` objects.\n\nNotes:\n **Responsibilities:**\n\n - Stores node connectivity and validates that the topology remains acyclic.\n - Structure determines how `State` flows between nodes during execution.\n\n **Guarantees:**\n\n - Topology is acyclic. Node relationships remain consistent.\n - Thread-safe for concurrent reads after construction.",
"members": {
"add_edge": {
"name": "add_edge",
"kind": "function",
"path": "dagpipe.graph.Graph.add_edge",
"signature": "<bound method Function.signature of Function('add_edge', 84, 125)>",
"docstring": "Add a directed edge from `src` to `dst`.\n\nArgs:\n src (Node):\n Source node.\n\n dst (Node):\n Destination node.\n\nRaises:\n TypeError:\n If `src` or `dst` is not a `Node`.\n\n ValueError:\n If the edge would create a cycle or if `src` and `dst` are common.\n\nNotes:\n - Validates node types.\n - Prevents cycles.\n - Registers nodes if not present.\n - Updates parent and child mappings."
},
"add_root": {
"name": "add_root",
"kind": "function",
"path": "dagpipe.graph.Graph.add_root",
"signature": "<bound method Function.signature of Function('add_root', 127, 146)>",
"docstring": "Add a root node with no parents.\n\nArgs:\n node (Node):\n Node to add as a root.\n\nRaises:\n TypeError:\n If node is not a Node instance."
},
"children": {
"name": "children",
"kind": "function",
"path": "dagpipe.graph.Graph.children",
"signature": "<bound method Function.signature of Function('children', 148, 161)>",
"docstring": "Return child nodes of a node.\n\nArgs:\n node (Node):\n Node to query.\n\nReturns:\n Tuple[Node, ...]:\n Outgoing neighbors."
},
"parents": {
"name": "parents",
"kind": "function",
"path": "dagpipe.graph.Graph.parents",
"signature": "<bound method Function.signature of Function('parents', 163, 176)>",
"docstring": "Return parent nodes of a node.\n\nArgs:\n node (Node):\n Node to query.\n\nReturns:\n Tuple[Node, ...]:\n Incoming neighbors."
},
"roots": {
"name": "roots",
"kind": "function",
"path": "dagpipe.graph.Graph.roots",
"signature": "<bound method Function.signature of Function('roots', 178, 187)>",
"docstring": "Return root nodes (nodes with no incoming edges).\n\nReturns:\n Tuple[Node, ...]:\n Entry point nodes."
},
"nodes": {
"name": "nodes",
"kind": "function",
"path": "dagpipe.graph.Graph.nodes",
"signature": "<bound method Function.signature of Function('nodes', 189, 198)>",
"docstring": "Return all nodes in the graph.\n\nReturns:\n Tuple[Node, ...]:\n All registered nodes."
}
}
}
}
}
}