code: def _maybe_refresh_run_scalars(self, run, path, cur_digest, reader):
      log.debug("Found events in %s (digest %s)", path, cur_digest)
      prefix = _scalar_prefix(path, run.dir)
      last_digest = self._scalar_source_digest(run.id, prefix)
      if cur_digest != last_digest:
          log.debug(
              "Last digest for %s (%s) is stale, refreshing scalars",
              path,
              last_digest or "unset",
          )
          self._refresh_run_scalars(
              run, prefix, cur_digest, last_digest, reader
          )
  
imports: import logging
  import os
  import sqlite3
  from guild import run_util
  from guild import tfevent
  from guild import util
  from guild import var
label_desc: Use image node_id 3 for calling the ScalarReader obj's underlying member method code with example usage: obj._maybe_refresh_run_scalars(run, path, cur_digest, reader) without return types