50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
"""Scan terminal configuration constants."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from typing import Optional
|
|
|
|
from src.utils.refresh_policy import SCAN_ROWS_REFRESH_SEC
|
|
|
|
|
|
def _env_int(
|
|
name: str,
|
|
default: int,
|
|
*,
|
|
min_value: int,
|
|
max_value: Optional[int] = None,
|
|
) -> int:
|
|
try:
|
|
value = int(os.getenv(name, str(default)))
|
|
except Exception:
|
|
value = int(default)
|
|
value = max(int(min_value), value)
|
|
if max_value is not None:
|
|
value = min(int(max_value), value)
|
|
return value
|
|
|
|
|
|
SCAN_TERMINAL_PAYLOAD_TTL_SEC = min(
|
|
SCAN_ROWS_REFRESH_SEC,
|
|
max(10, int(os.getenv("POLYWEATHER_SCAN_TERMINAL_PAYLOAD_TTL_SEC", str(SCAN_ROWS_REFRESH_SEC)))),
|
|
)
|
|
SCAN_TERMINAL_BUILD_TIMEOUT_SEC = _env_int(
|
|
"POLYWEATHER_SCAN_TERMINAL_BUILD_TIMEOUT_SEC",
|
|
10,
|
|
min_value=8,
|
|
max_value=30,
|
|
)
|
|
SCAN_TERMINAL_PREWARM_PAYLOAD_TIMEOUT_SEC = _env_int(
|
|
"POLYWEATHER_SCAN_TERMINAL_PREWARM_PAYLOAD_TIMEOUT_SEC",
|
|
30,
|
|
min_value=10,
|
|
max_value=120,
|
|
)
|
|
SCAN_TERMINAL_MAX_WORKERS = _env_int(
|
|
"POLYWEATHER_SCAN_TERMINAL_MAX_WORKERS",
|
|
8,
|
|
min_value=1,
|
|
max_value=12,
|
|
)
|