docs: def _pack_bits_into_byte(iterable):
      """\
      Packs eight bits into one byte.
  
      If the length of the iterable is not a multiple of eight, ``0x0`` is used
      to fill-up the missing values.
      """
      return (reduce(lambda x, y: (x << 1) + y, e)
              for e in zip_longest(*[iter(iterable)] * 8, fillvalue=0x0))