code: def recommend(self, client_id, limit, extra_data={}):
          
  
          if client_id in TEST_CLIENT_IDS:
              data = self._whitelist_data.get()[0]
              random.shuffle(data)
              samples = data[:limit]
              self.logger.info("Test ID detected [{}]".format(client_id))
              return [(s, 1.1) for s in samples]
  
          if client_id in EMPTY_TEST_CLIENT_IDS:
              self.logger.info("Empty Test ID detected [{}]".format(client_id))
              return []
  
          client_info = self.profile_fetcher.get(client_id)
          if client_info is None:
              self.logger.info(
                  "Defaulting to empty results.  No client info fetched from dynamo."
              )
              return []
  
          results = self._ensemble_recommender.recommend(client_info, limit, extra_data)
  
          return results
docs: Return recommendations for the given client.
  
          The recommendation logic will go through each recommender and
          pick the first one that "can_recommend".
  
          :param client_id: the client unique id.
          :param limit: the maximum number of recommendations to return.
          :param extra_data: a dictionary with extra client data.