Newer
Older
# -*- coding: utf-8 -*-
""" modules_matrix """
import argparse
import csv
import itertools
import json
import os.path
def arg_parse():
"""
"""
parser = argparse.ArgumentParser(
description="Module_matrix"
)
parser.add_argument('--json',
action='store_true',
help="get json")
return parser.parse_args()
def get_data(filename):
"""Function to read the data from the input CSV file to use in the analysis"""
reader = [] # Just in case the file open fails
with open(filename, 'r') as fdata:
reader = csv.reader(fdata, delimiter=',')
return list(reader) # Only return the reader when you have finished.
datalist += get_data(path)
return datalist
def get_counts(datalist):
for i in datalist:
counts[i[0]] = counts.get(i[0], 0) + int(i[1])
return counts
def get_matrix():
arr = []
mask = ''.join(reversed(chars))
for bits in itertools.product([0, 1], repeat=len(chars)):
sbit = "".join(str(bit) for bit in bits)
nst = ""
for i, _ in enumerate(sbit):
if sbit[i] == "1":
nst += mask[i]
else:
nst += "-"
arr.append(nst)
return arr
def get_software(datalist):
prev = ''
for mat, i in sorted(counts.items()):
split = mat.split('/')
if len(split) > 1:
if split[0] != prev:
software[split[0]] = {}
software[split[0]][split[1]] = '`' + matrix[i] + '`'
prev = split[0]
return software
def packages_json(software):
packages = {}
for module in sorted(software.items(), key=lambda i: i[0].lower()):
data = {'total': len(packages), 'projects': packages}
return data
def print_software(software):
for module in sorted(software.items(), key=lambda i: i[0].lower()):
print(f"| {software_name} | {'<br>'.join(versions)} | {'<br>'.join(clusters)} |")
print()
print('---8<--- "modules_matrix_search.md"')
def print_hint():
print(' D B K')
print(' | | |')
print(' | | +----> Karolina')
print(' | +------> Barbora')
print(' +--------> DGX')
print("| Module <br><form><input id=\"searchInput\" placeholder=\"🔍 Filter\""
" style=\"width: 8rem; border-radius: 0.2rem; color: black;"
" padding-left: .2rem;\"></form> | Versions | Clusters |")
print('**Modules Changelog**<br>')
print('You can see the modules changelog for each supercomputer here:<br>')
print('[DGX modules changelog][1]<br>')
print('[Barbora modules changelog][2]<br>')
print('[Karolina modules changelog][3]<br>')
def print_links():
print('[1]: https://code.it4i.cz/sccs/it4i-modules/-/blob/master/dgx-changelog.md')
print('[2]: https://code.it4i.cz/sccs/it4i-modules/-/blob/master/barbora-changelog.md')
print('[3]: https://code.it4i.cz/sccs/it4i-modules/-/blob/master/karolina-changelog.md')
arg = arg_parse()
datalist = get_datalist()
software = get_software(datalist)
if arg.json:
print(json.dumps(packages_json(software)))
else: