from __future__ import annotations import os from dataclasses import dataclass from pathlib import Path _PROJECT_ROOT = Path(__file__).resolve().parents[1] @dataclass(frozen=True) class GatewayConfig: everos_base_url: str = "http://127.0.0.1:8000" database_path: Path = _PROJECT_ROOT / "data" / "memory_gateway.sqlite3" storage_dir: Path = _PROJECT_ROOT / "data" / "storage" resource_search_batch_size: int = 50 @classmethod def from_env(cls) -> GatewayConfig: return cls( everos_base_url=os.environ.get( "EVEROS_BASE_URL", "http://127.0.0.1:8000", ).rstrip("/"), database_path=Path( os.environ.get( "MEMORY_GATEWAY_DB_PATH", str(_PROJECT_ROOT / "data" / "memory_gateway.sqlite3"), ) ), storage_dir=Path( os.environ.get( "MEMORY_GATEWAY_STORAGE_DIR", str(_PROJECT_ROOT / "data" / "storage"), ) ), resource_search_batch_size=int( os.environ.get("MEMORY_GATEWAY_RESOURCE_SEARCH_BATCH_SIZE", "50") ), )