code: def get_invalidation_bits(self, group_index, channel, fragment):
          
          group = self.groups[group_index]
          dtypes = group.types
  
          data_bytes, offset, _count = fragment
          try:
              invalidation = self._invalidation_cache[(group_index, offset, _count)]
          except KeyError:
              record = group.record
              if record is None:
                  dtypes = group.types
                  if dtypes.itemsize:
                      record = fromstring(data_bytes, dtype=dtypes)
                  else:
                      record = None
  
              invalidation = record["invalidation_bytes"].copy()
              self._invalidation_cache[(group_index, offset, _count)] = invalidation
  
          ch_invalidation_pos = channel.pos_invalidation_bit
          pos_byte, pos_offset = divmod(ch_invalidation_pos, 8)
  
          mask = 1 << pos_offset
  
          invalidation_bits = invalidation[:, pos_byte] & mask
          invalidation_bits = invalidation_bits.astype(bool)
  
          return invalidation_bits
docs: get invalidation indexes for the channel
  
          Parameters
          ----------
          group_index : int
              group index
          channel : Channel
              channel object
          fragment : (bytes, int)
              (fragment bytes, fragment offset)
  
          Returns
          -------
          invalidation_bits : iterable
              iterable of valid channel indexes; if all are valid `None` is
              returned