code: def unload(self, keepables=None):
          
          to_del = [ds_id for ds_id, projectable in self.datasets.items()
                    if ds_id not in self.wishlist and (not keepables or ds_id
                                                       not in keepables)]
          for ds_id in to_del:
              LOG.debug("Unloading dataset: %r", ds_id)
              del self.datasets[ds_id]
docs: Unload all unneeded datasets.
  
          Datasets are considered unneeded if they weren't directly requested
          or added to the Scene by the user or they are no longer needed to
          generate composites that have yet to be generated.
  
          Args:
              keepables (iterable): DatasetIDs to keep whether they are needed
                                    or not.