code: def get_zero_point_type(self, zero_point: np.ndarray) -> int:
      zero_point_type = None
      if (
          zero_point.dtype == float8e4m3fn
          and zero_point.dtype.descr[0][0] == "e4m3fn"
      ):
          zero_point_type = TensorProto.FLOAT8E4M3FN
      elif (
          zero_point.dtype == float8e4m3fnuz
          and zero_point.dtype.descr[0][0] == "e4m3fnuz"
      ):
          zero_point_type = TensorProto.FLOAT8E4M3FNUZ
      elif (
          zero_point.dtype == float8e5m2
          and zero_point.dtype.descr[0][0] == "e5m2"
      ):
          zero_point_type = TensorProto.FLOAT8E5M2
      elif (
          zero_point.dtype == float8e5m2fnuz
          and zero_point.dtype.descr[0][0] == "e5m2fnuz"
      ):
          zero_point_type = TensorProto.FLOAT8E5M2FNUZ
      elif (
          zero_point.dtype == uint4
          and zero_point.dtype.descr[0][0] == "uint4"
      ):
          zero_point_type = TensorProto.UINT4
      elif (
          zero_point.dtype == int4
          and zero_point.dtype.descr[0][0] == "int4"
      ):
          zero_point_type = TensorProto.INT4
      else:
          zero_point_type = np_dtype_to_tensor_dtype(zero_point.dtype)
      return zero_point_type
  
file_path: onnx/onnx/reference/ops/op_quantize_linear.py
imports: from __future__ import annotations
  from typing import ClassVar
  import numpy
  from onnx import TensorProto, subbyte
  from onnx.helper import float32_to_float8e4m3, float32_to_float8e5m2, np_dtype_to_tensor_dtype, tensor_dtype_to_np_dtype
  from onnx.reference.custom_element_types import float8e4m3fn, float8e4m3fnuz, float8e5m2, float8e5m2fnuz, int4, uint4
  from onnx.reference.op_run import OpRun
label_desc: Use image node_id 1 for calling the _CommonQuantizeLinear obj's underlying member method code with example usage: obj.get_zero_point_type(zero_point) and returns: zero_point_type