code: def get_similar_donors(self, client_data):
          
          # Compute the distance between self and any comparable client.
          distances = self.compute_clients_dist(client_data)
  
          # Compute the LR based on precomputed distributions that relate the score
          # to a probability of providing good addon recommendations.
  
          lrs_from_scores = np.array(
              [self.get_lr(distances[i]) for i in range(self.num_donors)]
          )
  
          # Sort the LR values (descending) and return the sorted values together with
          # the original indices.
          indices = (-lrs_from_scores).argsort()
          return lrs_from_scores[indices], indices
docs: Computes a set of :float: similarity scores between a client and a set of candidate
          donors for which comparable variables have been measured.
  
          A custom similarity metric is defined in this function that combines the Hamming distance
          for categorical variables with the Canberra distance for continuous variables into a
          univariate similarity metric between the client and a set of candidate donors loaded during
          init.
  
          :param client_data: a client data payload including a subset fo telemetry fields.
          :return: the sorted approximate likelihood ratio (np.array) corresponding to the
                   internally computed similarity score and a list of indices that link
                   each LR score with the related donor in the |self.donors_pool|.