code: def next_blob(self):
          
          try:
              length = struct.unpack('<i', self.blob_file.read(4))[0]
          except struct.error:
              raise StopIteration
          header = CLBHeader(file_obj=self.blob_file)
          blob = {'CLBHeader': header}
          remaining_length = length - header.size
          pmt_data = []
          pmt_raw_data = self.blob_file.read(remaining_length)
          pmt_raw_data_io = BytesIO(pmt_raw_data)
          for _ in range(int(remaining_length / 6)):
              channel_id, time, tot = struct.unpack(
                  '>cic', pmt_raw_data_io.read(6)
              )
              pmt_data.append(PMTData(ord(channel_id), time, ord(tot)))
          blob['PMTData'] = pmt_data
          blob['PMTRawData'] = pmt_raw_data
          return blob
docs: Generate next blob in file