Пример #1
0
def sort_analyses(analyses):
    """ Sort the labels, so that the list of section-by-section analyses
    can be displayed in the correct order. """
    if analyses:
        for a in analyses:
            label = a['label_id'].split('-')
            if 'Interp' not in a['label_id']:
                sortable = sort_regtext_label(label)
            else:
                prefix = label[:label.index('Interp')]
                suffix = label[label.index('Interp') + 1:]

                prefix_sortable = sort_regtext_label(prefix)

                suffix_sortable = [make_label_sortable(l)[0] for l in suffix]
                if len(suffix_sortable) > 1:
                    suffix_sortable[1] = make_label_sortable(
                        suffix_sortable[1], roman=True)[0]
                sortable = prefix_sortable + suffix_sortable
            a['sortable'] = tuple(sortable)
        sorted_analyses = sorted(analyses, key=lambda a: a['sortable'])
        for a in sorted_analyses:
            if 'sortable' in a:
                del a['sortable']
        return sorted_analyses
Пример #2
0
def sort_analyses(analyses):
    """ Sort the labels, so that the list of section-by-section analyses
    can be displayed in the correct order. """
    if analyses:
        for a in analyses:
            label = a['label_id'].split('-')
            if 'Interp' not in a['label_id']:
                sortable = sort_regtext_label(label)
            else:
                prefix = label[:label.index('Interp')]
                suffix = label[label.index('Interp') + 1:]

                prefix_sortable = sort_regtext_label(prefix)

                suffix_sortable = [make_label_sortable(l)[0] for l in suffix]
                if len(suffix_sortable) > 1:
                    suffix_sortable[1] = make_label_sortable(
                        suffix_sortable[1], roman=True)[0]
                sortable = prefix_sortable + suffix_sortable
            a['sortable'] = tuple(sortable)
        sorted_analyses = sorted(analyses, key=lambda a: a['sortable'])
        for a in sorted_analyses:
            if 'sortable' in a:
                del a['sortable']
        return sorted_analyses
Пример #3
0
 def sort_key(self):
     if not self.is_interp:
         return tuple(sort_regtext_label(self.parts))
     else:
         suffix = self.parts[len(self.prefix) + 1:]
         prefix_sortable = sort_regtext_label(self.prefix)
         suffix_sortable = [make_label_sortable(l)[0] for l in suffix]
         if len(suffix_sortable) > 1:
             suffix_sortable[1] = make_label_sortable(suffix_sortable[1],
                                                      roman=True)[0]
         return tuple(prefix_sortable + suffix_sortable)
Пример #4
0
 def sort_key(self):
     if not self.is_interp:
         return tuple(sort_regtext_label(self.parts))
     else:
         suffix = self.parts[len(self.prefix) + 1:]
         prefix_sortable = sort_regtext_label(self.prefix)
         suffix_sortable = [make_label_sortable(l)[0] for l in suffix]
         if len(suffix_sortable) > 1:
             suffix_sortable[1] = make_label_sortable(
                 suffix_sortable[1], roman=True)[0]
         return tuple(prefix_sortable + suffix_sortable)
Пример #5
0
 def test_make_label_sortable_not_roman(self):
     label = "iv"
     sortable = tree_builder.make_label_sortable(label)
     self.assertEquals(sortable, ('iv', ))
Пример #6
0
 def test_make_label_sortable_roman(self):
     label = "iv"
     sortable = tree_builder.make_label_sortable(label, roman=True)
     self.assertEquals(sortable, (4, ))
Пример #7
0
def sort_regtext_label(label):
    """ Make a regtext label sortable """
    sortable = [make_label_sortable(l)[0] for l in label]
    if len(sortable) > 4:
        sortable[4] = make_label_sortable(sortable[4], roman=True)[0]
    return sortable
 def test_make_label_sortable_not_roman(self):
     label = "iv"
     sortable = tree_builder.make_label_sortable(label)
     self.assertEquals(sortable, ('iv',))
 def test_make_label_sortable_roman(self):
     label = "iv"
     sortable = tree_builder.make_label_sortable(label, roman=True)
     self.assertEquals(sortable, 4)
Пример #10
0
def sort_regtext_label(label):
    """ Make a regtext label sortable """
    sortable = [make_label_sortable(l)[0] for l in label]
    if len(sortable) > 4:
        sortable[4] = make_label_sortable(sortable[4], roman=True)[0]
    return sortable