diff --git a/abogen/domain/settings_core.py b/abogen/domain/settings_core.py index 34c8078..e9398d6 100644 --- a/abogen/domain/settings_core.py +++ b/abogen/domain/settings_core.py @@ -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: diff --git a/abogen/webui/routes/utils/settings.py b/abogen/webui/routes/utils/settings.py index ac6db98..247938f 100644 --- a/abogen/webui/routes/utils/settings.py +++ b/abogen/webui/routes/utils/settings.py @@ -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 {}