Вышел 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
Python: 3.7.1
Implementation: CPython
Path: /path/to/poetry/cache/virtualenvs/test-O3eWbxRl-py3.7
Valid: True
System
Platform: darwin
OS: posix
Python: /path/to/main/python
Узнать путь к virtualenv
можно с помощью команды poetry env info --path
. Команда poetry env list
формирует список virtualenv
:
test-O3eWbxRl-py2.7
test-O3eWbxRl-py3.6
test-O3eWbxRl-py3.7 (Activated)
Наконец, удалить virtualenv
можно с помощью команды env remove
.
Улучшена поддержка частных индексов
Хотя предыдущие версии Poetry поддерживали частные индексы, до выхода версии 1.0.0 не было удобного способа их контролировать. Теперь можно объявлять источник зависимостей:
Для удобства вы можете объявлять частный индекс вторичным. В этом случае он будет всегда использоваться последним, а PyPl останется предпочтительным.
Также можно отключить PyPl, если объявить частный индекс дефолтным:
Улучшено управление конфигурациями
Использование переменных окружения
Иногда, например, при использовании Poetry с инструментами CI, проще использовать переменные окружения, что позволяет не выполнять команды конфигурации. При объявлении переменных окружения необходимо использовать префикс POETRY_
, а имя параметров указывать в верхнем регистре. Точки и тире при этом заменяются андерскорами.
Это можно использовать при работе с учётными данными:
Локальная конфигурация
Poetry 1.0.0 позволяет указывать специфические для проекта настройки с помощью флага --local
в команде config
.
Локальные настройки хранятся в файле poetry.toml
.
Префикс settings.
можно не использовать
Настройки теперь хранятся отдельно, необходимости использовать префикс settings.
нет. Если вы уже указали настройки, придётся их изменить.
Читайте также полезные статьи из цикла «Продвинутый Python»:
- Часть 1: итераторы, генераторы, itertools.
- Часть 2: замыкания, декораторы, модуль functools.
- Часть 3: классы и метаклассы.
Улучшена команда 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 лет назад