code: def absolute_output_path(
              output_folder, components, component_key):
          
          comp_keys = [c.key for c in components]
  
          if component_key in comp_keys:
              idx = comp_keys.index(component_key)
              output_path = components[idx].output_path
              if isinstance(output_path, str):
                  return os.path.abspath(
                      os.path.join(output_folder, output_path))
              elif isinstance(output_path, list):
                  output_list = []
                  for path in output_path:
                      output_list.append(os.path.abspath(
                          os.path.join(output_folder, path)))
                  return output_list
              elif isinstance(output_path, dict):
                  output_dict = {}
                  for key, path in list(output_path.items()):
                      output_dict[key] = os.path.abspath(
                          os.path.join(output_folder, path))
                  return output_dict
          return None
docs: Return absolute output path of component.
  
          :param output_folder: The base output folder
          :type output_folder: str
  
          :param components: The list of components to look up
          :type components: list[ReportMetadata]
  
          :param component_key: The component key
          :type component_key: str
  
          :return: absolute output path
          :rtype: str
  
          .. versionadded:: 4.0