Files
clickstream-data-platform/generator/pyproject.toml
T
ddadminandClaude Opus 5 722dbe22b7 feat(generator): торговые события — корзина, покупка, сырой ecommerce
- Зачем:
  - клиентская сторона мира становится целой: без add_to_cart и purchase
    в данных нет ни таксономии событий, ни вложенного JSON, ни денег,
    а метка «покупатель» из плана состава ни на что не влияла (#40).
- Что:
  - добавлен модуль commerce: корзина шире заказа, номер заказа вида
    ГГГГММДД-NNNN, промокод без скидки в сумме, сырой ecommerce через orjson;
  - метка покупателя получила два рычага — долгую жизнь куки в плане и
    свою воронку в дне; CART_PERCENT опущен с 8 до 6, чтобы конверсия
    мира осталась около 2%;
  - часть цен каталога получила копейки: productPrice округляется форматом,
    purchaseRevenue несёт точную сумму — расхождение живёт внутри события;
  - граница суток забирает страницу подтверждения вместе с её покупкой:
    потерь на клиентской стороне этот этап не заводит;
  - решения и перемеренные числа мира записаны в спеку генератора, §9.
- Проверка:
  - make lint && make typecheck && make test — 383 passed (было 353).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 19:13:30 +03:00

33 lines
1.1 KiB
TOML

[project]
name = "clickstream-generator"
version = "0.1.0"
description = "Генератор кликстрима учебного стенда: контракт схемы события и модельный мир"
readme = "README.md"
# Верхняя граница — не педантизм: обещание побайтовой воспроизводимости
# держится на зафиксированных версиях (спека генератора, раздел 2).
requires-python = ">=3.14,<3.15"
dependencies = [
"numpy>=2",
"orjson>=3.11.9",
]
[dependency-groups]
dev = [
"pytest>=8",
"ruff>=0.15",
# Типчекер; молод (0.0.x), но версия закреплена в uv.lock. Настройка
# сверена с доками Astral через Context7: запуск `uv run ty check`,
# правил по умолчанию пока достаточно.
"ty>=0.0.65",
]
[build-system]
requires = ["uv_build>=0.11.21,<0.12.0"]
build-backend = "uv_build"
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]