code: def format_custom_metadata(
      custom_metadata: List[Tuple[str, Any]]
  ) -> Dict[str, List[Any]]:
      """Transforms custom metadata into a format which can be handled by Lightly.
  
      Args:
          custom_metadata:
              List of tuples (filename, metadata) where metadata is a dictionary.
  
      Returns:
          A dictionary of formatted custom metadata.
  
      Examples:
          >>> custom_metadata = [
          >>>     ('hello.png', {'number_of_people': 1}),
          >>>     ('world.png', {'number_of_people': 3}),
          >>> ]
          >>>
          >>> format_custom_metadata(custom_metadata)
          >>> > {
          >>> >   'images': [{'id': 0, 'file_name': 'hello.png'}, {'id': 1, 'file_name': 'world.png'}],
          >>> >   'metadata': [{'image_id': 0, 'number_of_people': 1}, {'image_id': 1, 'number_of_people': 3}]
          >>> > }
  
      :meta private:  # Skip docstring generation
      """
      formatted: Dict[str, List[Any]] = {
          COCO_ANNOTATION_KEYS.images: [],
          COCO_ANNOTATION_KEYS.custom_metadata: [],
      }
  
      for i, (filename, metadata) in enumerate(custom_metadata):
          formatted[COCO_ANNOTATION_KEYS.images].append(
              {
                  COCO_ANNOTATION_KEYS.images_id: i,
                  COCO_ANNOTATION_KEYS.images_filename: filename,
              }
          )
          formatted[COCO_ANNOTATION_KEYS.custom_metadata].append(
              {
                  COCO_ANNOTATION_KEYS.custom_metadata_image_id: i,
                  **metadata,
              }
          )
  
      return formatted
  
file_path: lightly/lightly/utils/io.py
imports: import csv
  import json
  import re
  from itertools import compress
  from typing import Any, Dict, List, Tuple, Union
  import numpy
  from numpy.typing import NDArray
label_desc: Use image node_id 5 for calling a global function with example usage: format_custom_metadata(custom_metadata) and returns: formatted