code: def quantized(values, steps, input_min=0, input_max=1):
      
      values = _normalize(values)
      if steps < 1:
          raise ValueError("steps must be 1 or larger")
      if input_min >= input_max:
          raise ValueError('input_min must be smaller than input_max')
      input_size = input_max - input_min
      for v in scaled(values, 0, 1, input_min, input_max):
          yield ((int(v * steps) / steps) * input_size) + input_min
docs: Returns *values* quantized to *steps* increments. All items in *values* are
      assumed to be between *input_min* and *input_max* (which default to 0 and
      1 respectively), and the output will be in the same range.
  
      For example, to quantize values between 0 and 1 to 5 "steps" (0.0, 0.25,
      0.5, 0.75, 1.0)::
  
          from gpiozero import PWMLED, MCP3008
          from gpiozero.tools import quantized
          from signal import pause
  
          led = PWMLED(4)
          pot = MCP3008(channel=0)
  
          led.source = quantized(pot, 4)
  
          pause()