{ "module": "hexa.cli", "content": { "path": "hexa.cli", "docstring": "# Summary\n\nCommand-line interface for hexa utilities.\n\n---\n# Usage\n\n hexa parse-yaml PATH\n hexa generate-abc PATH [--out FILE]\n hexa parse-abc PATH\n hexa generate-yaml PATH [--out FILE]\n hexa check PATH_A PATH_B", "objects": { "check_matches": { "name": "check_matches", "kind": "function", "path": "hexa.cli.check_matches", "signature": "check_matches(path_a: str | Path, path_b: str | Path)", "docstring": "Verify two representations agree.\n\nArgs:\n path_a (str | Path):\n Path to a ``.yaml`` or ``.py`` file.\n\n path_b (str | Path):\n Path to a ``.yaml`` or ``.py`` file.\n\nReturns:\n bool | list[str]:\n ``True`` if they match exactly, otherwise a list of difference\n strings." }, "generate_abc": { "name": "generate_abc", "kind": "function", "path": "hexa.cli.generate_abc", "signature": "generate_abc(node: PortNode, out_path: str | Path | None = None)", "docstring": "Generate ABC Python source from a :class:`PortNode` tree.\n\nArgs:\n node (PortNode):\n The root of the parsed YAML (or generated) tree.\n\n out_path (str | Path | None):\n Optional file path to write the generated source to.\n\nReturns:\n str:\n The generated Python source code." }, "generate_yaml": { "name": "generate_yaml", "kind": "function", "path": "hexa.cli.generate_yaml", "signature": "generate_yaml(node: PortNode, out_path: str | Path | None = None)", "docstring": "Generate YAML source from a :class:`PortNode` tree.\n\nArgs:\n node (PortNode):\n The root of the tree.\n\n out_path (str | Path | None):\n Optional file path to write the generated source to.\n\nReturns:\n str:\n The generated YAML source." }, "parse_abc": { "name": "parse_abc", "kind": "function", "path": "hexa.cli.parse_abc", "signature": "parse_abc(module_or_path: str | Path | Any)", "docstring": "Parse an ABC Python module into a :class:`PortNode` tree.\n\nABC classes become port nodes. A nested-struct attribute is expressed as a\n``@dataclass`` annotation on an ABC port (e.g. ``source: ExtractionSource``\nwhere ``ExtractionSource`` is a ``@dataclass``); the dataclass's fields are\nexpanded into a nested ``attributes`` entry.\n\nArgs:\n module_or_path (str | Path | Any):\n A file path to a ``.py`` file, a module import string, or a loaded\n module.\n\nReturns:\n PortNode:\n The root node of the tree." }, "parse_yaml": { "name": "parse_yaml", "kind": "function", "path": "hexa.cli.parse_yaml", "signature": "parse_yaml(path: str | Path)", "docstring": "Parse a hexa YAML spec file into a :class:`PortNode` tree.\n\nArgs:\n path (str | Path):\n Path to the ``.yaml`` file.\n\nReturns:\n PortNode:\n The root node of the parsed tree.\n\nRaises:\n ValueError:\n On structural errors in the YAML." }, "main": { "name": "main", "kind": "function", "path": "hexa.cli.main", "signature": "main() -> None", "docstring": null } } } }