@bounds.setter
    def bounds(self, value):
        if value is not None:
            if type(value) in [tuple, list]:
                if np.array(value).shape != (3, 2):
                    raise ValueError("bounds should be a sequence of 3 pairs of values")
            elif is_numpy_array(value):
                if value.ndim != 2:
                    raise ValueError("bounds should be a 2-d array")
                if value.shape != (3, 2):
                    raise ValueError("bounds should have a shape of (3, 2)")
            else:
                raise ValueError("bounds should be a tuple, list, or Numpy array")
        self._bounds = value
dataset/ETHPy150Open hyperion-rt/hyperion/hyperion/sources/source.py/ExternalBoxSource.bounds/original