class_docstr: Base data storage for datahandler
  - pd.DataFrame is the default data storage format in Qlib datahandler
  - If users want to use custom data storage, they should define subclass inherited BaseHandlerStorage, and implement the following method
class_docstr_tok: ["Base","data","storage","for","datahandler","-","pd.DataFrame","is","the","default","data","storage","format","in","Qlib","datahandler","-","If","users","want","to","use","custom","data","storage",",","they","should","define","subclass","inherited","BaseHandlerStorage",",","and","implement","the","following","method"]
docstr: fetch data from the data storage
  
  Parameters
  ----------
  selector : Union[pd.Timestamp, slice, str]
      describe how to select data by index
  level : Union[str, int]
      which index level to select the data
      - if level is None, apply selector to df directly
  col_set : Union[str, List[str]]
      - if isinstance(col_set, str):
          select a set of meaningful columns.(e.g. features, columns)
          if col_set == DataHandler.CS_RAW:
              the raw dataset will be returned.
      - if isinstance(col_set, List[str]):
          select several sets of meaningful columns, the returned data has multiple level
  fetch_orig : bool
      Return the original data instead of copy if possible.
  proc_func: Callable
      please refer to the doc of DataHandler.fetch
  
  Returns
  -------
  pd.DataFrame
      the dataframe fetched
docstr_tok: ["fetch","data","from","the","data","storage","Parameters","--","--","--","--","--","selector",":","Union","[","pd.Timestamp",",","slice",",","str","]","describe","how","to","select","data","by","index","level",":","Union","[","str",",","int","]","which","index","level","to","select","the","data","-","if","level","is","None",",","apply","selector","to","df","directly","col_set",":","Union","[","str",",","List","[","str","]","]","-","if","isinstance","(","col_set",",","str",")",":","select","a","set","of","meaningful","columns.","(","e.g",".","features",",","columns",")","if","col_set","==","DataHandler.CS_RAW",":","the","raw","dataset","will","be","returned",".","-","if","isinstance","(","col_set",",","List","[","str","]",")",":","select","several","sets","of","meaningful","columns",",","the","returned","data","has","multiple","level","fetch_orig",":","bool","Return","the","original","data","instead","of","copy","if","possible",".","proc_func",":","Callable","please","refer","to","the","doc","of","DataHandler.fetch","Returns","--","--","--","-","pd.DataFrame","the","dataframe","fetched"]
code: def fetch(
      self,
      selector: Union[pd.Timestamp, slice, str, list] = slice(
          None, None
      ),
      level: Union[str, int] = "datetime",
      col_set: Union[str, List[str]] = DataHandler.CS_ALL,
      fetch_orig: bool = True,
      proc_func: Callable = None,
      **kwargs,
  ) -> pd.DataFrame:
      """fetch data from the data storage
  
      Parameters
      ----------
      selector : Union[pd.Timestamp, slice, str]
          describe how to select data by index
      level : Union[str, int]
          which index level to select the data
          - if level is None, apply selector to df directly
      col_set : Union[str, List[str]]
          - if isinstance(col_set, str):
              select a set of meaningful columns.(e.g. features, columns)
              if col_set == DataHandler.CS_RAW:
                  the raw dataset will be returned.
          - if isinstance(col_set, List[str]):
              select several sets of meaningful columns, the returned data has multiple level
      fetch_orig : bool
          Return the original data instead of copy if possible.
      proc_func: Callable
          please refer to the doc of DataHandler.fetch
  
      Returns
      -------
      pd.DataFrame
          the dataframe fetched
      """
      raise NotImplementedError("fetch is method not implemented!")
  
file_path: qlib/qlib/data/dataset/storage.py
imports: import pandas
  import numpy
  from .handler import DataHandler
  from typing import Union, List, Callable
  from .utils import get_level_index, fetch_df_by_index, fetch_df_by_col
label_desc: Use image node_id 1 for calling the BaseHandlerStorage obj's underlying member method code with example usage: obj.fetch(selector, level, col_set, fetch_orig, proc_func) without return types