code: def smooth_value(self, span: Optional[int] = None) -> List[float]:
      if span is None:
          span = len(self.value) // SMOOTH_POINTS
      span_extra = span // 2
  
      n = 0
      total = 0
      smoothed = []
      for i in range(len(self.value) + span_extra):
          j = i - span_extra
          if i < len(self.value):
              total += self.value[i]
              n += 1
          if j - span_extra - 1 >= 0:
              total -= self.value[j - span_extra - 1]
              n -= 1
          if j >= 0:
              smoothed.append(total / n)
  
      return smoothed
  
imports: import math
  from typing import Dict, List, Optional, Union
  from datetime import datetime, timedelta
  import numpy
label_desc: Use image node_id 16 for calling the Series obj's underlying member method code with example usage: obj.smooth_value(span) and returns: smoothed