mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
refactor(settings): lazily initialize manager
This commit is contained in:
@@ -3,6 +3,7 @@ import json
|
||||
import os
|
||||
import logging
|
||||
from datetime import datetime, timezone
|
||||
from threading import Lock
|
||||
from typing import Any, Dict, Iterable, List, Mapping, Optional
|
||||
|
||||
from ..utils.settings_paths import ensure_settings_file
|
||||
@@ -688,4 +689,29 @@ class SettingsManager:
|
||||
|
||||
return templates.get(model_type, '{base_model}/{first_tag}')
|
||||
|
||||
settings = SettingsManager()
|
||||
|
||||
_SETTINGS_MANAGER: Optional["SettingsManager"] = None
|
||||
_SETTINGS_MANAGER_LOCK = Lock()
|
||||
|
||||
|
||||
def get_settings_manager() -> "SettingsManager":
|
||||
"""Return the lazily initialised global :class:`SettingsManager`."""
|
||||
|
||||
global _SETTINGS_MANAGER
|
||||
if _SETTINGS_MANAGER is None:
|
||||
with _SETTINGS_MANAGER_LOCK:
|
||||
if _SETTINGS_MANAGER is None:
|
||||
_SETTINGS_MANAGER = SettingsManager()
|
||||
return _SETTINGS_MANAGER
|
||||
|
||||
|
||||
def reset_settings_manager() -> None:
|
||||
"""Reset the cached settings manager instance.
|
||||
|
||||
Primarily intended for tests so they can configure the settings
|
||||
directory before the manager touches the filesystem.
|
||||
"""
|
||||
|
||||
global _SETTINGS_MANAGER
|
||||
with _SETTINGS_MANAGER_LOCK:
|
||||
_SETTINGS_MANAGER = None
|
||||
|
||||
Reference in New Issue
Block a user