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
This commit is contained in:
153
hexa/mcp/modules/hexa.parse_yaml.json
Normal file
153
hexa/mcp/modules/hexa.parse_yaml.json
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"module": "hexa.parse_yaml",
|
||||
"content": {
|
||||
"path": "hexa.parse_yaml",
|
||||
"docstring": "Parse a hexa YAML spec into a :class:`PortNode` tree.\n\nThe YAML grammar uses a nested mapping format built from three member kinds:\n\n- **attribute**: a ``name: type`` scalar (e.g. ``source_type: str``)\n- **nested struct**: a ``name:`` mapping of sub-attributes (e.g. ``source:``)\n- **port**: a ``name:`` mapping whose single key is a class whose value is a\n body, or a class key with a ``...`` body. A port carries a class shape.\n\nExample::\n\n RootClassName:\n attr: type # scalar attribute\n source: # nested struct (all scalar sub-attributes)\n source_type: str\n bank: str\n methods: # reserved block of functions\n run:\n args: [a, b]\n ingest: # port (single non-scalar class key)\n IngestPort:\n source_type: str\n methods: {Method: ...}\n\nDisambiguation of a mapping value:\n A mapping with exactly one key whose value is a non-scalar body (a mapping,\n ``...``, or a list) is a **port**. Any other mapping (multiple keys, or all\n scalar-typed values) is a **nested struct** of attributes.\n\nSee ``samples/minimal/sample.yaml`` and\n``samples/extraction_pipeline/extraction_pipeline.yaml`` for examples.",
|
||||
"objects": {
|
||||
"annotations": {
|
||||
"name": "annotations",
|
||||
"kind": "alias",
|
||||
"path": "hexa.parse_yaml.annotations",
|
||||
"signature": "<bound method Alias.signature of Alias('annotations', '__future__.annotations')>",
|
||||
"docstring": null
|
||||
},
|
||||
"Path": {
|
||||
"name": "Path",
|
||||
"kind": "alias",
|
||||
"path": "hexa.parse_yaml.Path",
|
||||
"signature": "<bound method Alias.signature of Alias('Path', 'pathlib.Path')>",
|
||||
"docstring": null
|
||||
},
|
||||
"Any": {
|
||||
"name": "Any",
|
||||
"kind": "alias",
|
||||
"path": "hexa.parse_yaml.Any",
|
||||
"signature": "<bound method Alias.signature of Alias('Any', 'typing.Any')>",
|
||||
"docstring": null
|
||||
},
|
||||
"yaml": {
|
||||
"name": "yaml",
|
||||
"kind": "alias",
|
||||
"path": "hexa.parse_yaml.yaml",
|
||||
"signature": "<bound method Alias.signature of Alias('yaml', 'yaml')>",
|
||||
"docstring": null
|
||||
},
|
||||
"ConfigValue": {
|
||||
"name": "ConfigValue",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.ConfigValue",
|
||||
"signature": "<bound method Alias.signature of Alias('ConfigValue', 'hexa.model.ConfigValue')>",
|
||||
"docstring": null
|
||||
},
|
||||
"MethodSpec": {
|
||||
"name": "MethodSpec",
|
||||
"kind": "class",
|
||||
"path": "hexa.parse_yaml.MethodSpec",
|
||||
"signature": "<bound method Alias.signature of Alias('MethodSpec', 'hexa.model.MethodSpec')>",
|
||||
"docstring": "Specification of a single abstract method.",
|
||||
"members": {
|
||||
"name": {
|
||||
"name": "name",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.MethodSpec.name",
|
||||
"signature": "<bound method Alias.signature of Alias('name', 'hexa.model.MethodSpec.name')>",
|
||||
"docstring": null
|
||||
},
|
||||
"args": {
|
||||
"name": "args",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.MethodSpec.args",
|
||||
"signature": "<bound method Alias.signature of Alias('args', 'hexa.model.MethodSpec.args')>",
|
||||
"docstring": null
|
||||
},
|
||||
"kwargs": {
|
||||
"name": "kwargs",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.MethodSpec.kwargs",
|
||||
"signature": "<bound method Alias.signature of Alias('kwargs', 'hexa.model.MethodSpec.kwargs')>",
|
||||
"docstring": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"PortNode": {
|
||||
"name": "PortNode",
|
||||
"kind": "class",
|
||||
"path": "hexa.parse_yaml.PortNode",
|
||||
"signature": "<bound method Alias.signature of Alias('PortNode', 'hexa.model.PortNode')>",
|
||||
"docstring": "A node in the hexa port tree.\n\nParameters\n----------\nname : str\n Slot name, e.g. ``\"parser\"``, ``\"amount_balance\"``.\nkind : str\n One of ``\"leaf\"``, ``\"port\"``, or ``\"parent\"``.\n - ``\"leaf\"``: no children (e.g. ``NumberPort``)\n - ``\"port\"``: has children (e.g. ``TransactionParserPort``)\n - ``\"parent\"``: the root of the tree (e.g. ``ExtractionPipeline``)\nport_cls : str\n ABC class name that gives this port its shape, e.g.\n ``\"TransactionParserPort\"``. Every port has a concrete typed shape.\nattributes : dict[str, ConfigValue]\n Annotated attributes: ``name -> type_expr`` for scalars, or a nested\n ``dict`` of sub-attributes (a struct) for grouped/structured values.\nchildren : list[PortNode]\n Nested port slots.\nmethods : dict[str, MethodSpec]\n Abstract methods keyed by method name.",
|
||||
"members": {
|
||||
"name": {
|
||||
"name": "name",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.PortNode.name",
|
||||
"signature": "<bound method Alias.signature of Alias('name', 'hexa.model.PortNode.name')>",
|
||||
"docstring": null
|
||||
},
|
||||
"port_cls": {
|
||||
"name": "port_cls",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.PortNode.port_cls",
|
||||
"signature": "<bound method Alias.signature of Alias('port_cls', 'hexa.model.PortNode.port_cls')>",
|
||||
"docstring": null
|
||||
},
|
||||
"kind": {
|
||||
"name": "kind",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.PortNode.kind",
|
||||
"signature": "<bound method Alias.signature of Alias('kind', 'hexa.model.PortNode.kind')>",
|
||||
"docstring": null
|
||||
},
|
||||
"attributes": {
|
||||
"name": "attributes",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.PortNode.attributes",
|
||||
"signature": "<bound method Alias.signature of Alias('attributes', 'hexa.model.PortNode.attributes')>",
|
||||
"docstring": null
|
||||
},
|
||||
"children": {
|
||||
"name": "children",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.PortNode.children",
|
||||
"signature": "<bound method Alias.signature of Alias('children', 'hexa.model.PortNode.children')>",
|
||||
"docstring": null
|
||||
},
|
||||
"methods": {
|
||||
"name": "methods",
|
||||
"kind": "attribute",
|
||||
"path": "hexa.parse_yaml.PortNode.methods",
|
||||
"signature": "<bound method Alias.signature of Alias('methods', 'hexa.model.PortNode.methods')>",
|
||||
"docstring": null
|
||||
},
|
||||
"find": {
|
||||
"name": "find",
|
||||
"kind": "function",
|
||||
"path": "hexa.parse_yaml.PortNode.find",
|
||||
"signature": "<bound method Alias.signature of Alias('find', 'hexa.model.PortNode.find')>",
|
||||
"docstring": "Find a direct child by slot name."
|
||||
},
|
||||
"walk": {
|
||||
"name": "walk",
|
||||
"kind": "function",
|
||||
"path": "hexa.parse_yaml.PortNode.walk",
|
||||
"signature": "<bound method Alias.signature of Alias('walk', 'hexa.model.PortNode.walk')>",
|
||||
"docstring": "Return all nodes in depth-first order (self first)."
|
||||
},
|
||||
"diff": {
|
||||
"name": "diff",
|
||||
"kind": "function",
|
||||
"path": "hexa.parse_yaml.PortNode.diff",
|
||||
"signature": "<bound method Alias.signature of Alias('diff', 'hexa.model.PortNode.diff')>",
|
||||
"docstring": "Return a list of human-readable difference strings.\n\nAn empty list means the trees are equal."
|
||||
}
|
||||
}
|
||||
},
|
||||
"parse_yaml": {
|
||||
"name": "parse_yaml",
|
||||
"kind": "function",
|
||||
"path": "hexa.parse_yaml.parse_yaml",
|
||||
"signature": "<bound method Function.signature of Function('parse_yaml', 44, 72)>",
|
||||
"docstring": "Parse a hexa YAML spec file into a :class:`PortNode` tree.\n\nParameters\n----------\npath : str | Path\n Path to the ``.yaml`` file.\n\nReturns\n-------\nPortNode\n The root node of the parsed tree.\n\nRaises\n------\nValueError\n On structural errors in the YAML."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user