class_docstr: This is a helper function for make decisions
class_docstr_tok: ["This","is","a","helper","function","for","make","decisions"]
docstr: This is a callable class.
  
  **NOTE**:
  - It is designed for minute-bar for intra-day trading!!!!!
  - Both start_time and end_time are **closed** in the range
  
  Parameters
  ----------
  start_time : str | time
      e.g. "9:30"
  end_time : str | time
      e.g. "14:30"
code: def __init__(
      self, start_time: str | time, end_time: str | time
  ) -> None:
      """
      This is a callable class.
  
      **NOTE**:
      - It is designed for minute-bar for intra-day trading!!!!!
      - Both start_time and end_time are **closed** in the range
  
      Parameters
      ----------
      start_time : str | time
          e.g. "9:30"
      end_time : str | time
          e.g. "14:30"
      """
      self.start_time = (
          pd.Timestamp(start_time).time()
          if isinstance(start_time, str)
          else start_time
      )
      self.end_time = (
          pd.Timestamp(end_time).time()
          if isinstance(end_time, str)
          else end_time
      )
      assert self.start_time < self.end_time
  
imports: from __future__ import annotations
  from abc import abstractmethod
  from datetime import time
  from enum import IntEnum
  from typing import TYPE_CHECKING, Any, ClassVar, Generic, List, Optional, Tuple, TypeVar, Union, cast
  from qlib.backtest.utils import TradeCalendarManager
  from qlib.data.data import Cal
  from qlib.log import get_module_logger
  from qlib.utils.time import concat_date_time, epsilon_change
  from dataclasses import dataclass
  import numpy
  import pandas
label_desc: Use image node_id 1 to create a new TradeRangeByTime object from inherited base classes: TradeRange with example: obj = TradeRangeByTime(start_time, end_time)