class_docstr: Client of an MLflow Tracking Server that creates and manages experiments and runs.
class_docstr_tok: ["Client","of","an","MLflow","Tracking","Server","that","creates","and","manages","experiments","and","runs","."]
docstr: Set a tag on the run with the specified ID. Value is converted to a string.
  
  :param run_id: String ID of the run.
  :param key: Tag name (string). This string may only contain alphanumerics, underscores
              (_), dashes (-), periods (.), spaces ( ), and slashes (/).
              All backend stores will support keys up to length 250, but some may
              support larger keys.
  :param value: Tag value (string, but will be string-ified if not).
                All backend stores will support values up to length 5000, but some
                may support larger values.
  :param synchronous: *Experimental* If True, blocks until the tag is logged
                      successfully. If False, logs the tag asynchronously and
                      returns a future representing the logging operation.
  
  :return: When synchronous=True, returns None.
           When synchronous=False, returns :py:class:`mlflow.RunOperations` object
           that represents future for logging operation.
docstr_tok: ["Set","a","tag","on","the","run","with","the","specified","ID",".","Value","is","converted","to","a","string",".",":","param","run_id",":","String","ID","of","the","run",".",":","param","key",":","Tag","name","(","string",")",".","This","string","may","only","contain","alphanumerics",",","underscores","(","_",")",",","dashes","(","-",")",",","periods","(",".",")",",","spaces","(",")",",","and","slashes","(","\/",")",".","All","backend","stores","will","support","keys","up","to","length","250",",","but","some","may","support","larger","keys",".",":","param","value",":","Tag","value","(","string",",","but","will","be","string-ified","if","not",")",".","All","backend","stores","will","support","values","up","to","length","5000",",","but","some","may","support","larger","values",".",":","param","synchronous",":","*","Experimental","*","If","True",",","blocks","until","the","tag","is","logged","successfully",".","If","False",",","logs","the","tag","asynchronously","and","returns","a","future","representing","the","logging","operation",".",":","return",":","When","synchronous=True",",","returns","None",".","When","synchronous=False",",","returns",":","py",":","class",":","`","mlflow.RunOperations","`","object","that","represents","future","for","logging","operation","."]
code: def set_tag(
      self, run_id, key, value, synchronous=True
  ) -> Optional[RunOperations]:
      """
      Set a tag on the run with the specified ID. Value is converted to a string.
  
      :param run_id: String ID of the run.
      :param key: Tag name (string). This string may only contain alphanumerics, underscores
                  (_), dashes (-), periods (.), spaces ( ), and slashes (/).
                  All backend stores will support keys up to length 250, but some may
                  support larger keys.
      :param value: Tag value (string, but will be string-ified if not).
                    All backend stores will support values up to length 5000, but some
                    may support larger values.
      :param synchronous: *Experimental* If True, blocks until the tag is logged
                          successfully. If False, logs the tag asynchronously and
                          returns a future representing the logging operation.
  
      :return: When synchronous=True, returns None.
               When synchronous=False, returns :py:class:`mlflow.RunOperations` object
               that represents future for logging operation.
  
      """
      tag = RunTag(key, str(value))
      if synchronous:
          self.store.set_tag(run_id, tag)
      else:
          return self.store.set_tag_async(run_id, tag)
  
imports: import os
  from collections import OrderedDict
  from itertools import zip_longest
  from typing import List, Optional
  from mlflow.entities import ExperimentTag, Metric, Param, RunStatus, RunTag, ViewType
  from mlflow.entities.dataset_input import DatasetInput
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE, ErrorCode
  from mlflow.store.artifact.artifact_repository_registry import get_artifact_repository
  from mlflow.store.tracking import GET_METRIC_HISTORY_MAX_RESULTS, SEARCH_MAX_RESULTS_DEFAULT
  from mlflow.tracking._tracking_service import utils
  from mlflow.tracking.metric_value_conversion_utils import convert_metric_value_to_float_if_possible
  from mlflow.utils import chunk_list
  from mlflow.utils.async_logging.run_operations import RunOperations, get_combined_run_operations
  from mlflow.utils.mlflow_tags import MLFLOW_USER
  from mlflow.utils.string_utils import is_string_type
  from mlflow.utils.time import get_current_time_millis
  from mlflow.utils.uri import add_databricks_profile_info_to_artifact_uri
  from mlflow.utils.validation import MAX_ENTITIES_PER_BATCH, MAX_METRICS_PER_BATCH, MAX_PARAMS_TAGS_PER_BATCH, PARAM_VALIDATION_MSG, _validate_experiment_artifact_location, _validate_run_id
label_desc: Use image node_id 16 for calling the TrackingServiceClient obj's underlying member method code with example usage: obj.set_tag(run_id, key, value, synchronous) and returns: self