def readable_duration(seconds) -> str:
    """
    Given a number of seconds, return a human readable version
    of the interval
    """
    days = int(seconds / 86400)
    seconds -= days * 86400
    hours = int(seconds / 3600)
    seconds -= hours * 3600
    minutes = int(seconds / 60)
    seconds -= minutes * 60

    time_string = ""
    if days:
        time_string += "{0} day{1}, ".format(days, "s" if days != 1 else "")
    if hours or days:
        time_string += "{0} hour{1}, ".format(hours, "s" if hours != 1 else "")
    if minutes or hours or days:
        time_string += "{0} minute{1}, ".format(minutes, "s" if minutes != 1 else "")

    return time_string + "{0:.2f} second{1}".format(
        seconds, "s" if seconds != 1 else ""
    )