code: def log_experiment(
      self,
      experiment: "_TabularExperiment",
      log_profile,
      log_data,
      experiment_custom_tags,
      runtime,
  ):
      console = experiment.logger
      console.info("Logging experiment in loggers")
  
      k = experiment._display_container[0].copy()
      k.set_index("Description", drop=True, inplace=True)
      kdict = k.to_dict()
      params = kdict.get("Value")
      for logger in self.loggers:
          logger.init_experiment(
              experiment.exp_name_log,
              f"{SETUP_TAG} {experiment.USI}",
              setup=True,
          )
          logger.log_params(params, "setup")
          logger.set_tags(
              "setup",
              experiment_custom_tags,
              runtime,
              USI=experiment.USI,
          )
  
      with tempfile.TemporaryDirectory() as tmpdir:
          # Log the transformation pipeline
          console.info(
              "SubProcess save_model() called =================================="
          )
          experiment.save_model(
              experiment.pipeline,
              os.path.join(tmpdir, "Transformation Pipeline"),
              verbose=False,
          )
          console.info(
              "SubProcess save_model() end =================================="
          )
          [
              logger.log_artifact(
                  os.path.join(tmpdir, "Transformation Pipeline.pkl"),
                  "transformation_pipe",
              )
              for logger in self.loggers
          ]
  
          # Log pandas profile
          if log_profile:
              profile_path = os.path.join(tmpdir, "Data Profile.html")
              experiment.report.to_file(profile_path)
              [
                  logger.log_artifact(profile_path, "data_profile")
                  for logger in self.loggers
              ]
  
          # Log training and testing set
          if log_data:
              if not experiment._is_unsupervised():
                  train_path = os.path.join(tmpdir, "Train.csv")
                  test_path = os.path.join(tmpdir, "Test.csv")
  
                  experiment.train.to_csv(train_path)
                  experiment.test.to_csv(test_path)
                  [
                      logger.log_artifact(train_path, "train_data")
                      for logger in self.loggers
                  ]
                  [
                      logger.log_artifact(test_path, "test_data")
                      for logger in self.loggers
                  ]
                  # upload data to remote server
                  [
                      logger.log_artifact(train_path, "data")
                      for logger in self.loggers
                      if hasattr(logger, "remote")
                  ]
                  [
                      logger.log_artifact(test_path, "data")
                      for logger in self.loggers
                      if hasattr(logger, "remote")
                  ]
                  if experiment.transform_target_param:
                      train_transform_path = os.path.join(
                          tmpdir, "Train_transform.csv"
                      )
                      test_transform_path = os.path.join(
                          tmpdir, "Test_transform.csv"
                      )
                      experiment.train_transformed.to_csv(
                          train_transform_path
                      )
                      experiment.test_transformed.to_csv(
                          test_transform_path
                      )
                      [
                          logger.log_artifact(
                              train_transform_path, "data"
                          )
                          for logger in self.loggers
                          if hasattr(logger, "remote")
                      ]
                      [
                          logger.log_artifact(
                              test_transform_path, "data"
                          )
                          for logger in self.loggers
                          if hasattr(logger, "remote")
                      ]
              else:
                  train_path = os.path.join(tmpdir, "Dataset.csv")
                  experiment.train.to_csv(train_path)
                  [
                      logger.log_artifact(train_path, "data")
                      for logger in self.loggers
                  ]
                  if experiment.transform_target_param:
                      train_transform_path = os.path.join(
                          tmpdir, "Dataset_transform.csv"
                      )
                      experiment.train_transformed.to_csv(
                          train_transform_path
                      )
                      [
                          logger.log_artifact(
                              train_transform_path, "data"
                          )
                          for logger in self.loggers
                          if hasattr(logger, "remote")
                      ]
              [
                  logger.log_artifact(file="", type="data_commit")
                  for logger in self.loggers
                  if hasattr(logger, "remote")
              ]
  
file_path: pycaret/pycaret/loggers/dashboard_logger.py
imports: import gc
  import os
  import tempfile
  import traceback
  from pathlib import Path
  from typing import TYPE_CHECKING, Any, Dict, List, Optional
  import numpy
  import pandas
  from pycaret.internal.meta_estimators import get_estimator_from_meta_estimator
  from pycaret.internal.pipeline import get_pipeline_estimator_label
  from .base_logger import SETUP_TAG, BaseLogger
label_desc: Use image node_id 6 for calling the DashboardLogger obj's underlying member method code with example usage: obj.log_experiment(experiment, log_profile, log_data, experiment_custom_tags, runtime) without return types