docstr: Add a new user into the a folder to run 'online' module.
  
  Parameters
  ----------
  id : str
      User id, should be unique.
  config : str
      The file path (yaml) of user config
  path : str
      Path to save user account.
  date : str (YYYY-MM-DD)
      The date that user account was added.
docstr_tok: ["Add","a","new","user","into","the","a","folder","to","run","'online","'","module",".","Parameters","--","--","--","--","--","id",":","str","User","id",",","should","be","unique",".","config",":","str","The","file","path","(","yaml",")","of","user","config","path",":","str","Path","to","save","user","account",".","date",":","str","(","YYYY-MM-DD",")","The","date","that","user","account","was","added","."]
code: def add_user(self, id, config, path, date):
      """Add a new user into the a folder to run 'online' module.
  
      Parameters
      ----------
      id : str
          User id, should be unique.
      config : str
          The file path (yaml) of user config
      path : str
          Path to save user account.
      date : str (YYYY-MM-DD)
          The date that user account was added.
      """
      create_user_folder(path)
      qlib.init_from_yaml_conf(self.client)
      um = UserManager(user_data_path=path)
      add_date = D.calendar(end_time=date)[-1]
      if not is_tradable_date(add_date):
          raise ValueError(
              "add date is not tradable date".format(add_date.date())
          )
      um.add_user(user_id=id, config_file=config, add_date=add_date)
  
imports: import fire
  import pandas
  import pathlib
  import qlib
  import logging
  from ...data import D
  from ...log import get_module_logger
  from ...utils import get_pre_trading_date, is_tradable_date
  from ..evaluate import risk_analysis
  from ..backtest.backtest import update_account
  from .manager import UserManager
  from .utils import prepare
  from .utils import create_user_folder
  from .executor import load_order_list, save_order_list
  from .executor import SimulatorExecutor
  from .executor import save_score_series, load_score_series
label_desc: Use image node_id 3 for calling the Operator obj's underlying member method code with example usage: obj.add_user(id, config, path, date) without return types