code: def _construction_repr(dtype, include_align=False, short=False):
      """
      Creates a string repr of the dtype, excluding the 'dtype()' part
      surrounding the object. This object may be a string, a list, or
      a dict depending on the nature of the dtype. This
      is the object passed as the first parameter to the dtype
      constructor, and if no additional constructor parameters are
      given, will reproduce the exact memory layout.
  
      Parameters
      ----------
      short : bool
          If true, this creates a shorter repr using 'kind' and 'itemsize', instead
          of the longer type name.
  
      include_align : bool
          If true, this includes the 'align=True' parameter
          inside the struct dtype construction dict when needed. Use this flag
          if you want a proper repr string without the 'dtype()' part around it.
  
          If false, this does not preserve the
          'align=True' parameter or sticky NPY_ALIGNED_STRUCT flag for
          struct arrays like the regular repr does, because the 'align'
          flag is not part of first dtype constructor parameter. This
          mode is intended for a full 'repr', where the 'align=True' is
          provided as the second parameter.
      """
      if dtype.fields is not None:
          return _struct_str(dtype, include_align=include_align)
      elif dtype.subdtype:
          return _subarray_str(dtype)
      else:
          return _scalar_str(dtype, short=short)
  
file_path: catboost/contrib/python/numpy/py2/numpy/core/_dtype.py
imports: from __future__ import division, absolute_import, print_function
  import sys
  import numpy
label_desc: Use image node_id 6 for calling a global function with example usage: _construction_repr(dtype, include_align, short) and returns: _struct_str, _subarray_str, _scalar_str