code: def auto_decompress_stream(src):
      
      block = next(src)
      compression = guess_compression(block)
      if compression == 'bz2':
          src = bz2_decompress_stream(chain([block], src))
      elif compression == 'xz':
          src = xz_decompress_stream(chain([block], src))
      else:
          src = chain([block], src)
  
      for block in src:
          yield block
docs: Decompress data from `src` if required.
  
      If the first block of `src` appears to be compressed, then the entire
      stream will be uncompressed. Otherwise the stream will be passed along
      as-is.
  
      Args:
          src (iterable): iterable that yields blocks of data
  
      Yields:
          blocks of uncompressed data