                                            timestamps_shape=timestamps.shape)
          else:
              self._add_latest_live(session_id, loss, timestamps)
  
      def _to_numpy(self, data, length_loss, is_live):
          """ Extract each individual step data into separate numpy arrays for loss and timestamps.
  
          Timestamps are stored float64 as the extra accuracy is needed for correct timings. Arrays
          are returned at the length of the shortest available data (i.e. truncated records are
          dropped)
 
</s> remove     def _process_data(self, data, timestamps, loss, length_loss, is_live):
 </s> add     def _process_data(self, data, timestamps, loss, is_live): </s> remove         length_loss: int
            The number of loss items that should appear for each step
 </s> add  </s> remove         length_loss: int
            The number of loss items that should appear for each step
 </s> add  </s> remove         times, loss = self._process_data(data, times, loss, length_loss, is_live)
 </s> add         times, loss = self._process_data(data, times, loss, is_live)
    def _to_numpy(self, data, is_live):
                                            timestamps_shape=timestamps.shape)
          else:
              self._add_latest_live(session_id, loss, timestamps)
  
    def _to_numpy(self, data, is_live):
          """ Extract each individual step data into separate numpy arrays for loss and timestamps.
  
          Timestamps are stored float64 as the extra accuracy is needed for correct timings. Arrays
          are returned at the length of the shortest available data (i.e. truncated records are
          dropped)
keep keep keep keep replace keep keep keep keep keep
 GUI - Analysis Bugfix
   - Get correct length of loss labels when carrying over raw data 
lib/gui/analysis/event_reader.py