code: def post_periodic_filtered(values, repeat_after, block):
      
      values = _normalize(values)
      if repeat_after < 1:
          raise ValueError("repeat_after must be 1 or larger")
      if block < 1:
          raise ValueError("block must be 1 or larger")
      it = iter(values)
      try:
          while True:
              for _ in range(repeat_after):
                  yield next(it)
              for _ in range(block):
                  next(it)
      except StopIteration:
          pass
docs: After every *repeat_after* items, blocks the next *block* items from
      *values*. Note that unlike :func:`pre_periodic_filtered`, *repeat_after*
      can't be 0. For example, to block every tenth item read from an ADC::
  
          from gpiozero import MCP3008
          from gpiozero.tools import post_periodic_filtered
  
          adc = MCP3008(channel=0)
  
          for value in post_periodic_filtered(adc, 9, 1):
              print(value)