<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_linear(num_finite_buckets, width, offset):
 """Creates a new instance of distribution with linear buckets. Args: num_finite_buckets (int):
 initializes number of finite buckets width (float):
 initializes the width of each bucket offset (float):
 initializes the offset Return: :class:`endpoints_management.gen.servicecontrol_v1_messages.Distribution` Raises: ValueError: if the args are invalid for creating an instance """

    if num_finite_buckets <= 0:
        raise ValueError(_BAD_NUM_FINITE_BUCKETS)
    if width <= 0.0:
        raise ValueError(_BAD_FLOAT_ARG % (u'width', 0.0))
    return sc_messages.Distribution(
        bucketCounts=[0] * (num_finite_buckets + 2),
        linearBuckets=sc_messages.LinearBuckets(
            numFiniteBuckets=num_finite_buckets,
            width=width,
            offset=offset))