Вышла первая версия tyro — генератора CLI на основе аннотаций Python Обложка: Skyread

Вышла первая версия tyro — генератора CLI на основе аннотаций Python

Новости
Главное:

  • Вышел первый крупный релиз инструмента Tyro 1.0 для генерации CLI-интерфейсов из аннотированного по типам Python-кода.
  • Tyro обеспечивает удобное создание командных интерфейсов с поддержкой статической типизации, модульности и автодополнения оболочки.
  • В релизе 1.0 обновлён бэкенд парсинга и генерации справочной информации, улучшена масштабируемость и пользовательский интерфейс.

8 декабря 2025 года состоялся долгожданный релиз Tyro версии 1.0 — открытого инструмента для генерации интерфейсов командной строки (CLI) из аннотированного по типам кода на Python. Проект находится в разработке с октября 2021 года и реализован под лицензией MIT. Tyro призван упростить создание CLI, используя стандартные возможности аннотаций типов Python, строки документации и значения по умолчанию для автоматической генерации удобного текста справки.

Одним из ключевых преимуществ Tyro является работа с статической типизацией. В отличие от других инструментов, которые зависят от словарей, YAML или динамических пространств имён, Tyro лучше интегрируется с IDE и языковыми серверами, а также поддерживает такие инструменты статической проверки, как pyright и mypy. Модульная архитектура Tyro позволяет создавать иерархические конфигурации, что делает этот инструмент удобным как для простых скриптов, так и для масштабных проектов с децентрализованным управлением параметрами.

Использование Tyro просто: достаточно определить функцию или класс с типизированными параметрами, и вызов tyro.cli() создаст интерфейс командной строки для управления запуском скрипта. При этом инструмент поддерживает интеграцию с популярными библиотеками для описания конфигураций, такими как dataclasses, pydantic и attrs. Кроме того, Tyro предлагает дополнительные возможности, включая вложенные структуры, подкоманды и автодополнение оболочки, что облегчает работу конечных пользователей.

Новый релиз 1.0 содержит переработанный бэкенд для парсинга кода и генерации текста справки, что улучшает масштабируемость при работе с большими и сложными конфигурациями. Разработчики также снизили накладные расходы на установку и импорт, а пользовательский интерфейс подкоманд стал более удобным и интуитивным.

Для тех, кто ищет альтернативы, на рынке присутствуют другие проекты с похожей функциональностью, среди которых cappa, cyclopts, defopt, simple-parsing, jsonargparse, clipstick, datargs, fire и clize. Однако Tyro выделяется своей поддержкой стандартных аннотаций типов и хорошей интеграцией с инструментами статической проверки.

Подробная документация и примеры использования доступны по адресу https://brentyi.github.io/tyro/. Проект размещён на GitHub, что позволяет сообществу принимать активное участие в дальнейшем развитии инструмента.

Tagged