code: def _query_label(self, loc):
          
          # Try to get label from cache
          ell = self.cached_labels_[loc]
  
          if np.isnan(ell):
              # Label has not been cached. Need to query oracle
              oracle_arg = self.identifiers[loc]
              ell = self.oracle(oracle_arg)
              if ell not in [0, 1]:
                  raise Exception("Oracle provided an invalid label.")
              #TODO Gracefully handle errors from oracle?
              self._queried_oracle[self.t_] = True
              self.cached_labels_[loc] = ell
  
          return ell
docs: Query the label for the item with index `loc`. Preferentially
          queries the label from the cache, but if not yet cached, queries the
          oracle.
  
          Returns
          -------
          int
              the true label "0" or "1".