code: def reduce_on_components(
      self,
      fn_name: str,
      reduction: Optional[str] = None,
      **fn_kwargs,
  ) -> Dict[str, Any]:
      results = {}
      for task, composite in self.task_composites.items():
          result = composite.reduce_on_components(
              fn_name, reduction, **fn_kwargs
          )
          results[task] = result
  
      return results
  
imports: from icevision.imports import *
  from icevision.core import tasks
label_desc: Use image node_id 6 for calling the TaskComposite obj's underlying member method code with example usage: obj.reduce_on_components(fn_name, reduction) and returns: results