code: def _build_features_caches(self):
          _donors_pool = self._donors_pool.get()[0]
          _lr_curves = self._lr_curves.get()[0]
          if _donors_pool is None or _lr_curves is None:
              return None
          self.num_donors = len(_donors_pool)
          self.continuous_features = np.zeros((self.num_donors, len(CONTINUOUS_FEATURES)))
          for idx, d in enumerate(_donors_pool):
              features = [d.get(specified_key) for specified_key in CONTINUOUS_FEATURES]
              self.continuous_features[idx] = features
          self.categorical_features = np.zeros(
              (self.num_donors, len(CATEGORICAL_FEATURES)), dtype="object"
          )
          for idx, d in enumerate(_donors_pool):
              features = [d.get(specified_key) for specified_key in CATEGORICAL_FEATURES]
              self.categorical_features[idx] = np.array([features], dtype="object")
          self.logger.info("Reconstructed matrices for similarity recommender")