code: def get_diff_op_types():
      cwd_path = Path.cwd()
      # git fetch first for git diff on GitHub Action
      subprocess.run(
          ["git", "fetch", "origin", "main:main"],
          cwd=cwd_path,
          capture_output=True,
          check=True,
      )
      # obtain list of added or modified files in this PR
      obtain_diff = subprocess.Popen(
          [
              "git",
              "diff",
              "--name-only",
              "--diff-filter=AM",
              "origin/main",
              "HEAD",
          ],
          cwd=cwd_path,
          stdout=subprocess.PIPE,
          stderr=subprocess.PIPE,
      )
      stdoutput, _ = obtain_diff.communicate()
      diff_list = stdoutput.split()
      changed_op_types = []
      for file in diff_list:
          file_name = file.decode("utf-8")
          if file_name.startswith(
              "onnx/backend/test/case/node/"
          ) and file_name.endswith(".py"):
              changed_op_types.append(
                  file_name.split("/")[-1].replace(".py", "")
              )
      return changed_op_types
  
file_path: onnx/onnx/backend/test/case/node/__init__.py
imports: import subprocess
  import sys
  from copy import deepcopy
  from pathlib import Path
  from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
  import numpy
  import onnx
  from onnx.backend.test.case.test_case import TestCase
  from onnx.backend.test.case.utils import import_recursive
  from onnx.onnx_pb import AttributeProto, FunctionProto, GraphProto, ModelProto, NodeProto, TensorProto, TypeProto
label_desc: Use image node_id 9 for calling a global function with example usage: get_diff_op_types() and returns: changed_op_types