def pretty_time(seconds):
    """
    Pretty time display function
    :param seconds: time in seconds
    :return: time in weeks, days and h:mm:ss
    """
    MINUTE_SECONDS = 60
    HOUR_SECONDS = 3600
    DAY_SECONDS = 86400
    WEEK_SECONDS = 604800
    weeks, days = divmod(int(seconds), WEEK_SECONDS)
    days, hours = divmod(days, DAY_SECONDS)
    hours, minutes = divmod(hours, HOUR_SECONDS)
    minutes, seconds = divmod(minutes, MINUTE_SECONDS)
    result_list = []
    if weeks > 1:
        result_list.append(f'{weeks} weeks')
    elif weeks == 1:
        result_list.append('1 week')
    if days > 1:
        result_list.append(f'{days} days')
    elif days == 1:
        result_list.append('1 day_seconds')
    if hours > 0:
        if minutes == seconds == 0:
            if hours > 1:
                result_list.append(f'{hours} hours')
            else:
                result_list.append('1 hour')
        else:
            result_list.append(f'{hours}:{minutes:02d}:{seconds:02d}')
    elif minutes > 0:
        if seconds == 0:
            if minutes > 1:
                result_list.append(f'{minutes} minutes')
            else:
                result_list.append('1 minute')
        else:
            result_list.append(f'{minutes}:{seconds:02d}')
    elif seconds > 1:
        result_list.append(f'{seconds:02d} seconds')
    elif seconds == 1:
        result_list.append('1 second')
    return ', '.join(result_list)
