code: def __call__(self, task_class: Type[gokart.TaskOnKart]):
      # wrap task to prevent task name from being changed
      @luigi.task._task_wraps(task_class)
      class Wrapped(task_class):  # type: ignore
          @classmethod
          def get_param_values(cls, params, args, kwargs):
              for (
                  param_key,
                  param_value,
              ) in self._config_class().param_kwargs.items():
                  task_param_key = self._parameter_alias.get(
                      param_key, param_key
                  )
  
                  if (
                      hasattr(cls, task_param_key)
                      and task_param_key not in kwargs
                  ):
                      kwargs[task_param_key] = param_value
              return super(Wrapped, cls).get_param_values(
                  params, args, kwargs
              )
  
      return Wrapped
  
imports: from typing import Dict, Optional, Type
  import luigi
  import gokart
label_desc: Use image node_id 2 for calling the inherits_config_params obj's underlying member method code with example usage: obj.__call__(task_class) and returns: Wrapped, super