diff --git a/src/docgen/generators/base.py b/src/docgen/generators/base.py new file mode 100644 index 0000000..3be07c3 --- /dev/null +++ b/src/docgen/generators/base.py @@ -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