class_docstr: PAR/REC header
class_docstr_tok: ["PAR\/REC","header"]
docstr: Sorts by (fast to slow): slice number, volume number.
  
  We calculate volume number by looking for repeating slice numbers (see
  :func:`vol_numbers`).
docstr_tok: ["Sorts","by","(","fast","to","slow",")",":","slice","number",",","volume","number",".","We","calculate","volume","number","by","looking","for","repeating","slice","numbers","(","see",":","func",":","`","vol_numbers","`",")","."]
code: def _lax_sort_order(self):
      """
      Sorts by (fast to slow): slice number, volume number.
  
      We calculate volume number by looking for repeating slice numbers (see
      :func:`vol_numbers`).
      """
      slice_nos = self.image_defs["slice number"]
      is_full = vol_is_full(slice_nos, self.general_info["max_slices"])
      keys = (
          slice_nos,
          vol_numbers(slice_nos),
          np.logical_not(is_full),
      )
      return np.lexsort(keys)
  
imports: import re
  import warnings
  from collections import OrderedDict
  from copy import deepcopy
  from io import StringIO
  from locale import getpreferredencoding
  import numpy
  from .affines import apply_affine, dot_reduce, from_matvec
  from .eulerangles import euler2mat
  from .fileslice import fileslice, strided_scalar
  from .nifti1 import unit_codes
  from .openers import ImageOpener
  from .spatialimages import SpatialHeader, SpatialImage
  from .volumeutils import Recoder, array_from_file
label_desc: Use image node_id 23 for calling the PARRECHeader obj's underlying member method code with example usage: obj._lax_sort_order() and returns: np