code: def extract(
      self, input_path: str, force_extract: bool = False
  ) -> str:
      extractor_format = self.extractor.infer_extractor_format(
          input_path
      )
      if not extractor_format:
          return input_path
      output_path = self._get_output_path(input_path)
      if self._do_extract(output_path, force_extract):
          self.extractor.extract(
              input_path, output_path, extractor_format
          )
      return output_path
  
imports: import bz2
  import gzip
  import lzma
  import os
  import shutil
  import struct
  import tarfile
  import warnings
  import zipfile
  from abc import ABC, abstractmethod
  from pathlib import Path
  from typing import Dict, List, Optional, Type, Union
  from ..None import config
  from ._filelock import FileLock
  from .logging import get_logger
label_desc: Use image node_id 4 for calling the ExtractManager obj's underlying member method code with example usage: obj.extract(input_path, force_extract) and returns: output_path, input_path