code: def fit(self, t, y, dy=None, filts=0):
          
          self.unique_filts_ = np.unique(filts)
  
          # For linear models, dy=1 is equivalent to no errors
          if dy is None:
              dy = 1
  
          all_data = np.broadcast_arrays(t, y, dy, filts)
          self.t, self.y, self.dy, self.filts = map(np.ravel, all_data)
  
          self._fit(self.t, self.y, self.dy, self.filts)
          self._best_period = None  # reset best period in case of refitting
  
          if self.fit_period:
              self._best_period = self._calc_best_period()
          return self
docs: Fit the multiterm Periodogram model to the data.
  
          Parameters
          ----------
          t : array_like, one-dimensional
              sequence of observation times
          y : array_like, one-dimensional
              sequence of observed values
          dy : float or array_like (optional)
              errors on observed values
          filts : array_like (optional)
              The array specifying the filter/bandpass for each observation.