code: def _tf_range(start_or_stop, stop, step):
      """Overload of range_ that generates a TF range tensor."""
      # Note: for static inputs (e.g. constants), tf.range errors out at graph
      # construction time, instead of returning an empty tensor. Preventing the
      # graph construction error aligns the semantics with Python.
  
      # TODO(mdan): We should optimize this when a full tensor is not required.
      if step is not UNSPECIFIED:
          # TODO(mdan): Add argument coercion similar to other cases.
          return math_ops.range(start_or_stop, stop, step)
      if stop is not UNSPECIFIED:
          stop = math_ops.maximum(start_or_stop, stop)
          return math_ops.range(start_or_stop, stop)
      start_or_stop = math_ops.maximum(start_or_stop, 0)
      return math_ops.range(start_or_stop)
  
imports: import inspect
  from tensorflow.python.autograph.utils import tensors
  from tensorflow.python.autograph.utils import type_registry
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import cond
  from tensorflow.python.ops import control_flow_assert
  from tensorflow.python.ops import gen_parsing_ops
  from tensorflow.python.ops import gen_string_ops
  from tensorflow.python.ops import list_ops
  from tensorflow.python.ops import math_ops
label_desc: Use image node_id 31 for calling a global function with example usage: _tf_range(start_or_stop, stop, step) and returns: math_ops, math_ops, math_ops