2026-10-09 16:30:31 +04:00

40 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Горячие папки ИС Сканирование: фабрика по настройкам (R-6).
`SCAN_HOTFOLDER_MODE=local` — `LocalHotFolder` (модуль `src.gateway.smb` не импортируется), `smb` — `SmbHotFolder`
из `OPENBAO.SMB` (импорт модуля — только здесь, лениво).
"""
from src.core.config import Settings
from src.gateway.hotfolder import HotFolder, LocalHotFolder
__all__ = ["create_hotfolder"]
def create_hotfolder(settings: Settings) -> HotFolder:
"""Горячая папка для режима `SCAN_HOTFOLDER_MODE`. К файловой системе и шаре не обращается."""
mode = settings.SCAN_HOTFOLDER_MODE
if mode == "local":
return LocalHotFolder(
settings.SCAN_HOTFOLDER_PATH,
settings.SCAN_INPUT_DIR,
settings.SCAN_OUTPUT_DIR,
settings.SCAN_TMP_DIR,
settle_seconds=settings.SCAN_SETTLE_SECONDS,
cleanup=settings.SCAN_CLEANUP,
)
if mode == "smb":
from src.gateway.smb import SmbHotFolder # noqa: PLC0415 — ленивый импорт: в режиме local smb не нужен (R-6)
smb = settings.OPENBAO.SMB
return SmbHotFolder(
smb.SMB_HOST,
smb.SMB_PATH,
settings.SCAN_INPUT_DIR,
settings.SCAN_OUTPUT_DIR,
login=smb.SMB_LOGIN,
password=smb.SMB_PASSWORD,
settle_seconds=settings.SCAN_SETTLE_SECONDS,
cleanup=settings.SCAN_CLEANUP,
)
raise ValueError(f"неизвестный SCAN_HOTFOLDER_MODE: {mode!r}")