  
          Returns
          -------
          tuple
              (`hours`, `minutes`, `seconds`) as ints
          """
          hrs = int(timestamp // 3600)
          if hrs < 10:
              hrs = f"{hrs:02d}"
          mins = f"{(int(timestamp % 3600) // 60):02d}"
 
</s> remove         if hrs < 10:
            hrs = f"{hrs:02d}"
 </s> add         hrs = f"{hrs:02d}" if hrs < 10 else str(hrs) </s> remove     def _ewma_vectorized_safe(self):
 </s> add     def _ewma_vectorized_safe(self) -> None: </s> remove     def __call__(self):
 </s> add     def __call__(self) -> np.ndarray: </s> remove         mean = np.mean(data)
        limit = np.std(data)
 </s> add         mean = np.mean(np.nan_to_num(data))
        limit = np.std(np.nan_to_num(data))
            (`hours`, `minutes`, `seconds`) as strings
  
          Returns
          -------
          tuple
            (`hours`, `minutes`, `seconds`) as strings
          """
          hrs = int(timestamp // 3600)
          if hrs < 10:
              hrs = f"{hrs:02d}"
          mins = f"{(int(timestamp % 3600) // 60):02d}"
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