41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
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")
|
|
),
|
|
)
|