code: def _get_run_data(total_batches=TOTAL_BATCHES):
      for num in range(0, total_batches):
          guid8 = str(uuid.uuid4())[:8]
          params = [
              Param(
                  f"batch param-{guid8}-{val}", value=str(time.time())
              )
              for val in range(PARAMS_PER_BATCH)
          ]
          tags = [
              RunTag(f"batch tag-{guid8}-{val}", value=str(time.time()))
              for val in range(TAGS_PER_BATCH)
          ]
          metrics = [
              Metric(
                  key=f"batch metrics async-{num}",
                  value=val,
                  timestamp=int(time.time() * 1000),
                  step=0,
              )
              for val in range(METRIC_PER_BATCH)
          ]
          yield params, tags, metrics
  
imports: import io
  import pickle
  import random
  import threading
  import time
  import uuid
  import pytest
  from mlflow import MlflowException
  from mlflow.entities.metric import Metric
  from mlflow.entities.param import Param
  from mlflow.entities.run_tag import RunTag
  from mlflow.utils.async_logging.async_logging_queue import AsyncLoggingQueue
label_desc: Use image node_id 7 for calling a global function with example usage: _get_run_data(total_batches) without return types