code: def __sympifyit(func, arg, retval=None):
      """Decorator to _sympify `arg` argument for function `func`.
  
      Do not use directly -- use _sympifyit instead.
      """
  
      # we support f(a,b) only
      if not func.__code__.co_argcount:
          raise LookupError("func not found")
      # only b is _sympified
      assert func.__code__.co_varnames[1] == arg
      if retval is None:
  
          @wraps(func)
          def __sympifyit_wrapper(a, b):
              return func(a, sympify(b, strict=True))
  
      else:
  
          @wraps(func)
          def __sympifyit_wrapper(a, b):
              try:
                  # If an external class has _op_priority, it knows how to deal
                  # with SymPy objects. Otherwise, it must be converted.
                  if not hasattr(b, "_op_priority"):
                      b = sympify(b, strict=True)
                  return func(a, b)
              except SympifyError:
                  return retval
  
      return __sympifyit_wrapper
  
file_path: sympy/sympy/core/decorators.py
imports: from functools import wraps
  from .sympify import SympifyError, sympify
label_desc: Use image node_id 2 for calling a global function with example usage: __sympifyit(func, arg, retval) and returns: __sympifyit_wrapper, func, func, retval