Загружаем изображение…

⚡️ halo — простейший инструмент, который позволяет создавать красивые спиннеры для терминала.



Позволяет добавлять в скрипты анимированный индикатор загрузки + статусы вроде ✔️ / ✖️ / ⚠️

Что умеет:
💬 Много встроенных спиннеров (например dots, line и т.д.) и выбор своего набора кадров.
💬 Настройка текста, цвета спиннера и даже цвета текста (text_color), положение слева/справа (placement).
💬 Удобные режимы использования: обычный .start()/.stop(), контекст-менеджер with, и даже декоратор.
💬 Статусы: .succeed(), .fail(), .warn(), .info(), плюс stop_and_persist() для своего символа/текста.

⚙️ Простая установка:
pip install halo

Примеры использования:

🟢Базовый сценарий: старт → работа → успех/ошибка

import time
from halo import Halo

spinner = Halo(text="Собираю данные", spinner="dots", color="cyan")
spinner.start()

try:
time.sleep(2) # имитация работы
spinner.succeed("Готово: данные собраны ✔️")
except Exception:
spinner.fail("Упс: что-то пошло не так ✖️")

🟢Динамика: меняем текст/цвет/спиннер по ходу дела

import time
from halo import Halo

spinner = Halo(text="Шаг 1/3", spinner="dots", color="cyan")
spinner.start()

time.sleep(1)
spinner.text = "Шаг 2/3: обработка"
spinner.color = "magenta"

time.sleep(1)
spinner.spinner = "line"
spinner.text = "Шаг 3/3: финализация"

time.sleep(1)
spinner.succeed("Всё готово!")

🟢Свой кастомный спиннер (своими кадрами)

import time
from halo import Halo

my_spinner = {
"interval": 120,
"frames": ["▖", "▘", "▝", "▗"]
}

spinner = Halo(text="Кручу свой спиннер", spinner=my_spinner, color="blue")
spinner.start()
time.sleep(2)
spinner.stop_and_persist(symbol="✅", text="Сделано")

💻 GitHub/Инструкция

halo особенно хорошо заходит в CLI-утилитах (argparse/typer/click) — спиннер превращает “молчаливую паузу” в понятный прогресс и повышает доверие к инструменту.

#python #soft #github
Просмотры: 334
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти