pyproject.toml, Giga, Python. Code Format, Tools
https://giga.chat/link/gcsObBTGeV
Файл pyproject.toml является частью спецификации PEP 518,
введенной сообществом Python-разработчиков для улучшения процесса упаковки и распространения программного обеспечения.
Этот файл служит аналогом старых способов конфигурирования метаданных проектов (например, setup.py) и
предназначен для унифицированного описания различных аспектов Python-проекта.
Основные цели pyproject.toml:
- Стандартизация формата конфигурационных файлов.
- Возможность декларативного задания требований к сборочным инструментам.
- Упрощение взаимодействия с инструментами вроде
setuptools,poetry,hatchи др.
Что содержится в pyproject.toml?
Типичный пример файла pyproject.toml включает следующие секции:
[build-system]
Здесь задаются требования к сборке проекта. Например,
указывается версия стандарта построения (PEP 517) и требуемые build-backends (инструменты сборки):
[build-system] requires = ["setuptools>=42", "wheel"] build-backend = "setuptools.build_meta"
[tool.<name>]
Эта секция зарезервирована для конкретных инструментов, использующихся проектом.
Например, если вы используете Poetry, Hatch или другие утилиты, то ваши специфические настройки попадут сюда:
[tool.poetry] name = "example-package" version = "0.1.0" description = "A simple example package." authors = ["Your Name <you@example.com>"] license = "MIT" readme = "README.md" packages = [{include = "src"}] [tool.poetry.dependencies] python = "^3.10" requests = "^2.28.1" [tool.poetry.dev-dependencies] pytest = "^7.1.2" black = "^22.3.0"
Или для инструмента Hatch:
[tool.hatch.metadata] name = "my-python-app" version = "0.1.0" [tool.hatch.build.targets.wheel] versions = ["standard"]
Почему появился pyproject.toml?
До появления этого файла разработчики часто использовали комбинацию разных файлов
(например, setup.py, requirements.txt, MANIFEST.in) для описания своей инфраструктуры.
Однако такие подходы были громоздкими и могли приводить к проблемам совместимости.
Файл pyproject.toml решает многие проблемы,
предлагая единый стандартный способ определения метаданных и конфигураций для любого Python-пакета.
Таким образом,
файл pyproject.toml играет ключевую роль в современных проектах Python,
обеспечивая четкую организацию зависимостей, настроек сборки и другой важной информации.
Комментариев нет:
Отправить комментарий