Skip to content
Snippets Groups Projects
Commit 6298304d authored by Johannes Mey's avatar Johannes Mey
Browse files

cleanup. update expected tar content

parent f7ee331b
Branches
No related tags found
No related merge requests found
root = true
[*.java]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = tab
insert_final_newline = true
max_line_length = 140
trim_trailing_whitespace = true
[*.jadd]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = tab
insert_final_newline = true
max_line_length = 140
trim_trailing_whitespace = true
[*.jrag]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = tab
insert_final_newline = true
max_line_length = 140
trim_trailing_whitespace = true
This diff is collapsed.
#!/usr/bin/env python
import csv
import re
import os.path
import sys
# import subprocess
import collections
pattern = re.compile('matches-([^-]*)-([^-]*)-railway-([^-]*)-([^-]*)-.csv')
class TableRow(object):
def __init__(self, size, rowname):
self.size = size
self.rowname = rowname
self.values = {}
def set(self, index, iteration, value):
columns = self.values.get(iteration)
if not columns:
columns = ['?'] * (self.size)
self.values[iteration] = columns
columns[index] = value
def get_rows(self):
return [[self.rowname, k] + v + [all((e == v[0] for e in v[1:]))]
for k, v in sorted(self.values.iteritems())]
class Table(object):
def __init__(self):
self.rownames = set()
self.tools = set()
self.rows = collections.OrderedDict()
def add_tool(self, toolname):
self.tools.add(toolname)
def add_rowname(self, rowname):
self.rownames.add(rowname)
def create_rows(self):
def key_rowname(t):
tokens = t.rsplit('-', 1)
return tokens[0] + tokens[1].zfill(4)
self.tools = collections.OrderedDict(((e, i) for i, e in enumerate(sorted(self.tools))))
self.rownames = sorted(self.rownames, key=key_rowname)
for rowname in self.rownames:
tr = TableRow(len(self.tools), rowname)
self.rows[rowname] = tr
def set_value(self, rowname, toolname, iteration, value):
row = self.rows[rowname]
row.set(self.tools[toolname], iteration, value)
def write(self, fdr):
# header
writer = csv.writer(fdr)
writer.writerow(['Scenario', 'Iteration'] + self.tools.keys() + ['all?'])
for _, row in self.rows.iteritems():
writer.writerows(row.get_rows())
def split_name(filename):
"""Returns (tool, Query, Scenario, Size)"""
m = re.match(pattern, os.path.basename(filename))
return m.groups() if m else None
def main(directory):
table = Table()
# first get tool- and row-names
for filename in os.listdir(directory):
if not filename.startswith('matches'):
continue
tup = split_name(filename)
table.add_tool(tup[0])
table.add_rowname('{}-{}-{}'.format(*tup[1:]))
table.create_rows()
# then fill in the table
for filename in os.listdir(directory):
if not filename.startswith('matches'):
continue
with open(os.path.join(directory, filename)) as fdr:
reader = csv.reader(fdr)
reader.next() # skip header
for row in reader:
# Tool, Workload, Description, Model, Run, Query, Iteration, Matches
rowname = '{}-{}'.format(row[1], row[3][8:])
toolname = row[0]
iteration = int(row[6])
matches = row[7]
table.set_value(rowname, toolname, iteration, matches)
with open('summary-{}.csv'.format(os.path.basename(os.path.normpath(directory))), 'w') as fdr:
table.write(fdr)
if __name__ == '__main__':
main(sys.argv[1])
meld <(sort expected_tar_content | sed 's|/$||') <(find ModelValidationWithRAGs/ | sort)
meld <(expected_tar_content) <(find ModelValidationWithRAGs/)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment