code: def loglikelihood(self, X, y, weights=None):
          
          y = check_y(y, self.link, self.distribution, verbose=self.verbose)
          mu = self.predict_mu(X)
  
          if weights is not None:
              weights = np.array(weights).astype('f').ravel()
              weights = check_array(weights, name='sample weights',
                                    ndim=1, verbose=self.verbose)
              check_lengths(y, weights)
          else:
              weights = np.ones_like(y).astype('float64')
  
          return self._loglikelihood(y, mu, weights=weights)
docs: compute the log-likelihood of the dataset using the current model
  
          Parameters
          ---------
          X : array-like of shape (n_samples, m_features)
              containing the input dataset
          y : array-like of shape (n,)
              containing target values
          weights : array-like of shape (n,), optional
              containing sample weights
  
          Returns
          -------
          log-likelihood : np.array of shape (n,)
              containing log-likelihood scores