code: def _find_preceding_ast_node(node, lineno):
      """Find the ast node immediately before and not including lineno."""
      for i, child_node in enumerate(node.body):
          if child_node.lineno == lineno:
              return node.body[i - 1]
          if hasattr(child_node, "body"):
              found_node = _find_preceding_ast_node(child_node, lineno)
              if found_node:
                  return found_node
  
imports: import ast
  import os
  import sys
  import tempfile
  import zipfile
  import numpy
  from tensorflow.core.protobuf import config_pb2
  from tensorflow.python.client import session
  from tensorflow.python.debug.lib import debug_data
  from tensorflow.python.debug.lib import debug_utils
  from tensorflow.python.debug.lib import source_utils
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.lib.io import file_io
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.ops import while_loop
  from tensorflow.python.platform import googletest
  from tensorflow.python.util import tf_inspect
label_desc: Use image node_id 2 for calling a global function with example usage: _find_preceding_ast_node(node, lineno) and returns: node, found_node