From 6d52bcbbe701522cbb7f54f6966914eaf8fac08e Mon Sep 17 00:00:00 2001 From: itqop Date: Wed, 5 Nov 2025 03:12:10 +0300 Subject: [PATCH] fix: fixes --- src/dataloader/api/__init__.py | 2 ++ src/dataloader/workers/pipelines/__init__.py | 23 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/dataloader/api/__init__.py b/src/dataloader/api/__init__.py index 490e546..dd00155 100644 --- a/src/dataloader/api/__init__.py +++ b/src/dataloader/api/__init__.py @@ -13,6 +13,7 @@ from .os_router import router as service_router from .v1 import router as v1_router from dataloader.context import APP_CTX from dataloader.workers.manager import build_manager_from_env, WorkerManager +from dataloader.workers.pipelines import load_all as load_pipelines _manager: WorkerManager | None = None @@ -25,6 +26,7 @@ async def lifespan(app: tp.Any) -> AsyncGenerator[None, None]: """ global _manager await APP_CTX.on_startup() + load_pipelines() _manager = build_manager_from_env() await _manager.start() try: diff --git a/src/dataloader/workers/pipelines/__init__.py b/src/dataloader/workers/pipelines/__init__.py index 90b3fe0..9dd033c 100644 --- a/src/dataloader/workers/pipelines/__init__.py +++ b/src/dataloader/workers/pipelines/__init__.py @@ -1,2 +1,25 @@ """Модуль пайплайнов обработки задач.""" +# src/dataloader/workers/pipelines/__init__.py +from __future__ import annotations + +import importlib +import pkgutil +from typing import Iterable + + +def load_all() -> None: + """ + Импортирует все модули в пакете pipelines, чтобы сработали @register(). + """ + pkg_name = __name__ + for mod in iter_modules(): + importlib.import_module(f"{pkg_name}.{mod}") + + +def iter_modules() -> Iterable[str]: + """ + Возвращает имена всех подпакетов/модулей в текущем пакете. + """ + for m in pkgutil.iter_modules(__path__): # type: ignore[name-defined] + yield m.name