class_docstr: DataLoader that supports loading data from file or as provided.
class_docstr_tok: ["DataLoader","that","supports","loading","data","from","file","or","as","provided","."]
code: def load(
      self, instruments=None, start_time=None, end_time=None
  ) -> pd.DataFrame:
      self._maybe_load_raw_data()
      if instruments is None:
          df = self._data
      else:
          df = self._data.loc(axis=0)[:, instruments]
      if start_time is None and end_time is None:
          return df  # NOTE: avoid copy by loc
      # pd.Timestamp(None) == NaT, use NaT as index can not fetch correct thing, so do not change None.
      start_time = time_to_slc_point(start_time)
      end_time = time_to_slc_point(end_time)
      return df.loc[start_time:end_time]
  
imports: import abc
  import pickle
  from pathlib import Path
  import warnings
  import pandas
  from typing import Tuple, Union, List
  from qlib.data import D
  from qlib.utils import load_dataset, init_instance_by_config, time_to_slc_point
  from qlib.log import get_module_logger
  from qlib.utils.serial import Serializable
label_desc: Use image node_id 3 for calling the StaticDataLoader obj's underlying member method code with example usage: obj.load(instruments, start_time, end_time) and returns: df, df