def human_time(seconds):
    """
    Returns a human-friendly time string that is always exactly 6
    characters long.

    Depending on the number of seconds given, can be one of::

        1w 3d
        2d 4h
        1h 5m
        1m 4s
          15s

    Will be in color if console coloring is turned on.

    Parameters
    ----------
    seconds : int
        The number of seconds to represent

    Returns
    -------
    time : str
        A human-friendly representation of the given number of seconds
        that is always exactly 6 characters.
    """
    units = [('y', 60 * 60 * 24 * 7 * 52), ('w', 60 * 60 * 24 * 7), ('d', 
        60 * 60 * 24), ('h', 60 * 60), ('m', 60), ('s', 1)]
    seconds = int(seconds)
    if seconds < 60:
        return f'   {seconds:2d}s'
    for i in range(len(units) - 1):
        unit1, limit1 = units[i]
        unit2, limit2 = units[i + 1]
        if seconds >= limit1:
            return '{:2d}{}{:2d}{}'.format(seconds // limit1, unit1, 
                seconds % limit1 // limit2, unit2)
    return '  ~inf'
