          if self._is_training:
              self._is_querying.clear()
          return retval
  
      def get_timestamps(self, session_id):
          """ Obtain the time stamps keys for the given session_id.
  
          Parameters
          ----------
          session_id: int or ``None``
 
</s> remove     def get_loss_keys(self, session_id):
 </s> add     def get_loss_keys(self, session_id: Optional[int]) -> List[str]: </s> remove     def get_loss(self, session_id):
 </s> add     def get_loss(self, session_id: Optional[int]) -> dict: </s> remove         timestamps:
            The time stamp summary data for the given session id
 </s> add  </s> remove     def _collate_stats(self, session_id, timestamps):
 </s> add     def _collate_stats(self, session_id: int) -> dict: </s> remove     def _wait_for_thread(self):
 </s> add     def _wait_for_thread(self) -> None:
    def get_timestamps(self, session_id: Optional[int]) -> Union[dict, np.ndarray]:
          if self._is_training:
              self._is_querying.clear()
          return retval
  
    def get_timestamps(self, session_id: Optional[int]) -> Union[dict, np.ndarray]:
          """ Obtain the time stamps keys for the given session_id.
  
          Parameters
          ----------
          session_id: int or ``None``
keep keep keep keep replace keep keep keep keep keep
 Bugfixes:
  - Stats graph - Handle NaNs in data
  - logger - de-elevate matplotlib font messages 
lib/gui/analysis/stats.py