code: def _create_annotation_placeholder(typename):
      # Inspect and typing know better how to format annotations. They produce short representations
      # of types that are builtins or belonging to typing module, but anything else gets a fully
      # qualified path and there is no customization. Also the formatting using the `repr` of the type
      # is driven by inspect.formatannotation (when we use the type directly) or by the internals of
      # typing classes like Union. So we just pretend, that we are from typing, and we want to
      # have our name as `typename`.
  
      class _AnnotationPlaceholderMeta(type):
          # We don't want <class 'typename'> when inspect calls inspect.formatannotation directly.
          def __repr__(cls):
              return typename
  
      class _AnnotationPlaceholder(
          metaclass=_AnnotationPlaceholderMeta
      ):
          # typing uses those instead of repr
          __name__ = typename
          __qualname__ = typename
          # only if you are part of `typing.` your path is hidden
          __module__ = "typing"
  
          def __init__(self, val):
              self._val = val
  
          # Work around the repr of enums, by replacing them with `__str__`
          def __repr__(self):
              return str(self._val)
  
      return _AnnotationPlaceholder
  
imports: from inspect import Parameter, Signature
  import ast
  import os
  from pathlib import Path
  from contextlib import closing
  from typing import Union, Optional
  from typing import Sequence, List, Any
  from nvidia.dali import backend
  from nvidia.dali import types
  from nvidia.dali.ops import _registry, _names, _docs
  from nvidia.dali import types
  from nvidia.dali import ops, fn
label_desc: Use image node_id 1 for calling a global function with example usage: _create_annotation_placeholder(typename) and returns: _AnnotationPlaceholder, typename, str