def METHOD_NAME(self):
    """Returns the minimum and maximum values of the data source's data.
    Implements AbstractDataSource.
    """
    if not self._bounds_cache_valid:
        if self.raw_value.size == 0:
            self._cached_bounds = (0, 0)
        else:
            # nanmin and nanmax raise an annoying RuntimeWarning when
            # all raw_value entries are NaN.  Use fmin.reduce and
            # fmax.reduce to avoid this.
            self._cached_bounds = (
                fmin.reduce(self.raw_value, axis=None),
                fmax.reduce(self.raw_value, axis=None),
            )
        self._bounds_cache_valid = True
    return self._cached_bounds