docs: def check_dimension_order(self, ds):
          '''
          Checks each variable's dimension order to ensure that the order is
          consistent and in order under CF §2.4
  
          CF §2.4 If any or all of the dimensions of a variable have the
          interpretations of "date or time" (T), "height or depth" (Z),
          "latitude" (Y), or "longitude" (X) then we recommend, those dimensions
          to appear in the relative order T, then Z, then Y, then X in the CDL
          definition corresponding to the file. All other dimensions should,
          whenever possible, be placed to the left of the spatiotemporal
          dimensions.
  
          :param netCDF4.Dataset ds: An open netCDF dataset
          :rtype: compliance_checker.base.Result
          '''
          valid_dimension_order = TestCtx(BaseCheck.MEDIUM, self.section_titles['2.4'])
          # Build a map from coordinate variable to axis
          coord_axis_map = self._get_coord_axis_map(ds)
  
          # Check each variable's dimension order, excluding climatology and
          # bounds variables
          any_clim = cfutil.get_climatology_variable(ds)
          any_bounds = cfutil.get_cell_boundary_variables(ds)
          for name, variable in ds.variables.items():
              # Skip bounds/climatology variables, as they should implicitly
              # have the same order except for the bounds specific dimension.
              # This is tested later in the respective checks
              if name in any_bounds or name == any_clim:
                  continue
  
              # Skip strings/labels
              if hasattr(variable.dtype, 'char') and variable.dtype.char == 'S':
                  continue
              elif variable.dtype == str:
                  continue
  
              if variable.dimensions:
                  dimension_order = self._get_dimension_order(ds, name, coord_axis_map)
                  valid_dimension_order.assert_true(self._dims_in_order(dimension_order),
                                                    "{}'s dimensions are not in the recommended order "
                                                    "T, Z, Y, X. They are {}"
                                                    "".format(name, self._get_pretty_dimension_order(ds, name)))
          return valid_dimension_order.to_result()