Slide 1

Slide 1 text

Сурен Хоренян MTS AI Знакомство с Hatch для сборки и публикации проектов Доклад Почему нужно отказаться от setuptools

Slide 2

Slide 2 text

Зачем? Какую задачу мы решаем? 1

Slide 3

Slide 3 text

Зачем? Какую задачу мы решаем? Сборка и публикация Python пакетов Публикация на pypi и внутренние artifactory: GitLab, JFrog, Nexus и тд.. Для последующей установки через pip и прочие Poetry, Pipenv, PDM и т.д.. 2

Slide 4

Slide 4 text

Какие системы сборки доступны сегодня? 3

Slide 5

Slide 5 text

setuptools (setup.py) Какие системы сборки доступны сегодня? 4

Slide 6

Slide 6 text

setuptools (setup.py) Flit Какие системы сборки доступны сегодня? Кто знаком с Flit? 5

Slide 7

Slide 7 text

setuptools (setup.py) Flit Какие системы сборки доступны сегодня? Кто знаком с Flit? PDM 6

Slide 8

Slide 8 text

setuptools (setup.py) Flit Какие системы сборки доступны сегодня? Кто знаком с Flit? Poetry PDM 7

Slide 9

Slide 9 text

setuptools (setup.py) Hatch Flit Какие системы сборки доступны сегодня? Кто знаком с Flit? Poetry PDM 8

Slide 10

Slide 10 text

setuptools (setup.py) Hatch Flit Какие системы сборки доступны сегодня? Кто знаком с Flit? Poetry PDM И прочие: - PyBuilder - PyInstaller - cx_Freeze и так далее 9

Slide 11

Slide 11 text

Существует N стандартов.. 10

Slide 12

Slide 12 text

Hatch Старт проекта: 2017 г Активное развитие проекта, релиз v1.0.0: 2022 год Что ждали? Нужно было подождать утверждения новых стандартов сборки и распространения пакетов. Чего дождались? Hatch позволяет использовать pyproject.toml или hatch.toml для конфигурации. 11

Slide 13

Slide 13 text

Python Packaging User Guide Hatchling первый в примерах https://packaging.python.org/ 12

Slide 14

Slide 14 text

Итак, Hatch.. или Hatchling? Hatch Hatchling 13

Slide 15

Slide 15 text

Два в одном Hatch Командная утилита. Через Hatch происходит: - публикация пакета - управление окружениями - версионирование Hatchling Система сборки, как setuptools 14

Slide 16

Slide 16 text

Два в одном Hatchling Система сборки, как setuptools На самом деле, мы говорим о Hatchling. Именно он пришёл на замену setuptools. Hatch Командная утилита. Через Hatch происходит: - публикация пакета - управление окружениями - версионирование 15

Slide 17

Slide 17 text

Начало работы 16

Slide 18

Slide 18 text

Как получить Hatch Установка через: - pipx - brew - pip - скачать установщик с сайта - conda, miniconda, mamba… 17

Slide 19

Slide 19 text

Создание нового проекта hatch new 18

Slide 20

Slide 20 text

Обновление версии 19

Slide 21

Slide 21 text

Даже release candidate Обновление версии 20

Slide 22

Slide 22 text

Автоматически сгенерированные настройки для сборки Стандартный конфиг 21

Slide 23

Slide 23 text

Команды для выполнения тестов (и других действий) Стандартный конфиг 22

Slide 24

Slide 24 text

Выполнение команды Автоматический запуск виртуального окружения Автоматическая установка требуемых пакетов 23

Slide 25

Slide 25 text

А где виртуальное окружение? 24

Slide 26

Slide 26 text

А где виртуальное окружение? Вот же оно: 25

Slide 27

Slide 27 text

Зависимости Вы видели таблицы? 26

Slide 28

Slide 28 text

Сборка 27

Slide 29

Slide 29 text

Сборка 28

Slide 30

Slide 30 text

Простейший переезд Плюсы 29

Slide 31

Slide 31 text

Простейший переезд 30

Slide 32

Slide 32 text

Простейший переезд 31

Slide 33

Slide 33 text

Легкая сборка и публикация проекта Плюсы 32

Slide 34

Slide 34 text

Расширяемый Использует систему плагинов pluggy Плюсы 33

Slide 35

Slide 35 text

Активная поддержка, в том числе сообществом Плюсы 34

Slide 36

Slide 36 text

Обратить внимание: Hatch не подходит для управления зависимостями. Вам всё ещё нужен Poetry / Pipenv / PDM … 35

Slide 37

Slide 37 text

Минусы Будут? 36

Slide 38

Slide 38 text

Вопросы https://t.me/mtsai Канал MTS AI Чат по Python в МТС Канал Сурена https://t.me/mts_python https://t.me/Khorenyan 37

Slide 39

Slide 39 text

AI Спасибо за внимание! Оставить отзыв о докладе