class_docstr: This is the Records Template class that enables user to generate experiment results such as IC and
  backtest in a certain format.
docstr: It behaves the same as self.recorder.save_objects.
  But it is an easier interface because users don't have to care about `get_path` and `artifact_path`
docstr_tok: ["It","behaves","the","same","as","self.recorder.save_objects",".","But","it","is","an","easier","interface","because","users","do","n't","have","to","care","about","`","get_path","`","and","`","artifact_path","`"]
code: def save(self, **kwargs):
      """
      It behaves the same as self.recorder.save_objects.
      But it is an easier interface because users don't have to care about `get_path` and `artifact_path`
      """
      art_path = self.get_path()
      if art_path == "":
          art_path = None
      self.recorder.save_objects(artifact_path=art_path, **kwargs)
  
imports: import logging
  import warnings
  import pandas
  import numpy
  from tqdm import trange
  from pprint import pprint
  from typing import Union, List, Optional, Dict
  from qlib.utils.exceptions import LoadObjectError
  from ..contrib.evaluate import risk_analysis, indicator_analysis
  from ..data.dataset import DatasetH
  from ..data.dataset.handler import DataHandlerLP
  from ..backtest import backtest
  from ..log import get_module_logger
  from ..utils import fill_placeholder, flatten_dict, class_casting, get_date_by_shift
  from ..utils.time import Freq
  from ..utils.data import deepcopy_basic_type
  from ..utils.exceptions import QlibException
  from ..contrib.eva.alpha import calc_ic, calc_long_short_return, calc_long_short_prec
label_desc: Use image node_id 2 for calling the RecordTemp obj's underlying member method code with example usage: obj.save() without return types