              for idx in self.session_ids:
                  if not self._cache.is_cached(idx):
                      self._cache_data(idx)
  
      def get_loss(self, session_id=None):
          """ Read the loss from the TensorBoard event logs
  
          Parameters
          ----------
          session_id: int, optional
 
</s> remove     def _check_cache(self, session_id=None):
 </s> add     def _check_cache(self, session_id: Optional[int] = None) -> None: </s> remove         data: dict
 </s> add         data[int, :class:`EventData`] </s> remove     def cache_data(self, session_id, data, labels, is_live=False):
 </s> add     def cache_data(self,
                   session_id: int,
                   data: Dict[int, EventData],
                   labels: List[str],
                   is_live: bool = False) -> None: </s> remove     def _cache_data(self, session_id):
 </s> add     def _cache_data(self, session_id: int) -> None:
    def get_loss(self, session_id: Optional[int] = None) -> Dict[int, Dict[str, np.ndarray]]:
              for idx in self.session_ids:
                  if not self._cache.is_cached(idx):
                      self._cache_data(idx)
  
    def get_loss(self, session_id: Optional[int] = None) -> Dict[int, Dict[str, np.ndarray]]:
          """ Read the loss from the TensorBoard event logs
  
          Parameters
          ----------
          session_id: int, optional
keep keep keep keep replace keep keep keep keep keep
 Bugfixes
  - plugin.train.unbalanced - decoder b
  - gui.stats - crash when log folder deleted
  - setup.py - install gcc=12.1.0 on linux (scipy dep)
  - setup.py - don't test ROCm unless valid
  - typofix - cli_args extract singleprocess help
typing
  - lib.gui.analysis.event_reader
  - lib.gpu_stats.directml - make platform specific
unit tests
  - lib.gui.analysis.event_reader 
lib/gui/analysis/event_reader.py