class_docstr: The base class for generating different tasks
  
  Example 1:
  
      input: a specific task template and rolling steps
  
      output: rolling version of the tasks
  
  Example 2:
  
      input: a specific task template and losses list
  
      output: a set of tasks with different losses
docstr: Generate different tasks based on a task template
  
  Parameters
  ----------
  task: dict
      a task template
  
  Returns
  -------
  typing.List[dict]:
      A list of tasks
docstr_tok: ["Generate","different","tasks","based","on","a","task","template","Parameters","--","--","--","--","--","task",":","dict","a","task","template","Returns","--","--","--","-","typing.List","[","dict","]",":","A","list","of","tasks"]
code: def generate(self, task: dict) -> List[dict]:
      """
      Generate different tasks based on a task template
  
      Parameters
      ----------
      task: dict
          a task template
  
      Returns
      -------
      typing.List[dict]:
          A list of tasks
      """
  
imports: import abc
  import copy
  import pandas
  from typing import Dict, List, Union, Callable
  from qlib.utils import transform_end_date
  from .utils import TimeAdjuster
label_desc: Use image node_id 1 for calling the TaskGen obj's underlying member method code with example usage: obj.generate(task) without return types