Mediumpackaging
Что такое pyproject.toml?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
pyproject.toml (PEP 518, 621) — современный конфигурационный файл Python-проекта, замена setup.py. Единый источник правды.
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "mypackage"
version = "1.0.0"
description = "My awesome package"
requires-python = ">=3.10"
dependencies = ["requests>=2.28", "click"]
[project.optional-dependencies]
dev = ["pytest", "mypy"]
[project.scripts]
myapp = "mypackage.cli:main"
[project.urls]
homepage = "https://github.com/me/mypackage"
[tool.pytest.ini_options]
testpaths = ["tests"][build-system]— какой build backend (setuptools, flit, hatchling, poetry-core);[project]— метаданные: name, version, dependencies, classifiers;[project.scripts]— entry points для CLI;[tool.X]— конфиг для инструментов (pytest, black, mypy, ruff);- poetry, hatch, pdm — обёртки, упрощающие разработку.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.