Релиз tyro 1.0 — инструмента для генерации CLI-интерфейсов из аннотированного по типам кода Python
8 декабря 2025 года состоялся первый мажорный релиз открытого проекта tyro. Это инструмент для генерации CLI-интерфейсов из аннотированного по типам кода Python. Решение опубликовано на GitHub под лицензией MIT. Проект находится в разработке с октября 2021 года.
Преимущества tyro:
определите вещи один раз (define things once). Стандартные аннотации типов Python, строки документации и значения по умолчанию анализируются для автоматической генерации интерфейсов командной строки с удобным текстом справки;
статические типы. В отличие от инструментов, зависящих от словарей, YAML или динамических пространств имён, аргументы, заполняемые tyro, лучше распознаются IDE и языковыми серверами, а также инструментами статической проверки, такими как pyright и mypy;
модульность. tyro поддерживает иерархические конфигурации, что упрощает децентрализацию определений, значений по умолчанию и документации.
tyro разработан для быстрого использования в скриптах (throwaway script), одновременно повышая удобство поддержки крупных проектов. Инструмент tyro.cli() позволяет определять настраиваемые скрипты с помощью функций:
Также решение умеет создавать экземпляры конфигураций, определённых с помощью таких инструментов, как dataclasses, pydantic и attrs:
Другие функции tyro включают генерацию текста справки (helptext), вложенные структуры, подкоманды и автодополнение оболочки. Примеры и справочник по API доступны для изучения в документации проекта.
Альтернативы tyro: cappa, cyclopts и defopt, simple-parsing и jsonargparse, clipstick, datargs, fire и clize.
Релиз tyr 1.0 представляет переписанный бэкенд для парсинга и генерации текста справки, который лучше масштабируется для больших конфигураций. В решении снижены накладные расходы на установку и
Читать на habr.com