def checkString(s, r):
        m = dimension_format.parse_dimension_format_string(s)

        for k in r.iterkeys():
            sDf = m[k]
            rDf = r[k]
            print("Comparing '%s' with '%s'" % (sDf.label, rDf.label))
            assert (sDf.label is None and rDf.label is None) or (sDf.label == rDf.label)

            assert len(sDf.dimensionFieldFormats) == len(rDf.dimensionFieldFormats)
            for i in xrange(len(rDf.dimensionFieldFormats)):
                sDff = sDf.dimensionFieldFormats[i]
                rDff = rDf.dimensionFieldFormats[i]
                print("Comparing '%s' with '%s'" % (sDff.label, rDff.label))
                assert (sDff.label is None and rDff.label is None) or (sDff.label == rDff.label)
                print("Comparing '%s' with '%s'" % (sDff.formatString, rDff.formatString))
                assert (sDff.formatString is None and rDff.formatString is None) or (sDff.formatString == rDff.formatString)
Example #2
0
    def generateDimensionDisplayValues(self, dimensionFormat, dimensionReverse):
        """Creates dimension values formatted for display if there is an appropriate format.
        @param dimensionFormat: dimension format string for the layer
        @param dimensionReverse: dimensions for which to reverse order (comma separated string)
        """
        log.debug("Format: %s   reverse: %s" % (dimensionFormat, dimensionReverse))

        if dimensionReverse:
            dimensionsToReverse = [x.strip() for x in dimensionReverse.split(',')]
        else:
            dimensionsToReverse = []

        if dimensionFormat:
            formatDetails = dimension_format.parse_dimension_format_string(dimensionFormat)
            for dim in self.dimensions:
                dimName = dim['name']

                reverseDimension = ((dimName in dimensionsToReverse) and ('dimensionValues' in dim))
                if (reverseDimension):
                    dim['dimensionValues'].reverse()

                if dimName in formatDetails:
                    dimensionFormat = formatDetails[dimName]
                    labels = []
                    displayValues = []
                    startValues = []
                    for dimensionFieldFormat in dimensionFormat.dimensionFieldFormats:
                        labels.append(dimensionFieldFormat.label)
                        if 'dimensionValues' in dim:
                            displayValues.append(dimensionFieldFormat.applyFormat(dimName,
                                                                                  dim['dimensionValues']))
                            startValues.append(dimensionFieldFormat.getStartValue(dimName,
                                                                                  reverseDimension))
                    dim['label'] = dimensionFormat.label
                    dim['displayValues'] = displayValues
                    dim['displayLabels'] = labels
                    dim['startValues'] = startValues