code: def ebic(self, gamma=0):
          
          if not self.is_fitted_:
              return
  
          if not isinstance(self.precision_, list):
              return metrics.ebic(
                  self.sample_covariance_,
                  self.precision_,
                  self.n_samples_,
                  self.n_features_,
                  gamma=gamma,
              )
  
          ebic_scores = []
          for lidx, lam in enumerate(self.path_):
              ebic_scores.append(
                  metrics.ebic(
                      self.sample_covariance_,
                      self.precision_[lidx],
                      self.n_samples_,
                      self.n_features_,
                      gamma=gamma,
                  )
              )
  
          return np.array(ebic_scores)
docs: Compute EBIC scores for each model. If model is not "path" then
          returns a scalar score value.
  
          May require self.path_
  
          See:
          Extended Bayesian Information Criteria for Gaussian Graphical Models
          R. Foygel and M. Drton
          NIPS 2010
  
          Parameters
          ----------
          gamma : (float) \in (0, 1)
              Choice of gamma=0 leads to classical BIC
              Positive gamma leads to stronger penalization of large graphs.
  
          Returns
          -------
          Scalar ebic score or list of ebic scores.