code: def update_data(self):
      np.random.seed(0)
      n_rec = list(self.recommenders).copy()
      cond = True
      while cond:
          shuffle(n_rec)
          if not [
              i for i, j in zip(n_rec, self.recommenders) if i == j
          ]:
              cond = False
  
      for n, r in enumerate(self.recommenders):
          if self.recommenders_confident[r]:
              self.update_file(
                  self.recommenders_confident[n_rec[n]],
                  self.labeled_files[r],
              )
  
              rec_conf = [
                  (x[0], x[1]) for x in self.recommenders_confident[r]
              ]
              self.unlabeled_data[r] = list(
                  set(self.unlabeled_data[r]) - set(rec_conf)
              )
              self.write_file(
                  self.unlabeled_data[r],
                  self.unlabeled_files[r],
                  score=False,
              )
          else:
              self.empty = True
  
imports: from multiprocessing.pool import Pool
  from random import shuffle
  import numpy
  import os
  from caserec.recommenders.rating_prediction.itemknn import ItemKNN
  from caserec.recommenders.rating_prediction.matrixfactorization import MatrixFactorization
  from caserec.recommenders.rating_prediction.svdplusplus import SVDPlusPlus
  from caserec.recommenders.rating_prediction.userknn import UserKNN
  from caserec.utils.process_data import ReadFile
  from caserec.utils.extra_functions import ComputeBui
label_desc: Use image node_id 10 for calling the ECoRec obj's underlying member method code with example usage: obj.update_data() without return types