code: def flush(self, preserve=None):
      
      if not os.path.exists(self.path):
        return
  
      if preserve is None:
        shutil.rmtree(self.path)
        return
  
      for mip in self.vol.available_mips:
        preserve_mip = self.vol.slices_from_global_coords(preserve)
        preserve_mip = Bbox.from_slices(preserve_mip)
  
        mip_path = os.path.join(self.path, self.vol.mip_key(mip))
        if not os.path.exists(mip_path):
          continue
  
        for filename in os.listdir(mip_path):
          bbox = Bbox.from_filename(filename)
          if not Bbox.intersects(preserve_mip, bbox):
            os.remove(os.path.join(mip_path, filename))
docs: Delete the cache for this dataset. Optionally preserve
      a region. Helpful when working with overlaping volumes.
  
      Warning: the preserve option is not multi-process safe.
      You're liable to end up deleting the entire cache.
  
      Optional:
        preserve (Bbox: None): Preserve chunks located partially
          or entirely within this bounding box. 
      
      Return: void