readme
This commit is contained in:
127
README.md
127
README.md
@@ -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)
|
||||
“””
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user