from __future__ import annotations

from functools import lru_cache
from pathlib import Path


class Settings:
    def __init__(self, repo_root: Path | None = None) -> None:
        self.repo_root = repo_root or Path(__file__).resolve().parents[2]
        self.docs_extensions = {".md"}
        self.inventory_dir = self.repo_root / "40-inventory"
        self.generated_dir = self.repo_root / "60-generated"


@lru_cache
def get_settings() -> Settings:
    return Settings()
