mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-22 07:10:28 +02:00
refactor: move load_settings() to domain, simplify settings.py
- load_settings() now in domain/settings_core.py (shared by all UIs) - settings.py delegates to domain instead of reimplementing - settings.py: 456 → 430 lines
This commit is contained in:
@@ -420,6 +420,18 @@ def all_settings_defaults() -> Dict[str, Any]:
|
||||
return result
|
||||
|
||||
|
||||
def load_settings() -> Dict[str, Any]:
|
||||
"""Load and normalize settings from config file."""
|
||||
from abogen.utils import load_config
|
||||
defaults = settings_defaults()
|
||||
cfg = load_config() or {}
|
||||
settings: Dict[str, Any] = {}
|
||||
for key, default in defaults.items():
|
||||
raw_value = cfg.get(key, default)
|
||||
settings[key] = normalize_setting_value(key, raw_value, defaults)
|
||||
return settings
|
||||
|
||||
|
||||
# ── Normalization (delegates to Setting.coerce) ──────────────────────
|
||||
|
||||
def normalize_setting_value(key: str, value: Any, defaults: Dict[str, Any]) -> Any:
|
||||
|
||||
@@ -5,27 +5,11 @@ from abogen.integrations.calibre_opds import CalibreOPDSClient
|
||||
from abogen.integrations.audiobookshelf import AudiobookshelfConfig
|
||||
from abogen.utils import load_config, save_config
|
||||
from abogen.domain.settings_core import (
|
||||
SAVE_MODE_LABELS,
|
||||
LEGACY_SAVE_MODE_MAP,
|
||||
CHUNK_LEVEL_OPTIONS,
|
||||
CHUNK_LEVEL_VALUES,
|
||||
DEFAULT_ANALYSIS_THRESHOLD,
|
||||
BOOLEAN_SETTINGS,
|
||||
FLOAT_SETTINGS,
|
||||
INT_SETTINGS,
|
||||
_NORMALIZATION_BOOLEAN_KEYS,
|
||||
_NORMALIZATION_STRING_KEYS,
|
||||
coerce_bool,
|
||||
coerce_float,
|
||||
coerce_int,
|
||||
split_profile_spec,
|
||||
normalize_save_mode,
|
||||
normalize_setting_value,
|
||||
has_output_override,
|
||||
settings_defaults,
|
||||
integration_defaults,
|
||||
llm_ready,
|
||||
render_prompt_template,
|
||||
)
|
||||
|
||||
_NORMALIZATION_GROUPS = [
|
||||
@@ -72,16 +56,6 @@ _CHUNK_LEVEL_OPTIONS = CHUNK_LEVEL_OPTIONS
|
||||
_CHUNK_LEVEL_VALUES = CHUNK_LEVEL_VALUES
|
||||
|
||||
|
||||
def load_settings() -> Dict[str, Any]:
|
||||
defaults = settings_defaults()
|
||||
cfg = load_config() or {}
|
||||
settings: Dict[str, Any] = {}
|
||||
for key, default in defaults.items():
|
||||
raw_value = cfg.get(key, default)
|
||||
settings[key] = normalize_setting_value(key, raw_value, defaults)
|
||||
return settings
|
||||
|
||||
|
||||
def load_integration_settings() -> Dict[str, Dict[str, Any]]:
|
||||
defaults = integration_defaults()
|
||||
cfg = load_config() or {}
|
||||
|
||||
Reference in New Issue
Block a user