code: def quic_graph_lasso(X, num_folds, metric):
      
      print("QuicGraphicalLasso + GridSearchCV with:")
      print("   metric: {}".format(metric))
      search_grid = {
          "lam": np.logspace(np.log10(0.01), np.log10(1.0), num=100, endpoint=True),
          "init_method": ["cov"],
          "score_metric": [metric],
      }
      model = GridSearchCV(QuicGraphicalLasso(), search_grid, cv=num_folds, refit=True)
      model.fit(X)
      bmodel = model.best_estimator_
      print("   len(cv_lams): {}".format(len(search_grid["lam"])))
      print("   cv-lam: {}".format(model.best_params_["lam"]))
      print("   lam_scale_: {}".format(bmodel.lam_scale_))
      print("   lam_: {}".format(bmodel.lam_))
      return bmodel.covariance_, bmodel.precision_, bmodel.lam_
docs: Run QuicGraphicalLasso with mode='default' and use standard scikit
      GridSearchCV to find the best lambda.
  
      Primarily demonstrates compatibility with existing scikit tooling.