Newer
Older
# -*- coding: utf-8 -*-
def get_data(filename):
'''function to read the data form the input csv file to use in the analysis'''
with open(filename, 'rb') as f:
reader = csv.reader(f, delimiter=',')
# returns all the data from the csv file in list form
# f.close() # May need to close the file when done
return list(reader) # only return the reader when you have finished.
your_list = []
your_list += get_data('./scripts/anselm.csv')
your_list += get_data('./scripts/salomon.csv')
your_list += get_data('./scripts/uv2000.csv')
your_list += get_data('./scripts/phi.csv')
your_list += get_data('./scripts/dgx.csv')
counts = dict()
for i in your_list:
# print i[0]
# print int(i[1])
counts[i[0]] = counts.get(i[0], 0) + int(i[1])
l = ['A', 'S', 'U', 'P', 'D', 'B']
c = []
mask = ''.join(reversed(l))
from itertools import product
for bits in product([0, 1], repeat=len(l)):
s = "".join(str(bit) for bit in bits)
ns = ""
for i in range(len(s)):
if s[i] == "1":
ns += mask[i]
else:
ns += "-"
c.append(ns)
print ' | | | | | |'
print ' | | | | | +----> Anselm'
print ' | | | | +------> Salomon'
print ' | | | +--------> UV2000'
print ' | | +----------> Phi'
print ' | +------------> DGX-2'
print '| Module </br><form><input id="searchInput" placeholder="🔍 Filter" style="width: 8rem; border-radius: 0.2rem; color: black; padding-left: .2rem;"></form> | Versions | Clusters |'
software = dict()
versions = ''
clusters = ''
prev = ''
for m, i in sorted(counts.items()):
# print m
split = m.split('/')
if len(split) > 1:
a = split[0]
b = split[1]
if split[0] <> prev:
software[a] = {}
software[a][b] = '`' + c[i] + '`'
prev = a
for m in sorted(software.items(), key=lambda i: i[0].lower()):
software = m[0]
versions = []
clusters = []
for key in sorted(m[1], key=LooseVersion):
versions.append(key)
clusters.append(m[1][key])
print "| %s | %s | %s |" % (software, '</br>'.join(versions), '</br>'.join(clusters))
print
print '---8<--- "modules_matrix_search.md"'