- Stringify Object.signature() instead of str()-ing the bound method, which produced "<bound method Class.signature of ...>" reprs - Skip alias members that cannot resolve (stdlib/third-party imports) while preserving resolvable package re-exports; return None for empty signatures (classes without __init__ args) - Add MCP renderer regression tests for signature cleanliness, alias filtering, and package re-export preservation
206 lines
11 KiB
JSON
206 lines
11 KiB
JSON
{
|
|
"module": "docforge.renderers.mcp_renderer",
|
|
"content": {
|
|
"path": "docforge.renderers.mcp_renderer",
|
|
"docstring": "# Summary\n\nMCP renderer implementation.\n\nThis module defines the `MCPRenderer` class, which generates documentation\nresources compatible with the Model Context Protocol (MCP).",
|
|
"objects": {
|
|
"DocObject": {
|
|
"name": "DocObject",
|
|
"kind": "class",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject",
|
|
"signature": "DocObject(name: str, kind: str, path: str, signature: str | None = None, docstring: str | None = None)",
|
|
"docstring": "Representation of a documented Python object.\n\nA `DocObject` models a single Python entity discovered during\nintrospection. Objects may contain nested members, allowing the structure\nof modules, classes, and other containers to be represented recursively.\n\nAttributes:\n name (str):\n Local name of the object.\n\n kind (str):\n Type of object (for example `class`, `function`, `method`, or `attribute`).\n\n path (str):\n Fully qualified dotted path to the object.\n\n signature (str | None):\n Callable signature if the object represents a callable.\n\n docstring (str | None):\n Raw docstring text extracted from the source code.\n\n members (dict[str, DocObject]):\n Mapping of member names to child `DocObject` instances.",
|
|
"members": {
|
|
"name": {
|
|
"name": "name",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.name",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"kind": {
|
|
"name": "kind",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.kind",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"path": {
|
|
"name": "path",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.path",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"signature": {
|
|
"name": "signature",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.signature",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"docstring": {
|
|
"name": "docstring",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.docstring",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"members": {
|
|
"name": "members",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.members",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"add_member": {
|
|
"name": "add_member",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.add_member",
|
|
"signature": "add_member(obj: DocObject)",
|
|
"docstring": "Add a child documentation object.\n\nThis is typically used when attaching methods to classes or\nnested objects to their parent containers.\n\nArgs:\n obj (DocObject):\n Documentation object to add as a member."
|
|
},
|
|
"get_member": {
|
|
"name": "get_member",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.get_member",
|
|
"signature": "get_member(name: str)",
|
|
"docstring": "Retrieve a member object by name.\n\nArgs:\n name (str):\n Name of the member to retrieve.\n\nReturns:\n DocObject:\n The corresponding `DocObject` instance.\n\nRaises:\n KeyError:\n If the member does not exist."
|
|
},
|
|
"get_all_members": {
|
|
"name": "get_all_members",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.DocObject.get_all_members",
|
|
"signature": "get_all_members()",
|
|
"docstring": "Return all child members of the object.\n\nReturns:\n Iterable[DocObject]:\n An iterable of `DocObject` instances representing nested members."
|
|
}
|
|
}
|
|
},
|
|
"Module": {
|
|
"name": "Module",
|
|
"kind": "class",
|
|
"path": "docforge.renderers.mcp_renderer.Module",
|
|
"signature": "Module(path: str, docstring: str | None = None)",
|
|
"docstring": "Representation of a documented Python module or package.\n\nA `Module` stores metadata about the module itself and maintains a\ncollection of top-level documentation objects discovered during\nintrospection.\n\nAttributes:\n path (str):\n Dotted import path of the module.\n\n docstring (str | None):\n Module-level documentation string, if present.\n\n members (dict[str, DocObject]):\n Mapping of object names to their corresponding `DocObject` representations.",
|
|
"members": {
|
|
"path": {
|
|
"name": "path",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.Module.path",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"docstring": {
|
|
"name": "docstring",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.Module.docstring",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"members": {
|
|
"name": "members",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.Module.members",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"add_object": {
|
|
"name": "add_object",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Module.add_object",
|
|
"signature": "add_object(obj: DocObject)",
|
|
"docstring": "Add a documented object to the module.\n\nArgs:\n obj (DocObject):\n Documentation object to register as a top-level member of the module."
|
|
},
|
|
"get_object": {
|
|
"name": "get_object",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Module.get_object",
|
|
"signature": "get_object(name: str)",
|
|
"docstring": "Retrieve a documented object by name.\n\nArgs:\n name (str):\n Name of the object to retrieve.\n\nReturns:\n DocObject:\n The corresponding `DocObject` instance.\n\nRaises:\n KeyError:\n If no object with the given name exists."
|
|
},
|
|
"get_all_objects": {
|
|
"name": "get_all_objects",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Module.get_all_objects",
|
|
"signature": "get_all_objects()",
|
|
"docstring": "Return all top-level documentation objects in the module.\n\nReturns:\n Iterable[DocObject]:\n An iterable of `DocObject` instances representing the module's public members."
|
|
}
|
|
}
|
|
},
|
|
"Project": {
|
|
"name": "Project",
|
|
"kind": "class",
|
|
"path": "docforge.renderers.mcp_renderer.Project",
|
|
"signature": "Project(name: str)",
|
|
"docstring": "Representation of a documentation project.\n\nA `Project` serves as the root container for all modules discovered during\nintrospection. Each module is stored by its dotted import path.\n\nAttributes:\n name (str):\n Name of the project.\n\n modules (dict[str, Module]):\n Mapping of module paths to `Module` instances.",
|
|
"members": {
|
|
"name": {
|
|
"name": "name",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.Project.name",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"modules": {
|
|
"name": "modules",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.Project.modules",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"add_module": {
|
|
"name": "add_module",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Project.add_module",
|
|
"signature": "add_module(module: Module)",
|
|
"docstring": "Register a module in the project.\n\nArgs:\n module (Module):\n Module instance to add to the project."
|
|
},
|
|
"get_module": {
|
|
"name": "get_module",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Project.get_module",
|
|
"signature": "get_module(path: str)",
|
|
"docstring": "Retrieve a module by its dotted path.\n\nArgs:\n path (str):\n Fully qualified dotted module path (for example `pkg.module`).\n\nReturns:\n Module:\n The corresponding `Module` instance.\n\nRaises:\n KeyError:\n If the module does not exist in the project."
|
|
},
|
|
"get_all_modules": {
|
|
"name": "get_all_modules",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Project.get_all_modules",
|
|
"signature": "get_all_modules()",
|
|
"docstring": "Return all modules contained in the project.\n\nReturns:\n Iterable[Module]:\n An iterable of `Module` instances."
|
|
},
|
|
"get_module_list": {
|
|
"name": "get_module_list",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.Project.get_module_list",
|
|
"signature": "get_module_list()",
|
|
"docstring": "Return the list of module import paths.\n\nReturns:\n list[str]:\n A list containing the dotted paths of all modules in the project."
|
|
}
|
|
}
|
|
},
|
|
"MCPRenderer": {
|
|
"name": "MCPRenderer",
|
|
"kind": "class",
|
|
"path": "docforge.renderers.mcp_renderer.MCPRenderer",
|
|
"signature": null,
|
|
"docstring": "Renderer that generates MCP-compatible documentation resources.\n\nThis renderer converts doc-forge project models into structured JSON\nresources suitable for consumption by systems implementing the Model\nContext Protocol (MCP).",
|
|
"members": {
|
|
"name": {
|
|
"name": "name",
|
|
"kind": "attribute",
|
|
"path": "docforge.renderers.mcp_renderer.MCPRenderer.name",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"generate_sources": {
|
|
"name": "generate_sources",
|
|
"kind": "function",
|
|
"path": "docforge.renderers.mcp_renderer.MCPRenderer.generate_sources",
|
|
"signature": "generate_sources(project: Project, out_dir: Path) -> None",
|
|
"docstring": "Generate MCP documentation resources for a project.\n\nThe renderer serializes each module into a JSON resource and produces\nsupporting metadata files such as `nav.json` and `index.json`.\n\nArgs:\n project (Project):\n Documentation project model to render.\n\n out_dir (Path):\n Directory where MCP resources will be written."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |