code: def data_dtype(self):
          
          if not self.header:
              return self._init_data_dtype
          try:
              mode = int(self.header['mode']['value'])
          except KeyError:
              return self._init_data_dtype
          else:
              try:
                  return MRC_MODE_TO_NPY_DTYPE[mode]
              except KeyError:
                  raise ValueError('data mode {} not supported'.format(mode))
docs: Data type of the data block as determined from `header`.
  
          If no header is available (i.e., before it has been initialized),
          or the header entry ``'mode'`` is missing, the data type gained
          from the ``dtype`` argument in the initializer is returned.
          Otherwise, it is determined from ``mode``.