code: def collector(self) -> Iterable[pd.Timestamp]:
      lg = bs.login()
      if lg.error_code != "0":
          raise ValueError(f"login respond error_msg: {lg.error_msg}")
      rs = bs.query_trade_dates(
          start_date=self._format_datetime(self.start_date),
          end_date=self._format_datetime(self.end_date),
      )
      if rs.error_code != "0":
          raise ValueError(
              f"query_trade_dates respond error_msg: {rs.error_msg}"
          )
      data_list = []
      while (rs.error_code == "0") & rs.next():
          data_list.append(rs.get_row_data())
      calendar = pd.DataFrame(data_list, columns=rs.fields)
      calendar["is_trading_day"] = calendar["is_trading_day"].astype(
          int
      )
      return pd.to_datetime(
          calendar[calendar["is_trading_day"] == 1]["calendar_date"]
      ).to_list()
  
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 for calling the CollectorFutureCalendarCN obj's underlying member method code with example usage: obj.collector() and returns: pd