import server.backend.excel as excel from dotenv import load_dotenv #Работа с env import os from pathlib import Path load_dotenv() base_dir = Path(os.getenv("DIR")) handlers = { #метки какие файлы есть и должны быть занесены с вызовами функций из файла "period_closure_income": excel.YandexHandler, "0": excel.WBHandler, "отчет о реализации товара": excel.OZONHandler, "realizationreportcis": excel.OZONPurchasesHandler, "уведомление о выкупе": excel.WBPurchasesHandler, "Товары, переданные на комиссию озон": excel.OZONComHandler, "Товары, переданные на комиссию вб": excel.WBComHandler, "Товары, переданные на комиссию яндекс": excel.YandexComHandler } #Проход по всем файлам в директории def validating(): if not base_dir.exists(): raise (f"Директория {base_dir} не существует") #Проверка существует ли директория for file in base_dir.rglob("*.xlsx"): if file.name.startswith("~$"): #Проверка не редактируемый ли файл continue name = file.stem.lower() print(f"\n🔹 Файл: {file.name}") label = None match file: case _ if "period_closure_income" in name: label = "period_closure_income" case _ if name == "0": label = "0" case _ if "отчет о реализации товара" in name: label = "отчет о реализации товара" case _ if "вб" in name: label = "Товары, переданные на комиссию вб" case _ if "озон" in name: label = "Товары, переданные на комиссию озон" case _ if "яндекс" in name: label = "Товары, переданные на комиссию яндекс" case _ if "realizationreportcis" in name: label = "realizationreportcis" case _ if "уведомление о выкупе" in name: label = "уведомление о выкупе" case _: #Для неизвестных файлов print("Неизвестный файл") if label: handler_class = handlers.get(label) if handler_class: # создаём объект для текущего файла handler = handler_class(file) # передаём путь к файлу handler.process() # dfs читается внутри объекта else: print(f"⚠️ Нет обработчика для метки '{label}'")