This commit is contained in:
John Lancaster
2026-07-30 21:16:48 -05:00
parent 3d6daec561
commit 8afc462a6d
2 changed files with 15 additions and 18 deletions
+3 -3
View File
@@ -9,10 +9,10 @@ def main() -> None:
uvicorn.run( uvicorn.run(
"transcription.app:create_app", "transcription.app:create_app",
factory=True, factory=True,
host=settings.server.host, host=settings.host,
port=settings.server.port, port=settings.port,
log_level=LOGGING_CONFIG.get("root", {}).get("level", "info").lower(), log_level=LOGGING_CONFIG.get("root", {}).get("level", "info").lower(),
reload=settings.server.reload, reload=settings.reload,
) )
+12 -15
View File
@@ -9,12 +9,12 @@ import logging.config
from enum import StrEnum from enum import StrEnum
from functools import cache from functools import cache
from pathlib import Path from pathlib import Path
from typing import Any
from typing import Literal from typing import Literal
from pydantic import BaseModel
from pydantic import ConfigDict
from pydantic import Field from pydantic import Field
from pydantic_settings import BaseSettings from pydantic_settings import BaseSettings
from pydantic_settings import CliImplicitFlag
from pydantic_settings import SettingsConfigDict from pydantic_settings import SettingsConfigDict
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -24,15 +24,6 @@ class Provider(StrEnum):
OPENROUTER = "openrouter" OPENROUTER = "openrouter"
class ServerSettings(BaseModel):
model_config = ConfigDict(frozen=True)
host: str = "0.0.0.0"
port: int = 8000
log_level: Literal["critical", "error", "warning", "info", "debug", "trace"] = "info"
reload: bool = False
class Settings(BaseSettings): class Settings(BaseSettings):
model_config = SettingsConfigDict( model_config = SettingsConfigDict(
env_file=".env", env_file=".env",
@@ -42,7 +33,10 @@ class Settings(BaseSettings):
) )
# --- NiceGUI Server --- # --- NiceGUI Server ---
server: ServerSettings = Field(default_factory=ServerSettings) host: str = "0.0.0.0"
port: int = 8000
log_level: Literal["critical", "error", "warning", "info", "debug", "trace"] = "info"
reload: CliImplicitFlag[bool] = False
# --- AI provider --- # --- AI provider ---
provider: Provider = Provider.OPENROUTER provider: Provider = Provider.OPENROUTER
@@ -84,7 +78,7 @@ def get_settings(**kwargs) -> Settings:
return Settings(**kwargs) return Settings(**kwargs)
LOGGING_CONFIG: dict[str, object] = { LOGGING_CONFIG: dict[str, Any] = {
"version": 1, "version": 1,
"disable_existing_loggers": False, "disable_existing_loggers": False,
"formatters": { "formatters": {
@@ -114,7 +108,10 @@ LOGGING_CONFIG: dict[str, object] = {
} }
def configure_logging() -> None: def configure_logging(settings: Settings | None = None) -> None:
"""Configure root logging once at startup.""" """Configure root logging once at startup."""
logging.config.dictConfig(LOGGING_CONFIG) cfg = LOGGING_CONFIG.copy()
active_settings = settings or get_settings()
cfg["loggers"]["transcription"]["level"] = active_settings.log_level.upper()
logging.config.dictConfig(cfg)
logger.debug("Logging configured") logger.debug("Logging configured")