(output_dir: Path, module: ModuleDoc, position: int, modules: list[ModuleDoc])
| 348 | |
| 349 | |
| 350 | def _write_module(output_dir: Path, module: ModuleDoc, position: int, modules: list[ModuleDoc]) -> None: |
| 351 | lines = [ |
| 352 | frontmatter(module.title, module.summary, position, sidebar_title=_leaf_title(module)), |
| 353 | f"Generated from `{display_path(module.source)}`.\n\n", |
| 354 | f"Module `{module.name}`.\n\n", |
| 355 | ] |
| 356 | if module.summary: |
| 357 | lines.append(f"{module.summary}\n\n") |
| 358 | |
| 359 | if module.classes: |
| 360 | lines.append("## Classes\n\n") |
| 361 | for class_doc in module.classes: |
| 362 | bases = f"({', '.join(class_doc.bases)})" if class_doc.bases else "" |
| 363 | lines.append(f"### `{class_doc.name}{bases}`\n\n") |
| 364 | if class_doc.summary: |
| 365 | lines.append(f"{class_doc.summary}\n\n") |
| 366 | if class_doc.methods: |
| 367 | lines.append("#### Methods\n\n") |
| 368 | for method in class_doc.methods: |
| 369 | lines.append(f"##### `{method.name}`\n\n") |
| 370 | lines.append(f"```python\n{method.signature}\n```\n\n") |
| 371 | if method.summary: |
| 372 | lines.append(f"{method.summary}\n\n") |
| 373 | |
| 374 | if module.functions: |
| 375 | lines.append("## Functions\n\n") |
| 376 | for function in module.functions: |
| 377 | lines.append(f"### `{function.name}`\n\n") |
| 378 | lines.append(f"```python\n{function.signature}\n```\n\n") |
| 379 | if function.summary: |
| 380 | lines.append(f"{function.summary}\n\n") |
| 381 | |
| 382 | if module.aliases: |
| 383 | lines.append("## Type Aliases And Constants\n\n") |
| 384 | for alias in module.aliases: |
| 385 | lines.append(f"- `{alias}`\n") |
| 386 | lines.append("\n") |
| 387 | |
| 388 | if module.reexports: |
| 389 | lines.append("## Re-exports\n\n") |
| 390 | for name in module.reexports: |
| 391 | lines.append(f"- `{name}`\n") |
| 392 | lines.append("\n") |
| 393 | |
| 394 | output_path = _module_output_path(output_dir, module, modules) |
| 395 | output_path.parent.mkdir(parents=True, exist_ok=True) |
| 396 | output_path.write_text("".join(lines), encoding="utf-8") |
| 397 | |
| 398 | |
| 399 | def generate(package_root: Path, output_dir: Path) -> int: |
no test coverage detected