Сурен Хоренян
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