# Digitalization Project Проект предназначен для автоматической обработки Excel-отчетов из различных маркетплейсов (OZON, Yandex, WB), нормализации артикулов, расчета аналитических показателей и сохранения результатов с условным форматированием. --- ## 📁 Структура проекта ``` digitalization/ │ ├─ handlers/ │ ├─ handler.py # Классы BaseHandler и Handler для работы с Excel │ └─ s_daemon.py # Поиск файлов в директории input │ ├─ schema/ │ └─ pydantic.py # Классы Settings, JsonRead, Translit │ ├─ input/ # Папка для исходных файлов Excel ├─ output/ # Папка для сохранения обработанных файлов ├─ columns.json # JSON-файл с настройками колонок для каждого маркетплейса ├─ run.py # Основной скрипт запуска обработки └─ .env # Файл с настройками проекта (пути и шаблон артикула) ``` --- ## ⚙️ Установка 1. Клонировать репозиторий: ```bash git clone <репозиторий> cd digitalization ``` 2. Создать виртуальное окружение: ``` python -m venv .venv ``` 3. Установить зависимости: ``` pip install -r requirements ``` ⸻ 📝 Настройка Создать .env файл в корне проекта: ``` INPUTDIR=./input OUTPUTDIR=./output PATTERN=[A-Z0-9]+ ``` Создать columns.json с настройками колонок для каждого маркетплейса: ``` { "ozon": { "Артикул": 0, "Наименование": 1, "Выручка": 2, "Прибыль": 3, "Все_удержания_магазина": 4 }, "yandex": { "Артикул": 0, "Наименование": 1, "Выручка": 2, "Прибыль": 3 } } ``` ⸻ 🚀 Запуск python run.py или make run После обработки файлы будут сохранены в папку output/ с условным форматированием: • Колонки "Маржинальность" и "Прибыль" окрашиваются: • Красный для отрицательных значений • Зеленый для положительных значений • Заголовки первой строки жирные ⸻ 🛠️ Основные классы ``` BaseHandler • Конструктор: __init__(file_path:str) — сохраняет путь к файлу • Методы: • struct() — возвращает структуру Excel (ExcelFile) • read() — читает весь Excel в DataFrame Handler(BaseHandler) • get_articles_with_sales(columns: dict, sheet_name: str) • Нормализация артикулов • Группировка по артикулу • Расчет дополнительных колонок: • “Все удержания в %” • “Всего заказано” и “Процент выкупа” • “Маржинальность” • Сортировка по колонке "Прибыль" • Условное форматирование Excel (цвета) Settings и JsonRead • Settings — хранит конфигурацию проекта из .env • JsonRead — загружает соответствие колонок для каждого маркетплейса из columns.json • Translit — словарь для транслитерации кириллицы в латиницу ``` ⸻ ⚠️ Зависимости • Python ≥ 3.10 • pandas • openpyxl • pydantic, pydantic-settings • jinja2 ⸻ 🔧 Примечания • Файлы Excel должны иметь корректное название (ozon, yandex, wb) • Папки input и output создаются автоматически • Поддерживаются только Excel-файлы (.xlsx) “”” ---