code: def _DType_reduce(DType):
      # As types/classes, most DTypes can simply be pickled by their name:
      if not DType._legacy or DType.__module__ == "numpy.dtypes":
          return DType.__name__
  
      # However, user defined legacy dtypes (like rational) do not end up in
      # `numpy.dtypes` as module and do not have a public class at all.
      # For these, we pickle them by reconstructing them from the scalar type:
      scalar_type = DType.type
      return _DType_reconstruct, (scalar_type,)
  
imports: import os
  import warnings
  from numpy.version import version
  from .None import umath
  from .None import numerictypes
  from .None import numeric
  from .numeric import *
  from .None import fromnumeric
  from .fromnumeric import *
  from .None import defchararray
  from .None import records
  from .None import records
  from .records import record, recarray, format_parser
  from .memmap import *
  from .defchararray import chararray
  from .None import function_base
  from .function_base import *
  from .None import _machar
  from .None import getlimits
  from .getlimits import *
  from .None import shape_base
  from .shape_base import *
  from .None import einsumfunc
  from .einsumfunc import *
  from .numeric import absolute
  from .None import _add_newdocs
  from .None import _add_newdocs_scalars
  from .None import _dtype_ctypes
  from .None import _internal
  from .None import _dtype
  from .None import _methods
  import copyreg
  from numpy._pytesttester import PytestTester
label_desc: Use image node_id 4 for calling a global function with example usage: _DType_reduce(DType) and returns: _DType_reconstruct,  scalar_type, DType