class_docstr: Manager for trading calendar
      - BaseStrategy and BaseExecutor will use it
docstr: Please refer to the docs of `__init__`
  
  Reset the trade calendar
  - self.trade_len : The total count for trading step
  - self.trade_step : The number of trading step finished, self.trade_step can be
      [0, 1, 2, ..., self.trade_len - 1]
docstr_tok: ["Please","refer","to","the","docs","of","`","__init__","`","Reset","the","trade","calendar","-","self.trade_len",":","The","total","count","for","trading","step","-","self.trade_step",":","The","number","of","trading","step","finished",",","self.trade_step","can","be","[","0",",","1",",","2",",","...",",","self.trade_len","-","1","]"]
code: def reset(
      self,
      freq: str,
      start_time: Union[str, pd.Timestamp] = None,
      end_time: Union[str, pd.Timestamp] = None,
  ) -> None:
      """
      Please refer to the docs of `__init__`
  
      Reset the trade calendar
      - self.trade_len : The total count for trading step
      - self.trade_step : The number of trading step finished, self.trade_step can be
          [0, 1, 2, ..., self.trade_len - 1]
      """
      self.freq = freq
      self.start_time = pd.Timestamp(start_time) if start_time else None
      self.end_time = pd.Timestamp(end_time) if end_time else None
  
      _calendar = Cal.calendar(freq=freq, future=True)
      assert isinstance(_calendar, np.ndarray)
      self._calendar = _calendar
      _, _, _start_index, _end_index = Cal.locate_index(
          start_time, end_time, freq=freq, future=True
      )
      self.start_index = _start_index
      self.end_index = _end_index
      self.trade_len = _end_index - _start_index + 1
      self.trade_step = 0
  
imports: from __future__ import annotations
  from abc import abstractmethod
  from typing import Any, Set, Tuple, TYPE_CHECKING, Union
  import numpy
  from qlib.utils.time import epsilon_change
  import warnings
  import pandas
  from ..data.data import Cal
label_desc: Use image node_id 2 for calling the TradeCalendarManager obj's underlying member method code with example usage: obj.reset(freq, start_time, end_time) without return types