AI News Watcher
Tuesday, May 26, 2026  ·  Daily briefing
Feed Telegram
Daily briefing · By AI News Watcher · May 26, 2026 · 5 min read · HuggingFace ← Back to feed

Hugging Face Hub: Важный Hotfix устраняет проблемы с typer daily

Изменения в библиотеке Typer версии 0.26.0 привели к критическим сбоям в работе командной строки Hugging Face Hub, что потребовало незамедлительного выпуска исправления v1.16.3.

Hero illustration: Hugging Face Hub: Важный Hotfix устраняет проблемы с typer.

Редакция · Daily briefing

Hugging Face Hub оперативно выпустил обновление v1.16.3, чтобы устранить критические проблемы совместимости, вызванные недавними изменениями в библиотеке Typer. Обновление Typer до версии 0.26.0 привело к непредвиденным сбоям в работе инструментов командной строки Hugging Face Hub, потребовав немедленного вмешательства для восстановления стабильности.

Срочный хотфикс для Hugging Face Hub: обновление до версии 1.16.3

Hugging Face Hub выпустил срочное обновление v1.16.3 26 мая, чтобы немедленно устранить серьезные проблемы совместимости с библиотекой Typer. Этот хотфикс стал неотложной реакцией на критические сбои, вызванные обновлением Typer до версии 0.26.0, которое нарушило функциональность инструментов командной строки (CLI) Hugging Face Hub. Предыдущая версия, v1.16.2, была выпущена незадолго до этого, но не содержала необходимых исправлений, так как проблема с Typer возникла внезапно и потребовала быстрого реагирования.

Необходимость в столь быстром выпуске v1.16.3 была обусловлена многочисленными ошибками в CLI, которые проявлялись после обновления Typer. Эти ошибки включали некорректное поведение команд --help, неправильную обработку глобальных флагов форматирования, таких как --json и -q, а также сбои в тестах CI. Таким образом, версия v1.16.3 представляет собой ключевое исправление, направленное на восстановление стабильной работы критически важных компонентов платформы.

Причины несовместимости: изменения в Typer 0.26.0

Основной причиной возникновения проблем совместимости стала новая версия Typer 0.26.0, выпущенная 26 мая. В этой версии произошли значительные внутренние изменения, в частности, Typer начал использовать «вендоринг» библиотеки Click внутри себя, а также удалил Click из своих явных зависимостей. Это означает, что вместо того чтобы зависеть от внешней установки Click, Typer теперь включает собственную копию Click в свой пакет.

Эти изменения оказали прямое и негативное влияние на интерфейс командной строки (CLI) Hugging Face Hub. Инструменты CLI Hugging Face Hub напрямую импортируют публичный пакет Click в нескольких своих модулях, таких как cli/_cli_utils.py, cli/_help_formatter.py и cli/skills.py. Поскольку Typer 0.26.0 больше не устанавливает Click как транзитивную зависимость, эти прямые импорты в Hugging Face Hub начали завершаться ошибками, вызывая неработоспособность многих команд.

Конкретные проблемы, с которыми столкнулись пользователи CLI, были разнообразны и серьезны. При вызове команды с флагом --help (например, hf jobs ps --help или hf spaces ls --help) помощь отображалась корректно, однако затем в стандартный поток ошибок (stderr) выводилось сообщение click.exceptions.Exit: 0. Это происходило потому, что Typer теперь генерировал исключение typer._click.exceptions.Exit из своей внутренней, "вендоренной" копии Click, которое специальный обработчик HFCliTyperGroup в Hugging Face Hub больше не перехватывал должным образом.

Кроме того, некорректно работали глобальные флаги форматирования, такие как --json, -q (для тихого режима), --format и --no-truncate. Например, выполнение команды hf jobs ps --json вместо ожидаемого пустого JSON-массива [] выводило сообщение "No jobs found", а hf jobs ps -q вместо краткого вывода показывало полную человекочитаемую таблицу. Это приводило к сбоям в автоматизированных скриптах и тестах, в том числе и в системе непрерывной интеграции (CI), где тесты для CLI бакетов, а также команд models ls, webhooks и papers перестали проходить.

В источниках нет данных о том, когда ожидается более фундаментальное решение проблемы совместимости с Typer 0.26.0 и выше.

Временное решение: ограничение версии Typer и явная зависимость от Click

Для оперативного восстановления функциональности CLI Hugging Face Hub в версии v1.16.3 были реализованы два ключевых технических решения. Во-первых, разработчики ограничили верхнюю границу версии typer, установив ее как typer<0.26.0 в файле install_requires. Это гарантирует, что при установке huggingface_hub будет использоваться версия Typer, предшествующая problematic 0.26.0, тем самым предотвращая возникновение описанных выше ошибок совместимости.

Во-вторых, было принято решение явно добавить библиотеку Click как зависимость в install_requires с минимальной версией click>=8.4.0. Необходимость в этом шаге возникла из-за того, что Typer 0.26.0 прекратил автоматически подтягивать Click в качестве транзитивной зависимости из-за внутреннего "вендоринга". Поскольку Hugging Face Hub CLI имеет прямые импорты из публичного пакета Click в своих модулях (cli/_cli_utils.py, cli/_help_formatter.py и cli/skills.py), явное объявление Click как зависимости стало критически важным для обеспечения ее наличия в окружении.

Эти меры, хотя и являются временным решением, были необходимы для быстрого восстановления стабильной работы CLI и разблокировки процессов непрерывной интеграции, которые начали сбоить после выхода Typer 0.26.0. Ограничение версии Typer позволяет избежать проблем, пока не будет разработано более фундаментальное решение, которое обеспечит полную совместимость с будущими версиями Typer.

Влияние на пользователей и дальнейшие шаги

Проблема совместимости, вызванная Typer 0.26.0, затронула пользователей Hugging Face Hub CLI, у которых была установлена эта или более новая версия Typer. Для таких пользователей обновление до версии v1.16.3 является обязательным шагом для восстановления полной функциональности командной строки. Хотфикс временно обеспечивает корректную работу CLI, ограничивая используемую версию Typer.

Важно отметить, что текущее решение, включающее ограничение версии typer и явное добавление click в зависимости, является временным. В документации по исправлению указывается, что для полного и долгосрочного разрешения проблемы требуется более глубокая переработка. Планируется открытие отдельной задачи для адаптации внутренних компонентов фреймворка CLI Hugging Face Hub, таких как HFCliTyperGroup и утилиты _cli_utils.py и _help_formatter.py, к изменениям в typer 0.26.0, связанным с "вендорингом" Click. До тех пор, пока это фундаментальное решение не будет реализовано, пользователи будут использовать версию Typer, предшествующую 0.26.0.

Что это значит

Выпуск хотфикса v1.16.3 для Hugging Face Hub демонстрирует критическую важность оперативного реагирования на изменения в зависимостях программного обеспечения, особенно для поддержания стабильности инструментов командной строки. Это временное решение позволило немедленно устранить функциональные сбои, вызванные обновлением Typer, и восстановить работоспособность CLI. Однако оно также подчеркивает необходимость в дальнейшей адаптации архитектуры Hugging Face Hub CLI для обеспечения устойчивости к будущим изменениям во внешних библиотеках, что предвещает более фундаментальные улучшения в долгосрочной перспективе.

Глоссарий — ключевые термины

Typer — Библиотека Python для создания высокоинтуитивных и удобных CLI-приложений, основанная на подсказках типов Python.

Click — Расширяемый инструментарий для создания интерфейсов командной строки на Python, на котором построены многие CLI-фреймворки, включая Typer.

Vendoring — Практика включения стороннего кода (библиотек или модулей) непосредственно в собственный репозиторий проекта, вместо того чтобы управлять им как внешней зависимостью.

Основная статья

  1. [v1.16.3] hot fix: Fix `typer>=0.26.0` compatibility
  2. huggingface_hub v1.16.2

Дополнительные источники

  1. https://github.com/huggingface/huggingface_hub/pull/4272
  2. https://github.com/huggingface/huggingface_hub/pull/4270