class_docstr: Simple Container Class to manage the state of the TensorBoard remote fetchers
class_docstr_tok: ["Simple","Container","Class","to","manage","the","state","of","the","TensorBoard","remote","fetchers"]
docstr: Runs on each callback from a fetcher to update the state.
  We delay signalling the READY_SIGNAL to give TensorBoard a moment
  to do its internal book keeping and prevent the "no data"
  issues we were previously seeing when signalling ready immediately
  after the first file is fetched.
  
  TensorBoard >=v2.5.0 has a "load_fast=true" flag to alleviate this problem
  but for backwards compatibility reasons, we cannot use it yet.
  More info here: https://github.com/tensorflow/tensorboard/issues/4784
docstr_tok: ["Runs","on","each","callback","from","a","fetcher","to","update","the","state",".","We","delay","signalling","the","READY_SIGNAL","to","give","TensorBoard","a","moment","to","do","its","internal","book","keeping","and","prevent","the","``","no","data","''","issues","we","were","previously","seeing","when","signalling","ready","immediately","after","the","first","file","is","fetched",".","TensorBoard",">","=v2.5.0","has","a","``","load_fast=true","''","flag","to","alleviate","this","problem","but","for","backwards","compatibility","reasons",",","we","can","not","use","it","yet",".","More","info","here",":","https",":","\/\/github.com\/tensorflow\/tensorboard\/issues\/4784"]
code: def on_file_fetched(self) -> None:
      """Runs on each callback from a fetcher to update the state.
      We delay signalling the READY_SIGNAL to give TensorBoard a moment
      to do its internal book keeping and prevent the "no data"
      issues we were previously seeing when signalling ready immediately
      after the first file is fetched.
  
      TensorBoard >=v2.5.0 has a "load_fast=true" flag to alleviate this problem
      but for backwards compatibility reasons, we cannot use it yet.
      More info here: https://github.com/tensorflow/tensorboard/issues/4784
      """
      with self._lock:
          if not self._ready:
              self._ready = True
              t = threading.Timer(
                  READY_SIGNAL_DELAY, self._emit_ready_signal
              )
              t.start()
          self._num_fetched_files += 1
  
imports: import json
  import logging
  import os
  import queue
  import subprocess
  import sys
  import tempfile
  import threading
  import time
  from typing import Any, Callable, Dict, List
  import boto3
  import requests
  from packaging import version
  import determined
  import determined.common
  from determined.tensorboard import fetchers
label_desc: Use image node_id 2 for calling the TBFetchManager obj's underlying member method code with example usage: obj.on_file_fetched() without return types