class_docstr: Transformation controller which applies multi transformations
  to each data sample.
class_docstr_tok: ["Transformation","controller","which","applies","multi","transformations","to","each","data","sample","."]
docstr: Allow UT transformations and task specific transformations.
  Support instance single transformation and pipeline transformations.
  
  :param list flint_methods: the method name
  :param dict flint_path: task to its flint objs path
  :param dict allowed_methods: the allowed flint methods of this task
  :return: list of objects of flint_methods.
docstr_tok: ["Allow","UT","transformations","and","task","specific","transformations",".","Support","instance","single","transformation","and","pipeline","transformations",".",":","param","list","flint_methods",":","the","method","name",":","param","dict","flint_path",":","task","to","its","flint","objs","path",":","param","dict","allowed_methods",":","the","allowed","flint","methods","of","this","task",":","return",":","list","of","objects","of","flint_methods","."]
code: def _get_flint_objs(self, flint_methods, flint_path, allowed_methods):
      """
      Allow UT transformations and task specific transformations.
      Support instance single transformation and pipeline transformations.
  
      :param list flint_methods: the method name
      :param dict flint_path: task to its flint objs path
      :param dict allowed_methods: the allowed flint methods of this task
      :return: list of objects of flint_methods.
      """
      flint_objs = []
      flint_type = (
          Transformation
          if flint_path is TASK_TRANSFORMATION_PATH
          else SubPopulation
      )
      flint_classes = pkg_class_load(flint_path[self.task], flint_type)
      if self.task != "UT" and self.task != "CWS" and "CN" in self.task:
          flint_classes.update(
              pkg_class_load(flint_path["UTCN"], flint_type)
          )
      elif self.task != "UT" and self.task != "CWS":
          flint_classes.update(
              pkg_class_load(flint_path["UT"], flint_type)
          )
  
      if isinstance(flint_methods, list):
          if len(flint_methods) == 0:
              return []
      elif flint_methods:
          raise ValueError(
              f"The type of trans_methods must be list "
              f"or None, not {type(flint_methods)}"
          )
      else:
          flint_methods = allowed_methods[self.task]
      for flint_method in flint_methods:
          flint_objs.extend(
              self._create_flint_objs(
                  flint_method, flint_classes, flint_path
              )
          )
      return flint_objs
  
imports: from tqdm import tqdm
  from abc import ABC
  from itertools import product
  from ...input.dataset import Dataset
  from ...common.utils.seed import set_seed
  from ...common.utils.logger import logger
  from ...common.preprocess import EnProcessor
  from ...common.utils.load import pkg_class_load, load_module_from_file
  from ..transformation import Transformation, Pipeline
  from ..subpopulation import SubPopulation
  from ...common.settings import TASK_TRANSFORMATION_PATH, ALLOWED_TRANSFORMATIONS, TASK_SUBPOPULATION_PATH, ALLOWED_SUBPOPULATIONS
label_desc: Use image node_id 8 for calling the Generator obj's underlying member method code with example usage: obj._get_flint_objs(flint_methods, flint_path, allowed_methods) and returns: flint_objs, list