def linear(steps):
    """
    Linear easing function; yields *steps* values between 0.0 and 1.0.

    .. image:: images/linear.*
        :align: center

    This is the default easing function which simply progresses the animation
    at a constant rate from start to finish.
    """
    if steps <= 0:
        raise ValueError('steps must be a positive integer >0')
    elif steps == 1:
        yield 1.0
    else:
        for t in range(steps):
            yield t / (steps - 1)
