docs: def get_fw_extractor(fw_file):
      """Gets the firmware extractor object fine-tuned for specified type
  
      :param fw_file: compact firmware file to be extracted from
      :raises: InvalidInputError, for unsupported file types
      :returns: FirmwareImageExtractor object
      """
      fw_img_extractor = FirmwareImageExtractor(fw_file)
      extension = fw_img_extractor.fw_file_ext.lower()
  
      if extension == '.scexe':
          # assign _do_extract attribute to refer to _extract_scexe_file
          fw_img_extractor._do_extract = types.MethodType(
              _extract_scexe_file, fw_img_extractor)
      elif extension == '.rpm':
          # assign _do_extract attribute to refer to _extract_rpm_file
          fw_img_extractor._do_extract = types.MethodType(
              _extract_rpm_file, fw_img_extractor)
      elif extension in RAW_FIRMWARE_EXTNS:
          # Note(deray): Assigning ``extract`` attribute to return
          #     1. the firmware file itself
          #     2. boolean (False) to indicate firmware file is not extracted
          def dummy_extract(self):
              """Dummy (no-op) extract method
  
              :returns: the same firmware file with the complete path
              :returns: boolean(False) to indicate that a new file is not
                        generated.
              """
              return fw_img_extractor.fw_file, False
  
          fw_img_extractor.extract = types.MethodType(
              dummy_extract, fw_img_extractor)
      else:
          raise exception.InvalidInputError(
              'Unexpected compact firmware file type: %s' % fw_file)
  
      return fw_img_extractor