Вышел Poetry 1.0.0: новости Python
Команда Poetry 12 декабря сообщила о выходе Poetry 1.0.0. Разработчики благодарят сообщество и подчёркивают вклад активных контрибьюторов в проект. Этот релиз — важный этап развития проекта. В нём представлены новые функции, которые делают работу с проектами Python ещё удобнее.
Содержание
- Новый способ управления окружением Python
- Улучшена поддержка частных индексов
- Улучшено управление конфигурациями
- Улучшена команда add
- Улучшенные возможности для публикаций
- Что дальше
Новый способ управления окружением Python
Дефолтное поведение не изменилось: Poetry старается использовать текущую версию Python, чтобы создать для проекта виртуальное окружение. Однако если она несовместима с определёнными в настоящее время требованиями python к файлу pyproject.toml, Poetry попытается найти совместимую версию.
Более того, теперь есть возможность легко переключаться между версиями Python с помощью команды env use.
Версию можно указать так:
Или даже так:
Чтобы отключить активированную virtualenv, можно воспользоваться системной версией Python для получения поведения по умолчанию.
Команда poetry env info позволяет получить сведения об активированной virtualenv. В выводе вы увидите примерно такую картину:
Узнать путь к virtualenv можно с помощью команды poetry env info --path. Команда poetry env list формирует список virtualenv:
Наконец, удалить virtualenv можно с помощью команды env remove.
Улучшена поддержка частных индексов
Хотя предыдущие версии Poetry поддерживали частные индексы, до выхода версии 1.0.0 не было удобного способа их контролировать. Теперь можно объявлять источник зависимостей:
Для удобства вы можете объявлять частный индекс вторичным. В этом случае он будет всегда использоваться последним, а PyPl останется предпочтительным.
Также можно отключить PyPl, если объявить частный индекс дефолтным:
Улучшено управление конфигурациями
Использование переменных окружения
Иногда, например, при использовании Poetry с инструментами CI, проще использовать переменные окружения, что позволяет не выполнять команды конфигурации. При объявлении переменных окружения необходимо использовать префикс POETRY_, а имя параметров указывать в верхнем регистре. Точки и тире при этом заменяются андерскорами.
Это можно использовать при работе с учётными данными:
Локальная конфигурация
Poetry 1.0.0 позволяет указывать специфические для проекта настройки с помощью флага --local в команде config.
Локальные настройки хранятся в файле poetry.toml.
Префикс settings. можно не использовать
Настройки теперь хранятся отдельно, необходимости использовать префикс settings. нет. Если вы уже указали настройки, придётся их изменить.
Улучшена команда add
С помощью команды add стало проще добавлять зависимости. Поддерживаются такие форматы:
- имя:
pendulum; - имя и ограничения:
requests@^2.23.0; - Git URL: git+https://github.com/sdispater/poetry.git.
- Git URL с уточнением: git+https://github.com/sdispater/poetry.git#develop;
- путь к файлу:
../my-package/my-package.whl; - путь к директории:
../my-package/; - URL:
https://example.com/packages/my-package-0.1.0.tar.gz.
В ограничениях также можно указывать расширения.
Как следствие, параметры --git и --path были удалены. Если нужно обновить существующие зависимости, можно использовать ограничение latest.
Улучшенные возможности для публикаций
Поддержка токенов PyPl API
При публикации в PyPl можно использовать токены API вместо учётных данных. Настроить токены можно командой config.
Поддержка пользовательских сертификатов и взаимной аутентификации TLS
Poetry 1.0.0 работает с репозиториями, которые защищены пользовательскими сертификатами или требуют аутентификации клиента с помощью сертификата. Ниже примеры настроек репозитория foo для проверки с помощью хранилища сертификата и использования сертификата клиента. Обратите внимание, переменные конфигурации устанавливать не надо.
Поддержка произвольных маркеров для условных зависимостей
Poetry 1.0.0 поддерживает маркеры окружения через свойство markers.
Что дальше
Команда Poetry сделала очень много, но планов дальнейшего развития ещё больше. В ближайшее время планируется сделать Poetry расширяемой с помощью плагинов. Это станет шагом к созданию экосистемы вокруг Poetry и к появлению новых важных функций.
Дмитрий Дементий
6 лет назад
5









