понедельник, 2 июня 2025 г.

pyproject.toml, Giga, Python. Code Format, Tools

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,

обеспечивая четкую организацию зависимостей, настроек сборки и другой важной информации.

Комментариев нет:

Отправить комментарий