docstr: Parameters
  ----------
  qlib_dir:
      qlib data directory
  start_date
      start date
  end_date
      end date
docstr_tok: ["Parameters","--","--","--","--","--","qlib_dir",":","qlib","data","directory","start_date","start","date","end_date","end","date"]
code: def __init__(
      self,
      qlib_dir: Union[str, Path],
      start_date: str = None,
      end_date: str = None,
  ):
      """
  
      Parameters
      ----------
      qlib_dir:
          qlib data directory
      start_date
          start date
      end_date
          end date
      """
      self.qlib_dir = Path(qlib_dir).expanduser().absolute()
      self.calendar_path = self.qlib_dir.joinpath("calendars/day.txt")
      self.future_path = self.qlib_dir.joinpath(
          "calendars/day_future.txt"
      )
      self._calendar_list = self.calendar_list
      _latest_date = self._calendar_list[-1]
      self.start_date = (
          _latest_date
          if start_date is None
          else pd.Timestamp(start_date)
      )
      self.end_date = (
          _latest_date + pd.Timedelta(days=365 * 2)
          if end_date is None
          else pd.Timestamp(end_date)
      )
  
imports: import abc
  import importlib
  from pathlib import Path
  from typing import Union, Iterable, List
  import fire
  import numpy
  import pandas
  import baostock
  from loguru import logger
label_desc: Use image node_id 1 to create a new CollectorFutureCalendar object  with example: obj = CollectorFutureCalendar(qlib_dir, start_date, end_date)