diff --git a/doc/source/_static/default.css_t b/doc/source/_static/default.css_t index f27fa099..af08871e 100644 --- a/doc/source/_static/default.css_t +++ b/doc/source/_static/default.css_t @@ -271,4 +271,16 @@ th { .field-list { font-size: 80%; +} + +/* Coverage States */ +span.missing{ + color: #FFFFFF; + background-color: #ff5840; + border-color: #A77272; +} +span.covered{ + color: #106600; + background-color: #60f030; + border-color: #4F8530; } \ No newline at end of file diff --git a/doc/source/coverage_generator.py b/doc/source/coverage_generator.py index 72d79c69..b80ba02a 100644 --- a/doc/source/coverage_generator.py +++ b/doc/source/coverage_generator.py @@ -1,7 +1,14 @@ #!/usr/bin/env python +import sys +import os import csv +# Parameters +missing_string = ":missing:`Not Implemented`" +page_title = "Coverage Tables" +table_names = ["Image Display and Exploration","Image File I/O"] + def table_seperator(cols,lengths,character="-"): output = "+" output += '+'.join([character*(length+2) for length in lengths]) @@ -16,42 +23,49 @@ def table_row(data,lengths,num_columns=None): if len(data)-1 >= i: entry = data[i] else: - entry = "" + entry = missing_string output += " " + entry + " "*(lengths[i] - len(entry)) + " |" return output - -csv_path = 'test.csv' -reader = csv.reader(open(csv_path,'r'),delimiter=',',quotechar='"') - -# Find number of columns and column widths, base number of columns is -# determined by the headers -page_title = "Coverage Tables" -print page_title -print "="*len(page_title) -print -table_names = ["Image Display and Exploration","Image File I/O"] -for table in table_names: + +def generate_table(reader,column_titles=["Functionality","Matlab","Scipy"]): + # Find number of columns and column widths, base number of columns is + # determined by the headers num_columns = 3 - data = [["Functionality","Matlab","Scipy"]] + data = [column_titles] for row in reader: if len(row) == 0: break data.append([entry.expandtabs() for entry in row]) num_columns = max(num_columns,len(row)) - column_lengths = [0]*num_columns + column_lengths = [len(missing_string)]*num_columns for row in data: for i in xrange(len(row)): column_lengths[i] = max(column_lengths[i],len(row[i])) - print table - print "-"*len(table) - print - print table_seperator(num_columns,column_lengths,character="-") - print table_row(data[0],column_lengths,num_columns) - print table_seperator(num_columns,column_lengths,character="=") + output = table + "\n" + output += "-"*len(table)+"\n\n" + output += table_seperator(num_columns,column_lengths,character="-") + "\n" + output += table_row(data[0],column_lengths,num_columns) + "\n" + output += table_seperator(num_columns,column_lengths,character="=") + "\n" for row in data[1:]: - print table_row(row,column_lengths,num_columns) - print table_seperator(num_columns,column_lengths,character='-') - print - print + output += table_row(row,column_lengths,num_columns) + "\n" + output += table_seperator(num_columns,column_lengths,character='-') + "\n" + output += "\n\n" + return output + +if __name__ == "__main__": + if len(sys.argv) > 1: + csv_path = os.path.abspath(sys.argv[1]) + else: + csv_path = './coverage.csv' + + reader = csv.reader(open(csv_path,'r'),delimiter=',',quotechar='"') + +print page_title +print "="*len(page_title) +print +print ".. role:: missing" +print +for table in table_names: + print generate_table(reader)