Функция конвертации секунд в более крупные периоды времени (Python)

Заметка

Функция  превращает количество секунд в удобночитаемые человеком  значения времени.

def seconds_to_str(uptime):
    """
       Функция принимает числовое значение секунд и возвращает строку в формате:
       '3 нед., 1 дн., 18 час., 23 мин., 3 сек.'
       Доли секунды округляются до секунд.
    """

    seconds = ''
    minutes = ''
    hours = ''
    days = ''
    weeks = ''
    uptime = round(uptime, 0)

    if uptime >= 60:
        minutes = uptime // 60
        if minutes >= 60:
            hours = minutes // 60
            if hours >= 24:
                days = hours // 24
                if days >= 7:
                    weeks = days // 7
                    seconds, minutes, hours, days, weeks = str(int(uptime % 60)), str(int(minutes % 60)), str(
                        int(hours % 24)), str(int(days % 7)), str(int(weeks))
                else:
                    seconds, minutes, hours, days = str(int(uptime % 60)), str(int(minutes % 60)), str(
                        int(hours % 24)), str(int(days))
            else:
                seconds, minutes, hours = str(int(uptime % 60)), str(int(minutes % 60)), str(int(hours))
        else:
            seconds, minutes = str(int(uptime % 60)), str(int(minutes))
    else:
        seconds = str(int(uptime // 1))

    if weeks:
        weeks = weeks + ' нед.,'
    if days:
        days = days + ' дн.,'
    if hours:
        hours = hours + ' час.,'
    if minutes:
        minutes = minutes + ' мин.,'
    if seconds:
        seconds = seconds + ' сек.'
    res = weeks + ' ' + days + ' ' + hours + ' ' + minutes + ' ' + seconds
    print(res.strip())
    return res.strip()