[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", ] [project.optional-dependencies] # Клиент Kafka — необязательная часть пакета: без него генератор пишет в файл # и остаётся переносимым (спека генератора, раздел 9). Приёмник импортирует # клиента внутри функции, поэтому пакет без этой группы живой. kafka = ["confluent-kafka>=2.6"] [dependency-groups] dev = [ "pytest>=8", # Тот же клиент нужен и на машине разработчика: иначе ty не разберёт # импорт приёмника, а ruff и тесты видели бы половину кода. "confluent-kafka>=2.6", "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"]