nodes: 0, module; 1, function_definition; 2, function_name:decorateSubHeader; 3, parameters; 4, block; 5, identifier:title; 6, identifier:columnWidths; 7, identifier:options; 8, expression_statement; 9, expression_statement; 10, if_statement; 11, comment:""" Add a marker to the correct field if the TITLE is sorted on.
      """; 12, assignment; 13, comparison_operator:title != options.sortCategory; 14, block; 15, else_clause; 16, identifier:title; 17, call; 18, identifier:title; 19, attribute; 20, expression_statement; 21, return_statement; 22, block; 23, attribute; 24, argument_list; 25, identifier:options; 26, identifier:sortCategory; 27, assignment; 28, identifier:s; 29, expression_statement; 30, for_statement; 31, expression_statement; 32, return_statement; 33, identifier:title; 34, identifier:lower; 35, identifier:s; 36, binary_operator:"| %*s%*s%*s%*s%*s " % (
              columnWidths.getWidth(title, "min"), "min",
              columnWidths.getWidth(title, "med"), "med",
              columnWidths.getWidth(title, "ave"), "ave",
              columnWidths.getWidth(title, "max"), "max",
              columnWidths.getWidth(title, "total"), "total"); 37, assignment; 38, pattern_list; 39, list; 40, block; 41, augmented_assignment; 42, identifier:s; 43, string:"| %*s%*s%*s%*s%*s "; 44, tuple; 45, identifier:s; 46, string:"| "; 47, identifier:field; 48, identifier:width; 49, tuple; 50, tuple; 51, tuple; 52, tuple; 53, tuple; 54, if_statement; 55, identifier:s; 56, string:" "; 57, call; 58, string:"min"; 59, call; 60, string:"med"; 61, call; 62, string:"ave"; 63, call; 64, string:"max"; 65, call; 66, string:"total"; 67, string:"min"; 68, call; 69, string:"med"; 70, call; 71, string:"ave"; 72, call; 73, string:"max"; 74, call; 75, string:"total"; 76, call; 77, comparison_operator:options.sortField == field; 78, block; 79, else_clause; 80, attribute; 81, argument_list; 82, attribute; 83, argument_list; 84, attribute; 85, argument_list; 86, attribute; 87, argument_list; 88, attribute; 89, argument_list; 90, attribute; 91, argument_list; 92, attribute; 93, argument_list; 94, attribute; 95, argument_list; 96, attribute; 97, argument_list; 98, attribute; 99, argument_list; 100, attribute; 101, identifier:field; 102, expression_statement; 103, block; 104, identifier:columnWidths; 105, identifier:getWidth; 106, identifier:title; 107, string:"min"; 108, identifier:columnWidths; 109, identifier:getWidth; 110, identifier:title; 111, string:"med"; 112, identifier:columnWidths; 113, identifier:getWidth; 114, identifier:title; 115, string:"ave"; 116, identifier:columnWidths; 117, identifier:getWidth; 118, identifier:title; 119, string:"max"; 120, identifier:columnWidths; 121, identifier:getWidth; 122, identifier:title; 123, string:"total"; 124, identifier:columnWidths; 125, identifier:getWidth; 126, identifier:title; 127, string:"min"; 128, identifier:columnWidths; 129, identifier:getWidth; 130, identifier:title; 131, string:"med"; 132, identifier:columnWidths; 133, identifier:getWidth; 134, identifier:title; 135, string:"ave"; 136, identifier:columnWidths; 137, identifier:getWidth; 138, identifier:title; 139, string:"max"; 140, identifier:columnWidths; 141, identifier:getWidth; 142, identifier:title; 143, string:"total"; 144, identifier:options; 145, identifier:sortField; 146, augmented_assignment; 147, expression_statement; 148, identifier:s; 149, binary_operator:"%*s*" % (width - 1, field); 150, augmented_assignment; 151, string:"%*s*"; 152, tuple; 153, identifier:s; 154, binary_operator:"%*s" % (width, field); 155, binary_operator:width - 1; 156, identifier:field; 157, string:"%*s"; 158, tuple; 159, identifier:width; 160, integer:1; 161, identifier:width; 162, identifier:field
code: def decorateSubHeader(title, columnWidths, options):
      """ Add a marker to the correct field if the TITLE is sorted on.
      """
      title = title.lower()
      if title != options.sortCategory:
          s = "| %*s%*s%*s%*s%*s " % (
              columnWidths.getWidth(title, "min"), "min",
              columnWidths.getWidth(title, "med"), "med",
              columnWidths.getWidth(title, "ave"), "ave",
              columnWidths.getWidth(title, "max"), "max",
              columnWidths.getWidth(title, "total"), "total")
          return s
      else:
          s = "| "
          for field, width in [("min", columnWidths.getWidth(title, "min")),
                               ("med", columnWidths.getWidth(title, "med")),
                               ("ave", columnWidths.getWidth(title, "ave")),
                               ("max", columnWidths.getWidth(title, "max")),
                               ("total", columnWidths.getWidth(title, "total"))]:
              if options.sortField == field:
                  s += "%*s*" % (width - 1, field)
              else:
                  s += "%*s" % (width, field)
          s += " "
          return s