pylock.toml — новый стандарт локфайлов в Python
Вчера был одобрен эпический
PEP 751, который вводит стандартный формат локфайлов в Python. Несколько лет дизайна, итераций и
обсуждений, почти тысяча лайков на Reddit у этой новости, в общем большое событие.
Если вы знаете, что такое локфайлы, то новость на этом заканчивается. Называться будет pylock.toml, теперь ждем пока все инструменты постепенно на него переедут.
Если не знаете, то lockfile -- это просто текстовый файл определенного формата с полным описанием вашего Python окружения. Грубо говоря, у Python проектов будет ожидаться pylock.toml вместо requirement.txt. Детали:
- В `pylock.toml` будут записаны все установленные пакеты, включая непрямые зависимости, с их точными версиями, для всех ОС сразу, со всеми вариациями дополнительных зависимостей и прочей технической информацией.
- Это очень полезно, потому что теперь у пользователей и участников проекта будет устанавливаться в точности одинаковое Python окружение (и с гораздо большей вероятностью успеха). В общем pylock.toml сильно упрощает жизнь другим пользователям проекта, включая будущих вас :)
- Чтобы у вас в проекте появился pylock.toml, нужно будет пользоваться инструментами типа
uv, а список прямых зависимостей писать в pyproject.toml вместо requirements.txt. На самом деле это рекомендуется делать уже сегодня. Просто пока uv порождает "нестандартный" uv.lock вместо "стандартного" pylock.toml, но это разработчики uv сами уже изменят в будущем.