diff --git a/README.md b/README.md index e69de29..e926389 100644 --- a/README.md +++ b/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) +“”” + +---