TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4667 3.05K
Вышел Hatch v1.16.0 с поддержкой монорепозиториев, dependency groups по PEP 735 и генерацией SBOM. Если не знакомы с этим инструментом, Hatch — это современный менеджер проектов на Python, который объединяет управление виртуальными окружениями, зависимостями, сборку пакетов и публикацию в PyPI. В общем, всё в одном месте: от создания нового проекта до его релиза.​

1️⃣Главная фича релиза — workspaces, которые позволяют работать с монорепами. Раньше если у вас было несколько связанных пакетов в одном репозитории, приходилось городить костыли или переходить на другие инструменты. Теперь можно просто указать в pyproject.toml список пакетов через workspace.members, и Hatch автоматически установит их все в одно окружение в режиме editable. Работает как workspace в Cargo или npm — все пакеты в одном виртуальном окружении, IDE видит их все, pytest может импортировать что угодно.​

3️⃣Второе нововведение — поддержка PEP 735 dependency groups. Это стандартизированный способ группировать зависимости прямо в pyproject.toml, не создавая кучу отдельных файлов типа requirements-dev.txt, requirements-test.txt и так далее. Теперь можно держать всё в одном месте: группы для разработки, тестирования, линтеров и т.д. Причём это именно стандарт, а не очередное проприетарное решение одного инструмента.​

3️⃣Также добавили опцию sbom-files для включения Software Bill of Materials в пакеты. SBOM — это, по сути, полная спецификация всех компонентов и зависимостей вашего софта, что становится важным для безопасности и compliance. Если нужно отслеживать, что именно входит в ваш пакет и откуда оно взялось, теперь можно это делать стандартным способом.

Код в репо, или вот прямая ссылка на новый релиз.

@zen_of_python
  • ❤ 4
More from @zen_of_python
  1. Sep 23, 2026Как __getitem__ превращает объект Python в итерируемый Для цикла for объекту не всегда нуж…
  2. Sep 23, 2026Что меняет re.prefixmatch() в Python 3.15 re.match() проверяет совпадение только в начале…
  3. Sep 23, 2026Pyodide разрешил публиковать WASM-колёса прямо в PyPI В Pyodide 314.0 появилась прямая пуб…
  4. Sep 22, 2026Как применять структурное сопоставление с образцом к деревьям в Python Структурное сопоста…
  5. Sep 22, 2026Почему в Python стоит подменять свой интерфейс, а не httpx Если бизнес-тест напрямую подме…
  6. Sep 22, 2026Как точно типизировать *args и **kwargs в Python Запись *args: tuple[int, str] выглядит ка…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →