<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bounded_uniform(cls, lowest, highest, weight_interval=None):
 """ Initialize with a uniform distribution between two values. If no ``weight_interval`` is passed, this weight distribution will just consist of ``[(lowest, 1), (highest, 1)]``. If specified, weights (still with uniform weight distribution) will be added every ``weight_interval``. Use this if you intend to modify the weights in any complex way after initialization. Args: lowest (float or int):
 highest (float or int):
 weight_interval (int):
 Returns: SoftFloat: A newly constructed instance. """

        if weight_interval is None:
            weights = [(lowest, 1), (highest, 1)]
        else:
            i = lowest
            weights = []
            while i < highest:
                weights.append((i, 1))
                i += weight_interval
            weights.append((highest, 1))
        return cls(weights)