From 5bdd2a35e789a7726ccd41e9adfc851f258a03dd Mon Sep 17 00:00:00 2001 From: Dariusz L Date: Sun, 2 Aug 2026 18:07:12 +0200 Subject: [PATCH] refactor: inject metadata sidecar dependencies --- core/download/metadata.py | 13 ++++++++----- core/downloader.py | 5 ++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/download/metadata.py b/core/download/metadata.py index f813213..42c8da9 100644 --- a/core/download/metadata.py +++ b/core/download/metadata.py @@ -1,6 +1,5 @@ """Metadata normalization and sidecar payload helpers for downloads.""" -import importlib import os import time from typing import Any, Dict, Optional @@ -32,9 +31,11 @@ _as_list = as_list _first_present = first_non_empty -def _downloader_module(): - """Return the facade so runtime patches remain effective.""" - return importlib.import_module("core.downloader") +def _require_dependencies(dependencies: Any) -> Any: + """Return explicitly supplied services for metadata sidecars.""" + if dependencies is None: + raise RuntimeError("metadata sidecar dependencies were not provided") + return dependencies def write_model_resolver_metadata( @@ -43,9 +44,11 @@ def write_model_resolver_metadata( category: str = "", source_url: str = "", create_preview: bool = False, + *, + dependencies: Any = None, ) -> Optional[str]: """Write metadata only to the sidecar owned by Model Resolver.""" - facade = _downloader_module() + facade = _require_dependencies(dependencies) metadata_path = facade.get_model_resolver_sidecar_path(dest_path) try: diff --git a/core/downloader.py b/core/downloader.py index df27d90..71f54a7 100644 --- a/core/downloader.py +++ b/core/downloader.py @@ -293,7 +293,10 @@ for _aria2_dependency_name in ( ) -for _download_dependency_name in ("get_download_directory",): +for _download_dependency_name in ( + "get_download_directory", + "write_model_resolver_metadata", +): globals()[_download_dependency_name] = _bind_download_dependencies( globals()[_download_dependency_name] )