class_docstr: The trainer can train a list of models.
  There are Trainer and DelayTrainer, which can be distinguished by when it will finish real training.
class_docstr_tok: ["The","trainer","can","train","a","list","of","models",".","There","are","Trainer","and","DelayTrainer",",","which","can","be","distinguished","by","when","it","will","finish","real","training","."]
docstr: Given a list of task definitions, begin training, and return the models.
  
  For Trainer, it finishes real training in this method.
  For DelayTrainer, it only does some preparation in this method.
  
  Args:
      tasks: a list of tasks
  
  Returns:
      list: a list of models
docstr_tok: ["Given","a","list","of","task","definitions",",","begin","training",",","and","return","the","models",".","For","Trainer",",","it","finishes","real","training","in","this","method",".","For","DelayTrainer",",","it","only","does","some","preparation","in","this","method",".","Args",":","tasks",":","a","list","of","tasks","Returns",":","list",":","a","list","of","models"]
code: def train(self, tasks: list, *args, **kwargs) -> list:
      """
      Given a list of task definitions, begin training, and return the models.
  
      For Trainer, it finishes real training in this method.
      For DelayTrainer, it only does some preparation in this method.
  
      Args:
          tasks: a list of tasks
  
      Returns:
          list: a list of models
      """
      raise NotImplementedError(f"Please implement the `train` method.")
  
imports: import socket
  from typing import Callable, List, Optional
  from tqdm.auto import tqdm
  from qlib.config import C
  from qlib.data.dataset import Dataset
  from qlib.data.dataset.weight import Reweighter
  from qlib.log import get_module_logger
  from qlib.model.base import Model
  from qlib.utils import auto_filter_kwargs, fill_placeholder, flatten_dict, init_instance_by_config
  from qlib.utils.paral import call_in_subproc
  from qlib.workflow import R
  from qlib.workflow.recorder import Recorder
  from qlib.workflow.task.manage import TaskManager, run_task
label_desc: Use image node_id 2 for calling the Trainer obj's underlying member method code with example usage: obj.train(tasks) without return types