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: Check if the records is properly generated and saved.
  It is useful in following examples
  
  - checking if the dependant files complete before generating new things.
  - checking if the final files is completed
  
  Parameters
  ----------
  include_self : bool
      is the file generated by self included
  parents : bool
      will we check parents
  
  Raise
  ------
  FileNotFoundError
      whether the records are stored properly.
docstr_tok: ["Check","if","the","records","is","properly","generated","and","saved",".","It","is","useful","in","following","examples","-","checking","if","the","dependant","files","complete","before","generating","new","things",".","-","checking","if","the","final","files","is","completed","Parameters","--","--","--","--","--","include_self",":","bool","is","the","file","generated","by","self","included","parents",":","bool","will","we","check","parents","Raise","--","--","--","FileNotFoundError","whether","the","records","are","stored","properly","."]
code: def check(self, include_self: bool = False, parents: bool = True):
      """
      Check if the records is properly generated and saved.
      It is useful in following examples
  
      - checking if the dependant files complete before generating new things.
      - checking if the final files is completed
  
      Parameters
      ----------
      include_self : bool
          is the file generated by self included
      parents : bool
          will we check parents
  
      Raise
      ------
      FileNotFoundError
          whether the records are stored properly.
      """
      if include_self:
          # Some mlflow backend will not list the directly recursively.
          # So we force to the directly
          artifacts = {}
  
          def _get_arts(dirn):
              if dirn not in artifacts:
                  artifacts[dirn] = self.recorder.list_artifacts(dirn)
              return artifacts[dirn]
  
          for item in self.list():
              ps = self.get_path(item).split("/")
              dirn = "/".join(ps[:-1])
              if self.get_path(item) not in _get_arts(dirn):
                  raise FileNotFoundError
      if parents:
          if self.depend_cls is not None:
              with class_casting(self, self.depend_cls):
                  self.check(include_self=True)
  
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 8 for calling the RecordTemp obj's underlying member method code with example usage: obj.check(include_parents) and returns: artifacts