fix(loaders): render clean signatures, drop unresolvable aliases from models
- 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
This commit is contained in:
@@ -8,28 +8,28 @@
|
||||
"name": "MCPServer",
|
||||
"kind": "class",
|
||||
"path": "docforge.servers.MCPServer",
|
||||
"signature": "<bound method Alias.signature of Alias('MCPServer', 'docforge.servers.mcp_server.MCPServer')>",
|
||||
"signature": "MCPServer(mcp_root: Path, name: str)",
|
||||
"docstring": "MCP server for serving a pre-generated documentation bundle.\n\nThe server exposes documentation resources and diagnostic tools through\nMCP endpoints backed by JSON files generated by the MCP renderer.\n\nAttributes:\n mcp_root (Path):\n Directory containing the generated MCP documentation bundle.\n\n app (FastMCP):\n Underlying FastMCP application instance that registers resources\n and tools.",
|
||||
"members": {
|
||||
"mcp_root": {
|
||||
"name": "mcp_root",
|
||||
"kind": "attribute",
|
||||
"path": "docforge.servers.MCPServer.mcp_root",
|
||||
"signature": "<bound method Alias.signature of Alias('mcp_root', 'docforge.servers.mcp_server.MCPServer.mcp_root')>",
|
||||
"signature": null,
|
||||
"docstring": null
|
||||
},
|
||||
"app": {
|
||||
"name": "app",
|
||||
"kind": "attribute",
|
||||
"path": "docforge.servers.MCPServer.app",
|
||||
"signature": "<bound method Alias.signature of Alias('app', 'docforge.servers.mcp_server.MCPServer.app')>",
|
||||
"signature": null,
|
||||
"docstring": null
|
||||
},
|
||||
"run": {
|
||||
"name": "run",
|
||||
"kind": "function",
|
||||
"path": "docforge.servers.MCPServer.run",
|
||||
"signature": "<bound method Alias.signature of Alias('run', 'docforge.servers.mcp_server.MCPServer.run')>",
|
||||
"signature": "run(transport: Literal['stdio', 'sse', 'streamable-http'] = 'streamable-http')",
|
||||
"docstring": "Start the MCP server.\n\nArgs:\n transport (Literal[\"stdio\", \"sse\", \"streamable-http\"]):\n Transport mechanism used by the MCP server. Supported options\n include `stdio`, `sse`, and `streamable-http`."
|
||||
}
|
||||
}
|
||||
@@ -41,53 +41,11 @@
|
||||
"signature": null,
|
||||
"docstring": "# Summary\n\nMCP server implementation.\n\nThis module defines the `MCPServer` class, which serves pre-generated\ndocumentation bundles through the Model Context Protocol (MCP).\n\n---\n\nNotes:\n - The served bundle is generated offline by `MCPRenderer`.\n - Missing resources are reported as structured error dictionaries rather\n than raising exceptions.\n - The server exposes read-only resources and a single health-check tool.\n\n---",
|
||||
"members": {
|
||||
"annotations": {
|
||||
"name": "annotations",
|
||||
"kind": "alias",
|
||||
"path": "docforge.servers.mcp_server.annotations",
|
||||
"signature": "<bound method Alias.signature of Alias('annotations', '__future__.annotations')>",
|
||||
"docstring": null
|
||||
},
|
||||
"json": {
|
||||
"name": "json",
|
||||
"kind": "alias",
|
||||
"path": "docforge.servers.mcp_server.json",
|
||||
"signature": "<bound method Alias.signature of Alias('json', 'json')>",
|
||||
"docstring": null
|
||||
},
|
||||
"Path": {
|
||||
"name": "Path",
|
||||
"kind": "alias",
|
||||
"path": "docforge.servers.mcp_server.Path",
|
||||
"signature": "<bound method Alias.signature of Alias('Path', 'pathlib.Path')>",
|
||||
"docstring": null
|
||||
},
|
||||
"Any": {
|
||||
"name": "Any",
|
||||
"kind": "alias",
|
||||
"path": "docforge.servers.mcp_server.Any",
|
||||
"signature": "<bound method Alias.signature of Alias('Any', 'typing.Any')>",
|
||||
"docstring": null
|
||||
},
|
||||
"Literal": {
|
||||
"name": "Literal",
|
||||
"kind": "alias",
|
||||
"path": "docforge.servers.mcp_server.Literal",
|
||||
"signature": "<bound method Alias.signature of Alias('Literal', 'typing.Literal')>",
|
||||
"docstring": null
|
||||
},
|
||||
"FastMCP": {
|
||||
"name": "FastMCP",
|
||||
"kind": "alias",
|
||||
"path": "docforge.servers.mcp_server.FastMCP",
|
||||
"signature": "<bound method Alias.signature of Alias('FastMCP', 'mcp.server.fastmcp.FastMCP')>",
|
||||
"docstring": null
|
||||
},
|
||||
"MCPServer": {
|
||||
"name": "MCPServer",
|
||||
"kind": "class",
|
||||
"path": "docforge.servers.mcp_server.MCPServer",
|
||||
"signature": "<bound method Class.signature of Class('MCPServer', 29, 152)>",
|
||||
"signature": "MCPServer(mcp_root: Path, name: str)",
|
||||
"docstring": "MCP server for serving a pre-generated documentation bundle.\n\nThe server exposes documentation resources and diagnostic tools through\nMCP endpoints backed by JSON files generated by the MCP renderer.\n\nAttributes:\n mcp_root (Path):\n Directory containing the generated MCP documentation bundle.\n\n app (FastMCP):\n Underlying FastMCP application instance that registers resources\n and tools.",
|
||||
"members": {
|
||||
"mcp_root": {
|
||||
@@ -108,7 +66,7 @@
|
||||
"name": "run",
|
||||
"kind": "function",
|
||||
"path": "docforge.servers.mcp_server.MCPServer.run",
|
||||
"signature": "<bound method Function.signature of Function('run', 140, 152)>",
|
||||
"signature": "run(transport: Literal['stdio', 'sse', 'streamable-http'] = 'streamable-http') -> None",
|
||||
"docstring": "Start the MCP server.\n\nArgs:\n transport (Literal[\"stdio\", \"sse\", \"streamable-http\"]):\n Transport mechanism used by the MCP server. Supported options\n include `stdio`, `sse`, and `streamable-http`."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user