class_docstr: The collector to collect different results
class_docstr_tok: ["The","collector","to","collect","different","results"]
docstr: Do a series of processing to the dict returned by collect and return a dict like {key: things}
  For example, you can group and ensemble.
  
  Args:
      collected_dict (dict): the dict return by `collect`
      process_list (list or Callable): the list of processors or the instance of a processor to process dict.
          The processor order is the same as the list order.
          For example: [Group1(..., Ensemble1()), Group2(..., Ensemble2())]
  
  Returns:
      dict: the dict after processing.
docstr_tok: ["Do","a","series","of","processing","to","the","dict","returned","by","collect","and","return","a","dict","like","{","key",":","things","}","For","example",",","you","can","group","and","ensemble",".","Args",":","collected_dict","(","dict",")",":","the","dict","return","by","`","collect","`","process_list","(","list","or","Callable",")",":","the","list","of","processors","or","the","instance","of","a","processor","to","process","dict",".","The","processor","order","is","the","same","as","the","list","order",".","For","example",":","[","Group1","(","...",",","Ensemble1","(",")",")",",","Group2","(","...",",","Ensemble2","(",")",")","]","Returns",":","dict",":","the","dict","after","processing","."]
code: def process_collect(
      collected_dict, process_list=[], *args, **kwargs
  ) -> dict:
      """
      Do a series of processing to the dict returned by collect and return a dict like {key: things}
      For example, you can group and ensemble.
  
      Args:
          collected_dict (dict): the dict return by `collect`
          process_list (list or Callable): the list of processors or the instance of a processor to process dict.
              The processor order is the same as the list order.
              For example: [Group1(..., Ensemble1()), Group2(..., Ensemble2())]
  
      Returns:
          dict: the dict after processing.
      """
      if not isinstance(process_list, list):
          process_list = [process_list]
      result = {}
      for artifact in collected_dict:
          value = collected_dict[artifact]
          for process in process_list:
              if not callable(process):
                  raise NotImplementedError(
                      f"{type(process)} is not supported in `process_collect`."
                  )
              value = process(value, *args, **kwargs)
          result[artifact] = value
      return result
  
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 3 for calling the Collector obj's underlying member method code with example usage: obj.process_collect(collected_dict, process_list) and returns: result