code: def update(self, step: List[float], value: List[float]) -> None:
      prev_size = len(self.value)
  
      value = np.array(value)
      step = np.array(step)
      last_step = np.array(step)
  
      self._remove_nan(value)
  
      self.value = np.concatenate((self.value, value))
      self.step = np.concatenate((self.step, step))
      self.last_step = np.concatenate((self.last_step, last_step))
  
      if self.keep_last_24h:
          self.value, self.step, self.last_step = _remove_old(
              self.value, self.step, self.last_step
          )
  
      self.step_gap = self.find_step_gap()
  
      # with monit.section('Merge added'):
      self.merge(prev_size)
  
      while len(self) > self.max_buffer_length:
          self.step_gap *= 2
          # with monit.section('Merge'):
          self.merge()
  
imports: import math
  from typing import Dict, List, Optional, Union
  from datetime import datetime, timedelta
  import numpy
label_desc: Use image node_id 8 for calling the Series obj's underlying member method code with example usage: obj.update(step, value) without return types