class_docstr: Efficiently implements a subset of MLflow Tracking's  `MlflowClient` and fluent APIs to provide
  automatic batching and async execution of run operations by way of queueing, as well as
  parameter / tag truncation for autologging use cases. Run operations defined by this client,
  such as `create_run` and `log_metrics`, enqueue data for future persistence to MLflow
  Tracking. Data is not persisted until the queue is flushed via the `flush()` method, which
  supports synchronous and asynchronous execution.
  
  MlflowAutologgingQueueingClient is not threadsafe; none of its APIs should be called
  concurrently.
class_docstr_tok: ["Efficiently","implements","a","subset","of","MLflow","Tracking","'s","`","MlflowClient","`","and","fluent","APIs","to","provide","automatic","batching","and","async","execution","of","run","operations","by","way","of","queueing",",","as","well","as","parameter","\/","tag","truncation","for","autologging","use","cases",".","Run","operations","defined","by","this","client",",","such","as","`","create_run","`","and","`","log_metrics","`",",","enqueue","data","for","future","persistence","to","MLflow","Tracking",".","Data","is","not","persisted","until","the","queue","is","flushed","via","the","`","flush","(",")","`","method",",","which","supports","synchronous","and","asynchronous","execution",".","MlflowAutologgingQueueingClient","is","not","threadsafe",";","none","of","its","APIs","should","be","called","concurrently","."]
docstr: Enqueues a collection of Tags to be logged to the run specified by `run_id`.
docstr_tok: ["Enqueues","a","collection","of","Tags","to","be","logged","to","the","run","specified","by","`","run_id","`","."]
code: def set_tags(
      self, run_id: Union[str, PendingRunId], tags: Dict[str, Any]
  ) -> None:
      """
      Enqueues a collection of Tags to be logged to the run specified by `run_id`.
      """
      tags = _truncate_dict(
          tags,
          max_key_length=MAX_ENTITY_KEY_LENGTH,
          max_value_length=MAX_TAG_VAL_LENGTH,
      )
      tags_arr = [
          RunTag(key, str(value)) for key, value in tags.items()
      ]
      self._get_pending_operations(run_id).enqueue(tags=tags_arr)
  
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 9 for calling the MlflowAutologgingQueueingClient obj's underlying member method code with example usage: obj.set_tags(run_id, tags) without return types