docs: def setrange(self, min, max):
          """Set the dataset min and max values.
  
          Args::
  
            min        dataset minimum value (attribute 'valid_range')
            max        dataset maximum value (attribute 'valid_range')
  
  
          Returns::
  
            None
  
          The data range is part of the so-called "standard" SDS
          attributes. Calling method 'setrange' is equivalent to
          setting the following attribute with a 2-element [min,max]
          array::
  
            valid_range
  
  
          C library equivalent: SDsetrange
                                                     """
  
          # Obtain SDS data type.
          try:
              sds_name, rank, dim_sizes, data_type, n_attrs = self.info()
          except HDF4Error:
              raise HDF4Error('setrange : cannot execute')
          n_values = 1
  
          if data_type == SDC.CHAR8:
              buf1 = _C.array_byte(n_values)
              buf2 = _C.array_byte(n_values)
  
          elif data_type in [SDC.UCHAR8, SDC.UINT8]:
              buf1 = _C.array_byte(n_values)
              buf2 = _C.array_byte(n_values)
  
          elif data_type == SDC.INT8:
              buf1 = _C.array_int8(n_values)
              buf2 = _C.array_int8(n_values)
  
          elif data_type == SDC.INT16:
              buf1 = _C.array_int16(n_values)
              buf2 = _C.array_int16(n_values)
  
          elif data_type == SDC.UINT16:
              buf1 = _C.array_uint16(n_values)
              buf2 = _C.array_uint16(n_values)
  
          elif data_type == SDC.INT32:
              buf1 = _C.array_int32(n_values)
              buf2 = _C.array_int32(n_values)
  
          elif data_type == SDC.UINT32:
              buf1 = _C.array_uint32(n_values)
              buf2 = _C.array_uint32(n_values)
  
          elif data_type == SDC.FLOAT32:
              buf1 = _C.array_float32(n_values)
              buf2 = _C.array_float32(n_values)
  
          elif data_type == SDC.FLOAT64:
              buf1 = _C.array_float64(n_values)
              buf2 = _C.array_float64(n_values)
  
          else:
              raise HDF4Error("SDsetrange: SDS has an illegal or " \
                               "unsupported type %d" % data_type)
  
          buf1[0] = max
          buf2[0] = min
          status = _C.SDsetrange(self._id, buf1, buf2)
          _checkErr('setrange', status, 'cannot execute')