code: def text(name, data, step=None, description=None):
    
    summary_metadata = metadata.create_summary_metadata(
        display_name=None, description=description)
    # TODO(https://github.com/tensorflow/tensorboard/issues/2109): remove fallback
    summary_scope = (
        getattr(tf.summary.experimental, 'summary_scope', None) or
        tf.summary.summary_scope)
    with summary_scope(
        name, 'text_summary', values=[data, step]) as (tag, _):
      tf.debugging.assert_type(data, tf.string)
      return tf.summary.write(
          tag=tag, tensor=data, step=step, metadata=summary_metadata)
docs: Write a text summary.
  
    Arguments:
      name: A name for this summary. The summary tag used for TensorBoard will
        be this name prefixed by any active name scopes.
      data: A UTF-8 string tensor value.
      step: Explicit `int64`-castable monotonic step value for this summary. If
        omitted, this defaults to `tf.summary.experimental.get_step()`, which must
        not be None.
      description: Optional long-form description for this summary, as a
        constant `str`. Markdown is supported. Defaults to empty.
  
    Returns:
      True on success, or false if no summary was emitted because no default
      summary writer was available.
  
    Raises:
      ValueError: if a default writer exists, but no step was provided and
        `tf.summary.experimental.get_step()` is None.