code: def findall(obj, prs, forced_type=None,
              cls=anyconfig.models.processor.Processor):
      
      if (obj is None or not obj) and forced_type is None:
          raise ValueError("The first argument 'obj' or the second argument "
                           "'forced_type' must be something other than "
                           "None or False.")
  
      if forced_type is None:
          pclss = find_by_maybe_file(obj, prs)  # :: [Processor], never []
      else:
          pclss = find_by_type_or_id(forced_type, prs)  # Do.
  
      return pclss
docs: :param obj:
          a file path, file, file-like object, pathlib.Path object or an
          'anyconfig.globals.IOInfo` (namedtuple) object
      :param prs: A list of :class:`anyconfig.models.processor.Processor` classes
      :param forced_type:
          Forced processor type of the data to process or ID of the processor
          class or None
      :param cls: A class object to compare with 'forced_type' later
  
      :return: A list of instances of processor classes to process 'obj' data
      :raises: ValueError, UnknownProcessorTypeError, UnknownFileTypeError