Commit 52676bd9 authored by David Hrbáč's avatar David Hrbáč

Modules matrix JSON export

parent 5c07230e
......@@ -67,6 +67,7 @@ mkdocs:
- bash scripts/get_modules.sh
# regenerate modules matrix
- python scripts/modules-matrix.py > docs.it4i/modules-matrix.md
- python scripts/modules-json.py > docs.it4i/modules-matrix.json
# build pages
- mkdocs build
# compress search_index.json
......
This diff is collapsed.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import csv
import collections
import json
from distutils.version import LooseVersion
def get_data(filename):
'''function to read the data form the input csv file to use in the analysis'''
reader = [] # Just in case the file open fails
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/modules-anselm.csv')
your_list += get_data('./scripts/modules-salomon.csv')
your_list += get_data('./scripts/modules-salomon-uv.csv')
#print your_list
#a=[["python/2.8.1",1],["python/2.9.1",2],["python/2.8.1",4],["python/3.0.1",4]]
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])
#print sorted(counts.items())
c=[
"---",
"--A",
"-S-",
"-SA",
"U--",
"U-A",
"US-",
"USA",
]
software = dict()
versions = ''
clusters = ''
prev = ''
for m,i in sorted(counts.items()):
#print m
split = m.split('/')
#print split
if len(split) > 1:
a = split[0]
b = split[1]
if split[0] <> prev:
software[a] = {}
software[a][b] = '`' + c[i] + '`'
prev = a
packages = {}
for m in sorted(software.items(), key=lambda i: i[0].lower()):
packages[m[0]]=sorted(m[1], key=LooseVersion)[len(m[1])-1]
data = {'total': len(packages), 'projects': packages }
print json.dumps(data)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment