This commit is contained in:
23
src/docgen/generators/base.py
Normal file
23
src/docgen/generators/base.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
"""Base generator class."""
|
||||||
|
|
||||||
|
from abc import ABC, abstractmethod
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Optional
|
||||||
|
from docgen.models import DocConfig, Endpoint
|
||||||
|
|
||||||
|
|
||||||
|
class BaseGenerator(ABC):
|
||||||
|
"""Abstract base class for documentation generators."""
|
||||||
|
|
||||||
|
def __init__(self, config: Optional[DocConfig] = None):
|
||||||
|
self.config = config or DocConfig()
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def generate(self, endpoints: list[Endpoint], output_dir: Path) -> Path:
|
||||||
|
"""Generate documentation and return the output path."""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def _ensure_output_dir(self, output_dir: Path) -> Path:
|
||||||
|
"""Ensure output directory exists."""
|
||||||
|
output_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
return output_dir
|
||||||
Reference in New Issue
Block a user