class_docstr: Summary plugin base class.
  
  Summary plugins log additional summary values (e.g. GPU usage,
  etc.) per logged summary. This class is used to patch the TF env
  to handle `add_summary` of `tensorflow.summary.FileWriter` and of
  `tensorboardX.writer.SummaryToEventTransformer`.
class_docstr_tok: ["Summary","plugin","base","class",".","Summary","plugins","log","additional","summary","values","(","e.g",".","GPU","usage",",","etc",".",")","per","logged","summary",".","This","class","is","used","to","patch","the","TF","env","to","handle","`","add_summary","`","of","`","tensorflow.summary.FileWriter","`","and","of","`","tensorboardX.writer.SummaryToEventTransformer","`","."]
docstr: Handler for guild.summary.SummaryWriter.add_scalar.
docstr_tok: ["Handler","for","guild.summary.SummaryWriter.add_scalar","."]
code: def _handle_guild_scalar(
      self, wrapped_add_scalar, tag, value, step=None
  ):
      """Handler for guild.summary.SummaryWriter.add_scalar."""
      vals = self._summary_values(step)
      if vals:
          self.log.debug("summary values via add_scalar: %s", vals)
          for extra_tag, val in vals.items():
              if val is not None:
                  wrapped_add_scalar(extra_tag, val, step)
  
imports: import time
  import warnings
  from guild import python_util
  from guild import util
  from guild.plugin import Plugin
label_desc: Use image node_id 13 for calling the SummaryPlugin obj's underlying member method code with example usage: obj._handle_guild_scalar(wrapped_add_scalar, tag, value, step) without return types