code: def np_dtype_to_py_type(np_dtype):
      # Can't use dict, as hash(np.int32) != hash(val.dtype)
      if np_dtype in [np.int32, np.int64]:
          return int
      if np_dtype in [bool, np.bool_]:
          return bool
      if np_dtype in [np.float32, np.float64]:
          return float
      if np_dtype in [np.complex64, np.complex128]:
          return complex
      raise NotImplementedError("{} is not supported".format(np_dtype))
  
imports: from collections import namedtuple
  import numpy
  import numpy
  import sympy
  import coremltools.proto.MIL_pb2
  from .get_type_info import get_type_info
  from .type_bool import bool
  from .type_bool import is_bool
  from .type_complex import complex64
  from .type_complex import complex128
  from .type_complex import is_complex
  from .type_dict import is_dict
  from .type_double import fp16
  from .type_double import fp32
  from .type_double import fp64
  from .type_double import is_float
  from .type_int import int8
  from .type_int import int16
  from .type_int import int32
  from .type_int import int64
  from .type_int import is_int
  from .type_int import uint8
  from .type_int import uint16
  from .type_int import uint32
  from .type_int import uint64
  from .type_list import is_list
  from .type_str import str
  from .type_unknown import unknown
label_desc: Use image node_id 1 for calling a global function with example usage: np_dtype_to_py_type(np_dtype) and returns: int, bool, float, complex