docs: def fit(self, scores, y_true):
          """Train calibration
  
          Parameters
          ----------
          scores : (n_samples, ) array-like
              Uncalibrated scores.
          y_true : (n_samples, ) array-like
              True labels (dtype=bool).
          """
  
          # to force equal priors, randomly select (and average over)
          # up to fifty balanced (i.e. #true == #false) calibration sets.
          if self.equal_priors:
  
              counter = Counter(y_true)
              positive, negative = counter[True], counter[False]
  
              if positive > negative:
                  majority, minority = True, False
                  n_majority, n_minority = positive, negative
              else:
                  majority, minority = False, True
                  n_majority, n_minority = negative, positive
  
              n_splits = min(50, n_majority // n_minority + 1)
  
              minority_index = np.where(y_true == minority)[0]
              majority_index = np.where(y_true == majority)[0]
  
              cv = []
              for _ in range(n_splits):
                  test_index = np.hstack([
                      np.random.choice(majority_index,
                                       size=n_minority,
                                       replace=False),
                      minority_index])
                  cv.append(([], test_index))
              cv = _CVIterableWrapper(cv)
  
          # to estimate priors from the data itself, use the whole set
          else:
              cv = 'prefit'
  
          self.calibration_ = CalibratedClassifierCV(
              base_estimator=_Passthrough(), method=self.method, cv=cv)
          self.calibration_.fit(scores.reshape(-1, 1), y_true)
  
          return self