module architecture/ formatting

This commit is contained in:
Vladless
2025-07-31 23:42:45 +03:00
parent de61c04f4a
commit 1565ec4820
30 changed files with 261 additions and 148 deletions
+30
View File
@@ -0,0 +1,30 @@
import importlib
import pkgutil
from pathlib import Path
from aiogram import Router
from logger import logger
def load_modules_from_folder(folder: str = "modules") -> list[Router]:
routers = []
base_path = Path(folder)
if not base_path.exists():
logger.warning(f"[Modules] Папка {folder} не найдена, пропускаем загрузку модулей.")
return []
for _finder, name, _ispkg in pkgutil.iter_modules([str(base_path)]):
module_path = f"{folder}.{name}.router"
try:
mod = importlib.import_module(module_path)
if hasattr(mod, "router") and isinstance(mod.router, Router):
routers.append(mod.router)
logger.info(f"[Modules] Загружен модуль: {module_path}")
else:
logger.warning(f"[Modules] В модуле {module_path} не найден router")
except Exception as e:
logger.error(f"[Modules] Ошибка при загрузке {module_path}: {e}")
return routers