class_docstr: Represents a collection of operations on one or more MLflow Runs, such as run creation
  or metric logging.
class_docstr_tok: ["Represents","a","collection","of","operations","on","one","or","more","MLflow","Runs",",","such","as","run","creation","or","metric","logging","."]
docstr: Blocks on completion of the MLflow Run operations.
docstr_tok: ["Blocks","on","completion","of","the","MLflow","Run","operations","."]
code: def await_completion(self):
      """
      Blocks on completion of the MLflow Run operations.
      """
      failed_operations = []
      for future in self._operation_futures:
          try:
              future.result()
          except Exception as e:
              failed_operations.append(e)
  
      if len(failed_operations) > 0:
          raise MlflowException(
              message=(
                  "The following failures occurred while performing one or more logging"
                  f" operations: {failed_operations}"
              )
          )
  
imports: import logging
  import os
  from collections import namedtuple
  from concurrent.futures import ThreadPoolExecutor
  from itertools import zip_longest
  from typing import Any, Dict, List, Optional, Union
  from mlflow.entities import Metric, Param, RunTag
  from mlflow.entities.dataset_input import DatasetInput
  from mlflow.exceptions import MlflowException
  from mlflow.tracking.client import MlflowClient
  from mlflow.utils import _truncate_dict, chunk_list
  from mlflow.utils.time import get_current_time_millis
  from mlflow.utils.validation import MAX_DATASETS_PER_BATCH, MAX_ENTITIES_PER_BATCH, MAX_ENTITY_KEY_LENGTH, MAX_METRICS_PER_BATCH, MAX_PARAM_VAL_LENGTH, MAX_PARAMS_TAGS_PER_BATCH, MAX_TAG_VAL_LENGTH
label_desc: Use image node_id 2 for calling the RunOperations obj's underlying member method code with example usage: obj.await_completion() without return types