{ "module": "hexa.container", "content": { "path": "hexa.container", "docstring": "# Summary\n\nContainer to build a wired hexa pipeline from annotations.\n\n``build`` recursively instantiates the port tree implied by a root class's\nannotations, injecting provided runtime instances and config values by name.\n\n---\n# Notes\n\n- Runtime instances and config values are applied by name across the whole tree.", "objects": { "T": { "name": "T", "kind": "attribute", "path": "hexa.container.T", "signature": null, "docstring": null }, "build": { "name": "build", "kind": "function", "path": "hexa.container.build", "signature": "build(cls: type[T], *, instances: dict[str, Any] | None = None, config: dict[str, Any] | None = None) -> T", "docstring": "Recursively instantiate the port tree from annotations.\n\nArgs:\n cls (type[T]):\n The root class to build (e.g. ``AxisExtractionPipeline``).\n\n instances (dict[str, Any] | None):\n ``{slot_name: object}`` injected verbatim into every node whose\n annotations contain that name (runtime values — repos, handlers,\n clients — that must not be re-constructed). Applied to the whole\n tree by name.\n\n config (dict[str, Any] | None):\n ``{field_name: value}`` propagated by name to every node's\n annotated config fields (non-port attributes), replacing the\n default ``None``.\n\nReturns:\n T:\n A fully wired instance of ``cls`` and all its nested ports." } } } }