Add math text format config

This commit is contained in:
Edern Deneuville
2026-09-11 13:55:18 +02:00
parent dcc5f0c568
commit 5e938fe456
+10
View File
@@ -6,6 +6,7 @@ from pathlib import Path
from typing import Any, Literal
Provider = Literal["ollama", "gemini"]
MathTextFormat = Literal["plain", "unicode", "unicode_math"]
@dataclass(frozen=True)
@@ -18,6 +19,7 @@ class AppConfig:
request_timeout_seconds: float | None = 300.0
copy_wait_seconds: float = 1.0
type_delay_seconds: float = 0.0
math_text_format: MathTextFormat = "unicode"
restore_clipboard: bool = True
system_prompt: str = (
"Réponds directement et de manière ultra-concise. "
@@ -40,6 +42,13 @@ def _coerce_timeout(value: Any) -> float | None:
return timeout
def _coerce_math_text_format(value: Any) -> MathTextFormat:
mode = str(value or "unicode").lower().strip()
if mode not in {"plain", "unicode", "unicode_math"}:
raise ValueError("config.math_text_format doit être 'plain' ou 'unicode'")
return mode # type: ignore[return-value]
def load_config(path: str | Path = "config.json") -> AppConfig:
cfg_path = Path(path)
if not cfg_path.exists():
@@ -56,6 +65,7 @@ def load_config(path: str | Path = "config.json") -> AppConfig:
request_timeout_seconds=_coerce_timeout(data.get("request_timeout_seconds", 300)),
copy_wait_seconds=float(data.get("copy_wait_seconds", 1)),
type_delay_seconds=float(data.get("type_delay_seconds", 0)),
math_text_format=_coerce_math_text_format(data.get("math_text_format", "unicode")),
restore_clipboard=bool(data.get("restore_clipboard", True)),
system_prompt=str(data.get("system_prompt", AppConfig.system_prompt)),
)