router / deeptutor /runtime /mode.py
Piyush1225's picture
push
5df8a73
"""
Run Mode
========
Controls whether DeepTutor is running as a CLI application or an API server.
Modules can check the mode to conditionally import server-only dependencies.
"""
import os
from enum import Enum
class RunMode(str, Enum):
CLI = "cli"
SERVER = "server"
_current_mode: RunMode | None = None
def _resolve_mode() -> RunMode:
raw = os.environ.get("DEEPTUTOR_MODE", "").strip().lower()
if raw == RunMode.SERVER.value:
return RunMode.SERVER
return RunMode.CLI
def get_mode() -> RunMode:
global _current_mode
if _current_mode is None:
_current_mode = _resolve_mode()
return _current_mode
def set_mode(mode: RunMode) -> None:
"""Explicitly set the run mode (call early in entry points)."""
global _current_mode
_current_mode = mode
os.environ["DEEPTUTOR_MODE"] = mode.value
def is_cli() -> bool:
return get_mode() == RunMode.CLI
def is_server() -> bool:
return get_mode() == RunMode.SERVER