Remove unused vocabulary and domain mode options

This commit is contained in:
Thales Maciel 2026-02-25 11:26:23 -03:00
parent a6e75f9c16
commit 7af8750258
5 changed files with 34 additions and 93 deletions

View file

@ -12,10 +12,7 @@ DEFAULT_HOTKEY = "Cmd+m"
DEFAULT_STT_MODEL = "base"
DEFAULT_STT_DEVICE = "cpu"
DEFAULT_INJECTION_BACKEND = "clipboard"
DEFAULT_VOCAB_LIMIT = 500
DEFAULT_DOMAIN_INFERENCE_MODE = "auto"
ALLOWED_INJECTION_BACKENDS = {"clipboard", "injection"}
ALLOWED_DOMAIN_INFERENCE_MODES = {"auto"}
WILDCARD_CHARS = set("*?[]{}")
@ -51,14 +48,11 @@ class VocabularyReplacement:
class VocabularyConfig:
replacements: list[VocabularyReplacement] = field(default_factory=list)
terms: list[str] = field(default_factory=list)
max_rules: int = DEFAULT_VOCAB_LIMIT
max_terms: int = DEFAULT_VOCAB_LIMIT
@dataclass
class DomainInferenceConfig:
enabled: bool = True
mode: str = DEFAULT_DOMAIN_INFERENCE_MODE
@dataclass
@ -113,28 +107,11 @@ def validate(cfg: Config) -> None:
if not isinstance(cfg.injection.remove_transcription_from_clipboard, bool):
raise ValueError("injection.remove_transcription_from_clipboard must be boolean")
cfg.vocabulary.max_rules = _validated_limit(cfg.vocabulary.max_rules, "vocabulary.max_rules")
cfg.vocabulary.max_terms = _validated_limit(cfg.vocabulary.max_terms, "vocabulary.max_terms")
if len(cfg.vocabulary.replacements) > cfg.vocabulary.max_rules:
raise ValueError(
f"vocabulary.replacements cannot exceed vocabulary.max_rules ({cfg.vocabulary.max_rules})"
)
if len(cfg.vocabulary.terms) > cfg.vocabulary.max_terms:
raise ValueError(
f"vocabulary.terms cannot exceed vocabulary.max_terms ({cfg.vocabulary.max_terms})"
)
cfg.vocabulary.replacements = _validate_replacements(cfg.vocabulary.replacements)
cfg.vocabulary.terms = _validate_terms(cfg.vocabulary.terms)
if not isinstance(cfg.domain_inference.enabled, bool):
raise ValueError("domain_inference.enabled must be boolean")
mode = cfg.domain_inference.mode.strip().lower()
if mode not in ALLOWED_DOMAIN_INFERENCE_MODES:
allowed = ", ".join(sorted(ALLOWED_DOMAIN_INFERENCE_MODES))
raise ValueError(f"domain_inference.mode must be one of: {allowed}")
cfg.domain_inference.mode = mode
def _from_dict(data: dict[str, Any], cfg: Config) -> Config:
@ -186,17 +163,15 @@ def _from_dict(data: dict[str, Any], cfg: Config) -> Config:
if "terms" in vocabulary:
cfg.vocabulary.terms = _as_terms(vocabulary["terms"])
if "max_rules" in vocabulary:
cfg.vocabulary.max_rules = _as_int(vocabulary["max_rules"], "vocabulary.max_rules")
raise ValueError("vocabulary.max_rules is no longer supported")
if "max_terms" in vocabulary:
cfg.vocabulary.max_terms = _as_int(vocabulary["max_terms"], "vocabulary.max_terms")
raise ValueError("vocabulary.max_terms is no longer supported")
if "enabled" in domain_inference:
cfg.domain_inference.enabled = _as_bool(
domain_inference["enabled"], "domain_inference.enabled"
)
if "mode" in domain_inference:
cfg.domain_inference.mode = _as_nonempty_str(
domain_inference["mode"], "domain_inference.mode"
)
raise ValueError("domain_inference.mode is no longer supported")
return cfg
if "hotkey" in data:
@ -234,12 +209,6 @@ def _as_bool(value: Any, field_name: str) -> bool:
return value
def _as_int(value: Any, field_name: str) -> int:
if isinstance(value, bool) or not isinstance(value, int):
raise ValueError(f"{field_name} must be an integer")
return value
def _as_recording_input(value: Any) -> str | int | None:
if value is None:
return None
@ -276,16 +245,6 @@ def _as_terms(value: Any) -> list[str]:
return terms
def _validated_limit(value: int, field_name: str) -> int:
if isinstance(value, bool) or not isinstance(value, int):
raise ValueError(f"{field_name} must be an integer")
if value <= 0:
raise ValueError(f"{field_name} must be positive")
if value > 5000:
raise ValueError(f"{field_name} cannot exceed 5000")
return value
def _validate_replacements(value: list[VocabularyReplacement]) -> list[VocabularyReplacement]:
deduped: list[VocabularyReplacement] = []
seen: dict[str, str] = {}