|
|
|
|
|
"""Generate API documentation files for mkdocs-gen-files plugin.""" |
|
|
|
|
|
import os |
|
|
from pathlib import Path |
|
|
import mkdocs_gen_files |
|
|
|
|
|
def generate_api_docs(): |
|
|
"""Generate API documentation files.""" |
|
|
|
|
|
|
|
|
project_root = Path(__file__).parent.parent |
|
|
|
|
|
|
|
|
modules = [ |
|
|
|
|
|
("api", "FastAPI Framework"), |
|
|
("api.main", "Main Application"), |
|
|
("api.core", "Core Framework"), |
|
|
("api.core.config", "Configuration"), |
|
|
("api.core.dependencies", "Dependencies"), |
|
|
("api.models", "Data Models"), |
|
|
("api.routes", "API Routes"), |
|
|
("api.services", "Services"), |
|
|
|
|
|
|
|
|
("agents", "Agent Framework"), |
|
|
("agents.planner", "Planning Agent"), |
|
|
("agents.executor", "Execution Agent"), |
|
|
|
|
|
|
|
|
("kg_services", "Knowledge Graph Services"), |
|
|
("kg_services.knowledge_graph", "Knowledge Graph Core"), |
|
|
("kg_services.embedder", "Embedding Service"), |
|
|
("kg_services.ontology", "Ontology Management"), |
|
|
("kg_services.tool_discovery", "Tool Discovery"), |
|
|
] |
|
|
|
|
|
|
|
|
for module_path, title in modules: |
|
|
|
|
|
module_file_py = project_root / f"{module_path.replace('.', '/')}.py" |
|
|
module_dir = project_root / f"{module_path.replace('.', '/')}" |
|
|
|
|
|
if not module_file_py.exists() and not module_dir.exists(): |
|
|
print(f"Skipping {module_path} - not found") |
|
|
continue |
|
|
|
|
|
|
|
|
try: |
|
|
__import__(module_path) |
|
|
importable = True |
|
|
except ImportError as e: |
|
|
print(f"Warning: {module_path} - import error: {e}") |
|
|
importable = False |
|
|
|
|
|
|
|
|
api_doc_path = f"api/{module_path.replace('.', '/')}.md" |
|
|
|
|
|
|
|
|
with mkdocs_gen_files.open(api_doc_path, "w") as f: |
|
|
f.write(f"# {title}\n\n") |
|
|
|
|
|
if importable: |
|
|
f.write(f"::: {module_path}\n") |
|
|
f.write(" options:\n") |
|
|
f.write(" show_root_heading: true\n") |
|
|
f.write(" show_source: true\n") |
|
|
f.write(" members_order: source\n") |
|
|
f.write(" docstring_style: google\n") |
|
|
f.write(" show_if_no_docstring: false\n") |
|
|
else: |
|
|
f.write(f"!!! warning \"Module Not Available\"\n") |
|
|
f.write(f" The module `{module_path}` could not be imported. ") |
|
|
f.write(f"This may be due to missing dependencies or the module is under development.\n\n") |
|
|
f.write(f"**Expected Location**: `{module_path.replace('.', '/')}.py`\n\n") |
|
|
f.write(f"Please check the module implementation or dependencies.\n") |
|
|
|
|
|
print(f"Generated API docs for {module_path}") |
|
|
|
|
|
|
|
|
generate_index_files() |
|
|
|
|
|
def generate_index_files(): |
|
|
"""Generate index files for API sections.""" |
|
|
|
|
|
|
|
|
with mkdocs_gen_files.open("api/index.md", "w") as f: |
|
|
f.write("# API Reference\n\n") |
|
|
f.write("Complete API documentation for KGraph-MCP.\n\n") |
|
|
f.write("## Sections\n\n") |
|
|
f.write("- [FastAPI Framework](api/index.md) - Main application and routing\n") |
|
|
f.write("- [Agent Framework](agents/index.md) - Planning and execution agents\n") |
|
|
f.write("- [Knowledge Graph Services](kg-services/index.md) - Core KG functionality\n") |
|
|
|
|
|
|
|
|
with mkdocs_gen_files.open("api/api/index.md", "w") as f: |
|
|
f.write("# FastAPI Framework\n\n") |
|
|
f.write("FastAPI application structure and components.\n\n") |
|
|
f.write("## Components\n\n") |
|
|
f.write("- [Main Application](main.md)\n") |
|
|
f.write("- [Core Framework](core/index.md)\n") |
|
|
f.write("- [Data Models](models/index.md)\n") |
|
|
f.write("- [API Routes](routes/index.md)\n") |
|
|
f.write("- [Services](services/index.md)\n") |
|
|
|
|
|
|
|
|
with mkdocs_gen_files.open("api/agents/index.md", "w") as f: |
|
|
f.write("# Agent Framework\n\n") |
|
|
f.write("AI agents for planning and task execution.\n\n") |
|
|
f.write("## Components\n\n") |
|
|
f.write("- [Planning Agent](planner.md)\n") |
|
|
f.write("- [Execution Agent](executor.md)\n") |
|
|
|
|
|
|
|
|
with mkdocs_gen_files.open("api/kg-services/index.md", "w") as f: |
|
|
f.write("# Knowledge Graph Services\n\n") |
|
|
f.write("Core knowledge graph functionality and services.\n\n") |
|
|
f.write("## Components\n\n") |
|
|
f.write("- [Knowledge Graph Core](knowledge_graph.md)\n") |
|
|
f.write("- [Embedding Service](embedder.md)\n") |
|
|
f.write("- [Ontology Management](ontology.md)\n") |
|
|
f.write("- [Tool Discovery](tool_discovery.md)\n") |
|
|
|
|
|
|
|
|
with mkdocs_gen_files.open("api/api/core/index.md", "w") as f: |
|
|
f.write("# Core Framework\n\n") |
|
|
f.write("Core application components and utilities.\n\n") |
|
|
f.write("## Components\n\n") |
|
|
f.write("- [Configuration](config.md)\n") |
|
|
f.write("- [Dependencies](dependencies.md)\n") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
generate_api_docs() |