code: def extract(context, data):
      
      with context.http.rehash(data) as result:
          file_path = result.file_path
          content_type = result.content_type
          extract_dir = random_filename(context.work_path)
          if content_type in ZIP_MIME_TYPES:
              extracted_files = extract_zip(file_path, extract_dir)
          elif content_type in TAR_MIME_TYPES:
              extracted_files = extract_tar(file_path, extract_dir, context)
          elif content_type in SEVENZIP_MIME_TYPES:
              extracted_files = extract_7zip(file_path, extract_dir, context)
          else:
              context.log.warning(
                  "Unsupported archive content type: %s", content_type
              )
              return
          extracted_content_hashes = {}
          for path in extracted_files:
              relative_path = os.path.relpath(path, extract_dir)
              content_hash = context.store_file(path)
              extracted_content_hashes[relative_path] = content_hash
              data['content_hash'] = content_hash
              data['file_name'] = relative_path
              context.emit(data=data.copy())
docs: Extract a compressed file