class_docstr: Find appropriate date and adjust date.
class_docstr_tok: ["Find","appropriate","date","and","adjust","date","."]
docstr: Align time_point to trade date of calendar
  
  Args:
      time_point
          Time point
      tp_type : str
          time point type (`"start"`, `"end"`)
  
  Returns:
      pd.Timestamp
docstr_tok: ["Align","time_point","to","trade","date","of","calendar","Args",":","time_point","Time","point","tp_type",":","str","time","point","type","(","`","``","start","''","`",",","`","``","end","''","`",")","Returns",":","pd.Timestamp"]
code: def align_time(self, time_point, tp_type="start") -> pd.Timestamp:
      """
      Align time_point to trade date of calendar
  
      Args:
          time_point
              Time point
          tp_type : str
              time point type (`"start"`, `"end"`)
  
      Returns:
          pd.Timestamp
      """
      if time_point is None:
          return None
      return self.cals[self.align_idx(time_point, tp_type=tp_type)]
  
imports: import bisect
  from copy import deepcopy
  import pandas
  from qlib.data import D
  from qlib.utils import hash_args
  from qlib.utils.mod import init_instance_by_config
  from qlib.workflow import R
  from qlib.config import C
  from qlib.log import get_module_logger
  from pymongo import MongoClient
  from pymongo.database import Database
  from typing import Union
  from pathlib import Path
label_desc: Use image node_id 7 for calling the TimeAdjuster obj's underlying member method code with example usage: obj.align_time(time_point, tp_type) and returns: self, None