Module: braid.parser
Mermaid diagram parser for Guided Reasoning Diagrams (GRD).
- class braid.parser.NodeType(value)[source]
Bases:
EnumTypes of nodes in a Mermaid diagram.
- RECTANGLE = 'rectangle'
- ROUNDED = 'rounded'
- STADIUM = 'stadium'
- SUBROUTINE = 'subroutine'
- CYLINDRICAL = 'cylindrical'
- CIRCLE = 'circle'
- DIAMOND = 'diamond'
- HEXAGON = 'hexagon'
- PARALLELOGRAM = 'parallelogram'
- TRAPEZOID = 'trapezoid'
- UNKNOWN = 'unknown'
- class braid.parser.GRDNode(id: str, label: str, node_type: ~braid.parser.NodeType = NodeType.RECTANGLE, metadata: ~typing.Dict[str, ~typing.Any] = <factory>)[source]
Bases:
objectRepresents a node in a Guided Reasoning Diagram.
- class braid.parser.GRDEdge(from_node: str, to_node: str, label: str | None = None, style: str | None = None, condition: str | None = None)[source]
Bases:
objectRepresents an edge in a Guided Reasoning Diagram.
- class braid.parser.GRDStructure(nodes: ~typing.List[~braid.parser.GRDNode] = <factory>, edges: ~typing.List[~braid.parser.GRDEdge] = <factory>, start_nodes: ~typing.List[str] = <factory>, end_nodes: ~typing.List[str] = <factory>, metadata: ~typing.Dict[str, ~typing.Any] = <factory>)[source]
Bases:
objectComplete structure of a Guided Reasoning Diagram.
- class braid.parser.MermaidParser[source]
Bases:
objectParser for Mermaid flowchart diagrams.
- NODE_PATTERNS = [('(\\w+)\\[\\[(.*?)\\]\\]', NodeType.SUBROUTINE), ('(\\w+)\\[\\((.*?)\\)\\]', NodeType.STADIUM), ('(\\w+)\\(\\((.*?)\\)\\)', NodeType.CIRCLE), ('(\\w+)\\{(.*?)\\}', NodeType.DIAMOND), ('(\\w+)\\{\\{(.*?)\\}\\}', NodeType.HEXAGON), ('(\\w+)\\((.*?)\\)', NodeType.ROUNDED), ('(\\w+)\\[(.*?)\\]', NodeType.RECTANGLE), ('(\\w+)\\[/?(.*?)[/\\\\]\\]', NodeType.PARALLELOGRAM)]
- EDGE_PATTERN = '(\\w+)\\s*(--[>]|==[>])\\s*(\\w+)|(\\w+)\\s*--[->]\\s*\\|\\s*(.*?)\\s*\\|\\s*(\\w+)'
- parse(mermaid_code: str) GRDStructure[source]
Parse Mermaid flowchart code into a GRD structure.
- Parameters:
mermaid_code – Mermaid diagram code (flowchart format)
- Returns:
GRDStructure object containing parsed nodes and edges
- Raises:
ValueError – If the Mermaid code is invalid or cannot be parsed