code: def dtype_from_ctypes_type(t):
      """
      Construct a dtype object from a ctypes type
      """
      import _ctypes
  
      if issubclass(t, _ctypes.Array):
          return _from_ctypes_array(t)
      elif issubclass(t, _ctypes._Pointer):
          raise TypeError("ctypes pointers have no dtype equivalent")
      elif issubclass(t, _ctypes.Structure):
          return _from_ctypes_structure(t)
      elif issubclass(t, _ctypes.Union):
          return _from_ctypes_union(t)
      elif isinstance(getattr(t, "_type_", None), str):
          return _from_ctypes_scalar(t)
      else:
          raise NotImplementedError(
              "Unknown ctypes type {}".format(t.__name__)
          )
  
imports: import numpy
label_desc: Use image node_id 5 for calling a global function with example usage: dtype_from_ctypes_type(t) and returns: _from_ctypes_array, _from_ctypes_structure, _from_ctypes_union, _from_ctypes_scalar