code: def op(name,
         data,
         display_name=None,
         description=None,
         collections=None):
    
    # TODO(nickfelt): remove on-demand imports once dep situation is fixed.
    import tensorflow.compat.v1 as tf
  
    if display_name is None:
      display_name = name
    summary_metadata = metadata.create_summary_metadata(
        display_name=display_name, description=description)
    with tf.name_scope(name):
      with tf.control_dependencies([tf.assert_scalar(data)]):
        return tf.summary.tensor_summary(name='scalar_summary',
                                         tensor=tf.cast(data, tf.float32),
                                         collections=collections,
                                         summary_metadata=summary_metadata)
docs: Create a legacy scalar summary op.
  
    Arguments:
      name: A unique name for the generated summary node.
      data: A real numeric rank-0 `Tensor`. Must have `dtype` castable
        to `float32`.
      display_name: Optional name for this summary in TensorBoard, as a
        constant `str`. Defaults to `name`.
      description: Optional long-form description for this summary, as a
        constant `str`. Markdown is supported. Defaults to empty.
      collections: Optional list of graph collections keys. The new
        summary op is added to these collections. Defaults to
        `[Graph Keys.SUMMARIES]`.
  
    Returns:
      A TensorFlow summary op.