code: def __init__(
      self,
      index_name: str,
      qlib_dir: [str, Path] = None,
      freq: str = "day",
      request_retry: int = 5,
      retry_sleep: int = 3,
  ):
      super(IBOVIndex, self).__init__(
          index_name=index_name,
          qlib_dir=qlib_dir,
          freq=freq,
          request_retry=request_retry,
          retry_sleep=retry_sleep,
      )
  
      self.today: datetime = datetime.date.today()
      self.current_4_month_period = self.get_current_4_month_period(
          self.today.month
      )
      self.year = str(self.today.year)
      self.years_4_month_periods = self.get_four_month_period()
  
imports: from functools import partial
  import sys
  from pathlib import Path
  import datetime
  import fire
  import pandas
  from tqdm import tqdm
  from loguru import logger
  from data_collector.index import IndexBase
  from data_collector.utils import get_instruments
label_desc: Use image node_id 1 to create a new IBOVIndex object from inherited base classes: IndexBase with example: obj = IBOVIndex(index_name, qlib_dir, freq, request_retry, retry_sleep)