code: def get_blen_array(data, blen=None):
      
  
      if blen is None:
  
          if hasattr(data, 'chunklen'):
              # bcolz carray
              return data.chunklen
  
          elif hasattr(data, 'chunks') and \
                  hasattr(data, 'shape') and \
                  hasattr(data.chunks, '__len__') and \
                  hasattr(data.shape, '__len__') and \
                  len(data.chunks) == len(data.shape):
              # something like h5py dataset
              return data.chunks[0]
  
          else:
              # fall back to something simple, ~1Mb chunks
              row = np.asarray(data[0])
              return max(1, (2**20) // row.nbytes)
  
      else:
          return blen
docs: Try to guess a reasonable block length to use for block-wise iteration
      over `data`.