This commit is contained in:
2026-02-23 13:31:23 +03:00
parent ae9c89c765
commit 49d4205737

127
README.md
View File

@@ -0,0 +1,127 @@
# 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)
“””
---