From 17ce2f1f0ffd199c7f7d73bfaefd7846b792fecd Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 6 Mar 2017 14:10:17 +0100 Subject: Initial import --- ilpscheduling/convert.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 ilpscheduling/convert.py (limited to 'ilpscheduling/convert.py') diff --git a/ilpscheduling/convert.py b/ilpscheduling/convert.py new file mode 100644 index 0000000..f95dabf --- /dev/null +++ b/ilpscheduling/convert.py @@ -0,0 +1,32 @@ +# vim: set fileencoding=utf-8 : + +import sys, yaml +from lxml import etree +from lxml import objectify + +def mainImportEkvv (args): + """ + Parse ekvv participant management lists + XXX: priorities are not properly imported yet and need to be “normalized” + + See http://ekvv.uni-bielefeld.de/wiki/en/Export_von_Anmeldelisten_für_Platzvergabeverfahren_im_XML_Format + """ + + worker = {} + limit = {} + + for f in args.files: + with open (f, 'r') as fd: + tree = objectify.parse (fd) + root = tree.getroot () + slotid = root.get ('id') + workerlist = root.teilnehmerliste + limit[slotid] = int (workerlist.get ('teilnehmerbegrenzung')) + for t in workerlist.teilnehmer: + wid = t.get ('matrikelnummer') + worker.setdefault (wid, {}) + worker[wid][slotid] = int (t.get ('prioritaet')) + + yaml.dump ({'worker': worker, 'slots': limit, 'env': {'minSlots': len (limit), 'maxSlots': len (limit)}}, sys.stdout) + + -- cgit v1.2.3