From 08a449db997d737660e0b6a64a582719834ae9f5 Mon Sep 17 00:00:00 2001 From: pixelpaws Date: Wed, 8 Oct 2025 10:38:05 +0800 Subject: [PATCH] fix(metadata): refresh metadata sync settings --- py/utils/example_images_metadata.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/py/utils/example_images_metadata.py b/py/utils/example_images_metadata.py index 459f3ff0..f1802c1d 100644 --- a/py/utils/example_images_metadata.py +++ b/py/utils/example_images_metadata.py @@ -1,6 +1,7 @@ import logging import os import re +from typing import TYPE_CHECKING, Optional from ..recipes.constants import GEN_PARAM_KEYS from ..services.metadata_service import get_default_metadata_provider, get_metadata_provider @@ -21,20 +22,31 @@ _preview_service = PreviewAssetService( ) _metadata_sync_service: MetadataSyncService | None = None +_metadata_sync_service_settings: Optional["SettingsManager"] = None + +if TYPE_CHECKING: # pragma: no cover - import for type checkers only + from ..services.settings_manager import SettingsManager def _get_metadata_sync_service() -> MetadataSyncService: """Return the shared metadata sync service, initialising it lazily.""" - global _metadata_sync_service - if _metadata_sync_service is None: + global _metadata_sync_service, _metadata_sync_service_settings + + settings_manager = get_settings_manager() + + if ( + _metadata_sync_service is None + or _metadata_sync_service_settings is not settings_manager + ): _metadata_sync_service = MetadataSyncService( metadata_manager=MetadataManager, preview_service=_preview_service, - settings=get_settings_manager(), + settings=settings_manager, default_metadata_provider_factory=get_default_metadata_provider, metadata_provider_selector=get_metadata_provider, ) + _metadata_sync_service_settings = settings_manager return _metadata_sync_service