code: def auto_trace(func=None, *, annotation=None):
      if annotation is not None:
  
          def _auto_trace(func):
              @functools.wraps(func)
              def _wrapper(*args, **kwargs):
                  return _trace_func(
                      func, args, kwargs, span_name=annotation
                  )
  
              return _wrapper
  
          return _auto_trace
  
      else:
  
          @functools.wraps(func)
          def wrapper(*args, **kwargs):
              return _trace_func(func, args, kwargs)
  
          return wrapper
  
imports: import functools
  import logging
  import os
  import time
  import typing
  from typing import List
  from opentelemetry import trace, context
label_desc: Use image node_id 3 for calling a global function with example usage: auto_trace(func) and returns: _auto_trace, wrapper, _wrapper, _trace_func, _trace_func