code: def get_output_names(outputs) -> Optional[List[str]]:
      """
      :param: list[ct.TensorType/ct.ImageType]
      :return: list[str] or None
      """
      output_names = None
      if outputs is not None:
          assert all(
              [isinstance(t, InputType) for t in outputs]
          ), "outputs must be a list of ct.ImageType or ct.TensorType"
          output_names = [t.name for t in outputs]
          if all([name is None for name in output_names]):
              output_names = None
      return output_names
  
file_path: coremltools/coremltools/converters/mil/frontend/_utils.py
imports: import itertools
  from typing import List, Optional
  from coremltools.converters.mil.input_types import InputType
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Var, types
  from coremltools.converters.mil.mil.ops.defs._utils import parse_einsum_equation
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic, is_symbolic
label_desc: Use image node_id 5 for calling a global function with example usage: get_output_names(outputs) and returns: output_names