Метод progressbar
Метод progressbar применяется к объекту контекста Click
или используется как контекстный менеджер. Он создаёт
индикатор выполнения, который отображается в терминале
во время длительных операций. Первым параметром передаётся
итерируемый объект или общее количество шагов. Метод
поддерживает настройку длины индикатора, метки и ширины
заполнения.
Синтаксис
click.progressbar(iterable, length, label, width)
Пример
Давайте создадим команду, которая обрабатывает список элементов и показывает прогресс выполнения:
import click
from flask import Flask
from flask.cli import with_appcontext
app = Flask(__name__)
@app.cli.command('process')
@with_appcontext
def process():
items = ['a', 'b', 'c', 'd', 'e']
with click.progressbar(items, label='Processing') as bar:
for item in bar:
pass
Результат выполнения команды в терминале:
Processing [################################] 5/5
Пример
Давайте зададим общее количество шагов вручную и обновим индикатор:
import click
from flask import Flask
from flask.cli import with_appcontext
app = Flask(__name__)
@app.cli.command('count')
@with_appcontext
def count():
with click.progressbar(length=5, label='Counting') as bar:
for i in range(5):
bar.update(1)
Результат выполнения команды в терминале:
Counting [####################################] 5/5
Пример
Давайте настроим ширину и метку индикатора:
import click
from flask import Flask
from flask.cli import with_appcontext
app = Flask(__name__)
@app.cli.command('custom')
@with_appcontext
def custom():
items = ['a', 'b', 'c', 'd', 'e']
with click.progressbar(
items,
label='Custom bar',
width=20
) as bar:
for item in bar:
pass
Результат выполнения команды в терминале:
Custom bar [########## ] 5/5