Сборка python проекта с poetry

0
(0)

Рассматривать сборку с использованием poetry будем на все том же тестовом проекте. Его полный код можно найти тут.

Удаляем все, что у нас было в __init__py, оставляя его абсолютно пустым.

Далее удаляем setup.py, он больше не нужен и вместо него в корень проекта добавляем pyproject.toml:

TOML
[tool.poetry]
name = "test_package"
version = "0.1.1"
description = "Test packages"
authors = ["Trusikhin Andrei"]

[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"

[tool.poetry.dependencies]
python = ">=3.8"
pyyaml = "^6.0.0"

[tool.poetry.scripts]
cmd_test = "test_package.main:main"


[[tool.poetry.source]]
name = "gitlab_test_project"
url = "https://<you_gitlab_domain>/api/v4/projects/<CI_PROJECT_ID/packages/pypi"

Теперь наш requirements.txt будет выглядеть так:

Plaintext
PyYAML==6.0.1
poetry==1.7.1

Устанавливаем зависимости:

Bash
pip3 install -r src/requirements.txt

Устанавливаем зависимости через poetry:

Bash
poetry install

В корне проекта также появится файл poetry.lock с описанием зависимостей. Это привет из мира composer, nodejs и прочего, где также при установки генерируется .lock файл.

Уже сейчас мы можем запустить наш код вот так, без установки пакета в систему:

Bash
poetry run cmd_test

Чтобы собрать пакет, выполним:

Bash
poetry build

Как и в случае со сборкой через setuptools, пакет и архив будет лежать в директории dist.

У poetry есть отличный плагин для динамического управления версиями. Установить его можно так:

Bash
poetry self add "poetry-dynamic-versioning[plugin]"

Больше возможностей в официальной документации.

Я же обычно использую CLI poetry version, который становится доступен после установки плагина. Инструмент позволяет делать бамп версии в pyproject.toml без необходимости наличия дополнительных файлов, как это было в предыдущих статьях.

Пример использования:

Bash
poetry version prerelease

Bash
poetry version patch

Возможностей на самом деле больше, они все доступы по:

Bash
poetry version --help

Чтобы опубликовать пакет, нужно сначала добавить сертификат, если используется свой центр сертификации, а затем опубликовать пакет:

Bash
poetry config certificates.<имя из pyproject>.cert <path_to_certificate>
poetry publish --repository <имя из pyproject> -u <user> -p <pass>

Имя из pyproject.toml это то, что мы описывали вот тут:

TOML
[[tool.poetry.source]]
name = "gitlab_test_project"

Насколько статья полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

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