docstr: Init RecorderCollector.
  
  Args:
      experiment:
          (Experiment or str): an instance of an Experiment or the name of an Experiment
          (Callable): an callable function, which returns a list of experiments
      process_list (list or Callable): the list of processors or the instance of a processor to process dict.
      rec_key_func (Callable): a function to get the key of a recorder. If None, use recorder id.
      rec_filter_func (Callable, optional): filter the recorder by return True or False. Defaults to None.
      artifacts_path (dict, optional): The artifacts name and its path in Recorder. Defaults to {"pred": "pred.pkl", "IC": "sig_analysis/ic.pkl"}.
      artifacts_key (str or List, optional): the artifacts key you want to get. If None, get all artifacts.
      list_kwargs (str): arguments for list_recorders function.
      status (Iterable): only collect recorders with specific status. None indicating collecting all the recorders
docstr_tok: ["Init","RecorderCollector",".","Args",":","experiment",":","(","Experiment","or","str",")",":","an","instance","of","an","Experiment","or","the","name","of","an","Experiment","(","Callable",")",":","an","callable","function",",","which","returns","a","list","of","experiments","process_list","(","list","or","Callable",")",":","the","list","of","processors","or","the","instance","of","a","processor","to","process","dict",".","rec_key_func","(","Callable",")",":","a","function","to","get","the","key","of","a","recorder",".","If","None",",","use","recorder","id",".","rec_filter_func","(","Callable",",","optional",")",":","filter","the","recorder","by","return","True","or","False",".","Defaults","to","None",".","artifacts_path","(","dict",",","optional",")",":","The","artifacts","name","and","its","path","in","Recorder",".","Defaults","to","{","``","pred","''",":","``","pred.pkl","''",",","``","IC","''",":","``","sig_analysis\/ic.pkl","''","}",".","artifacts_key","(","str","or","List",",","optional",")",":","the","artifacts","key","you","want","to","get",".","If","None",",","get","all","artifacts",".","list_kwargs","(","str",")",":","arguments","for","list_recorders","function",".","status","(","Iterable",")",":","only","collect","recorders","with","specific","status",".","None","indicating","collecting","all","the","recorders"]
code: def __init__(
      self,
      experiment,
      process_list=[],
      rec_key_func=None,
      rec_filter_func=None,
      artifacts_path={"pred": "pred.pkl"},
      artifacts_key=None,
      list_kwargs={},
      status: Iterable = {Recorder.STATUS_FI},
  ):
      """
      Init RecorderCollector.
  
      Args:
          experiment:
              (Experiment or str): an instance of an Experiment or the name of an Experiment
              (Callable): an callable function, which returns a list of experiments
          process_list (list or Callable): the list of processors or the instance of a processor to process dict.
          rec_key_func (Callable): a function to get the key of a recorder. If None, use recorder id.
          rec_filter_func (Callable, optional): filter the recorder by return True or False. Defaults to None.
          artifacts_path (dict, optional): The artifacts name and its path in Recorder. Defaults to {"pred": "pred.pkl", "IC": "sig_analysis/ic.pkl"}.
          artifacts_key (str or List, optional): the artifacts key you want to get. If None, get all artifacts.
          list_kwargs (str): arguments for list_recorders function.
          status (Iterable): only collect recorders with specific status. None indicating collecting all the recorders
      """
      super().__init__(process_list=process_list)
      if isinstance(experiment, str):
          experiment = R.get_exp(experiment_name=experiment)
      assert isinstance(experiment, (Experiment, Callable))
      self.experiment = experiment
      self.artifacts_path = artifacts_path
      if rec_key_func is None:
  
          def rec_key_func(rec):
              return rec.info["id"]
  
      if artifacts_key is None:
          artifacts_key = list(self.artifacts_path.keys())
      self.rec_key_func = rec_key_func
      self.artifacts_key = artifacts_key
      self.rec_filter_func = rec_filter_func
      self.list_kwargs = list_kwargs
      self.status = status
  
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 1 to create a new RecorderCollector object from inherited base classes: Collector with example: obj = RecorderCollector(experiment, process_list, rec_key_func, rec_filter_func, artifacts_path, artifacts_key, list_kwargs, status)