code: def _loglikelihood(self, y, mu, weights=None, rescale_y=True):
          
          if rescale_y:
              y = np.round(y * weights).astype('int')
  
          return self.distribution.log_pdf(y=y, mu=mu, weights=weights).sum()
docs: compute the log-likelihood of the dataset using the current model
  
          Parameters
          ---------
          y : array-like of shape (n,)
              containing target values
          mu : array-like of shape (n_samples,)
              expected value of the targets given the model and inputs
          weights : array-like of shape (n,)
              containing sample weights
          rescale_y : boolean, defaul: True
              whether to scale the targets back up.
              useful when fitting with an exposure, in which case the count observations
              were scaled into rates. this rescales rates into counts.
  
          Returns
          -------
          log-likelihood : np.array of shape (n,)
              containing log-likelihood scores