Files
Excel-project/server/backend/validating_files.py
2025-10-30 12:42:52 +03:00

59 lines
2.9 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.

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}'")