class_docstr: The collector to collect different results
class_docstr_tok: ["The","collector","to","collect","different","results"]
docstr: Do the workflow including ``collect`` and ``process_collect``
  
  Returns:
      dict: the dict after collecting and processing.
docstr_tok: ["Do","the","workflow","including","``","collect","``","and","``","process_collect","``","Returns",":","dict",":","the","dict","after","collecting","and","processing","."]
code: def __call__(self, *args, **kwargs) -> dict:
      """
      Do the workflow including ``collect`` and ``process_collect``
  
      Returns:
          dict: the dict after collecting and processing.
      """
      collected = self.collect()
      return self.process_collect(
          collected, self.process_list, *args, **kwargs
      )
  
imports: from collections import defaultdict
  from qlib.log import TimeInspector
  from typing import Callable, Dict, Iterable, List
  from qlib.log import get_module_logger
  from qlib.utils.serial import Serializable
  from qlib.utils.exceptions import LoadObjectError
  from qlib.workflow import R
  from qlib.workflow.exp import Experiment
  from qlib.workflow.recorder import Recorder
label_desc: Use image node_id 4 for calling the Collector obj's underlying member method code with example usage: obj.__call__() and returns: self