Добавь функции ещё один параметр - callback-функцию, которая будет вызываться каждые X итераций.
Тогда вопрос "как подружить функцию с индикацией прогресса" сведётся к написанию подходящей callback-функции. Условно:
from time import sleep
def worker(n: int, cb=None):
for i in range(n):
sleep(0.2) # работу работаем
if cb is not None and i % 5 == 0:
cb(i, n) # оповещаем, если пора и если есть что
if cb is not None:
cb(n, n) # последнее оповещение на 100%. можно убрать
# использование
def callback(i, n): # callback для вывода прогресса в консоль
print(f'{i/n:.1%}') # выводим процент завершения
worker(50, callback) # работаем