code: def _handle_constant(value, device, input_name, op_name):
      """Handle promotion of possible constant value passed as (argument) input to an operator-backed
      DataNode. Pass-through if the value is a DataNode.
  
      Parameters
      ----------
      value : DataNode, ScalarConstant or value convertible to a constant op
          The value to be processed.
      device : str
          Target placement of constant node.
      input_name : int or str
          Position or name of the input, for error reporting purposes.
      op_name : str
          Name of the invoked operator, for error reporting purposes.
  
      Returns
      -------
      DataNode
          Either the same node as input or newly created DataNode representing the constant.
  
      Raises
      ------
      TypeError
          Error in case a constant was passed that is not possible to be converted by DALI.
      """
      if isinstance(value, _DataNode):
          return value
      if isinstance(value, _ScalarConstant):
          return _instantiate_constant_node(value, device)
      try:
          value = _Constant(value, device=device)
      except Exception as e:
          raise TypeError(
              f"when calling operator {op_name}: "
              f"expected inputs of type `DataNode` or convertible to "
              f"constant nodes. Received input `{input_name}` of type "
              f"'{type(value).__name__}'."
          ) from e
      return value
  
imports: import sys
  import threading
  import tree
  import warnings
  from itertools import count
  import nvidia.dali.python_function_plugin
  from nvidia.dali import backend
  from nvidia.dali import fn
  from nvidia.dali import internal
  from nvidia.dali.data_node import DataNode
  from nvidia.dali.pipeline import Pipeline
  from nvidia.dali.types import _type_name_convert_to_string, _type_convert_value, _default_converter, _vector_element_type, ScalarConstant, Constant
  from nvidia.dali import _conditionals
  from nvidia.dali.ops import _registry, _names, _docs, _operator_utils
  from nvidia.dali.ops._registry import cpu_ops, mixed_ops, gpu_ops, register_cpu_op, register_gpu_op
  from nvidia.dali.ops._names import _op_name, _process_op_name, _schema_name
  from nvidia.dali.ops._operator_utils import _build_input_sets, _repack_output_sets
  from nvidia.dali.external_source import ExternalSource
  from nvidia.dali.ops._operators.python_function import PythonFunctionBase, PythonFunction, DLTensorPythonFunction, _dlpack_to_array, _dlpack_from_array
  from nvidia.dali.ops._operators.compose import Compose
  from nvidia.dali.ops._operators.math import _arithm_op, _group_inputs, _generate_input_desc
label_desc: Use image node_id 2 for calling a global function with example usage: _handle_constant(value, device, input_name, op_name) and returns: value, value, _instantiate_constant_node