воскресенье, 1 июня 2025 г.

pyproject.toml, Giga

pyproject.toml, Giga

https://giga.chat/link/gcsJhXtnzn Python, Project Structure

https://giga.chat/link/gcsJhXtnzn

Файл pyproject.toml стал стандартом де-факто для описания метаданных и конфигурации

Python-проектов начиная с версии Python 3.8 и PEP 518,

который предложил стандартный способ определения зависимостей и требований к сборке пакетов.

Этот файл играет ключевую роль в современной разработке на Python,

поскольку позволяет унифицированно задать требования к инструментам сборки,

спецификации зависимостей и другим аспектам проекта.

Вот пример простого файла pyproject.toml:

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[tool.black]
line-length = 88
target-version = ['py37']

[tool.isort]
profile = "black"

[tool.ruff]
select = ["F", "E", "W", "C", "B"]

[tool.poetry]
name = "example-pkg-yourusername"
version = "0.1.0"
description = "Example package created using Poetry."
authors = ["Your Name <you@example.com>"]
license = "MIT"
readme = "README.md"
packages = [{include = "src"}]

[tool.poetry.dependencies]
python = "^3.7"
requests = "^2.25.1"

[tool.poetry.dev-dependencies]
pytest = "^6.2.5"

Давайте разберём ключевые секции этого файла подробнее:

[build-system]

Эта секция определяет набор инструментов и зависимость для сборки пакета:

  • requires: список обязательных зависимостей для сборки (обычно это setuptools и wheel).
  • build-backend: имя встроенной системы сборки (чаще всего это setuptools.build_meta).

Инструменты проверки стиля и анализа кода ([tool.*])

Эти секции используются различными инструментами для задания специфической конфигурации:

  • Black: настраивается длина строки и целевые версии Python.
  • Isort: задаётся профиль сортировки импортов.
  • Ruff: указывается набор правил проверки кода.

[tool.poetry]

Это одна из наиболее распространённых секций для управления зависимостями и настройками

проекта с помощью менеджера пакетов Poetry:

  • name: название пакета.
  • version: версия пакета.
  • description: краткое описание пакета.
  • authors: авторы проекта.
  • license: лицензия на распространение.
  • readme: путь к файлу ReadMe.
  • packages: пути к основным пакетам проекта.

[tool.poetry.dependencies]

Здесь перечисляются зависимости основного проекта (production-dependencies):

  • Версии Python.
  • Внешние библиотеки, такие как requests.

[tool.poetry.dev-dependencies]

Здесь находятся зависимости, необходимые исключительно для разработки (dev-dependencies),

такие как тестировочные библиотеки (pytest).

Зачем нужен pyproject.toml?

Использование pyproject.toml даёт следующие преимущества:

  • Стандартизованный способ предоставления информации о проекте.
  • Минимизирует различия между рабочими процессами разработки.
  • Унифицирует установку и сборку проектов независимо от используемого менеджером пакетов.
  • Улучшает контроль над зависимостями и процессом сборки.

Благодаря таким преимуществам файл pyproject.toml

стал обязательным элементом практически каждого современного Python-проекта.

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

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