code: def bzip_blocks_decompress_all(data):
      
      frames = bytearray()
      offset = 0
      while offset < len(data):
          size_bytes = data[offset:offset + 4]
          offset += 4
          block_cmp_bytes = abs(Struct('>l').unpack(size_bytes)[0])
          try:
              frames.extend(bz2.decompress(data[offset:offset + block_cmp_bytes]))
              offset += block_cmp_bytes
          except IOError:
              # If we've decompressed any frames, this is an error mid-stream, so warn, stop
              # trying to decompress and let processing proceed
              if frames:
                  logging.warning('Error decompressing bz2 block stream at offset: %d',
                                  offset - 4)
                  break
              else:  # Otherwise, this isn't a bzip2 stream, so bail
                  raise ValueError('Not a bz2 stream.')
      return frames
docs: Decompress all of the bzip2-ed blocks.
  
      Returns the decompressed data as a `bytearray`.