from __future__ import annotations import os from dataclasses import dataclass @dataclass(frozen=True, slots=True) class Settings: flex_auth_base_url: str | None flex_auth_timeout_seconds: float host: str port: int database_path: str | None = None @classmethod def from_env(cls) -> "Settings": return cls( flex_auth_base_url=os.getenv("TENANT_ENGINE_FLEX_AUTH_URL") or None, flex_auth_timeout_seconds=float(os.getenv("TENANT_ENGINE_FLEX_AUTH_TIMEOUT_SECONDS", "3")), host=os.getenv("TENANT_ENGINE_HOST", "127.0.0.1"), port=int(os.getenv("TENANT_ENGINE_HTTP_PORT", "8090")), database_path=os.getenv("TENANT_ENGINE_DATABASE_PATH") or None, )