#!/usr/bin/python import ConfigParser import os import yaml import sys records = {} for filename in sys.argv[1:]: cp = ConfigParser.ConfigParser() cp.read([filename]) for section in cp.sections(): if section == 'format': continue obj = {} for option in cp.options(section): assert option not in obj v = cp.get(section, option, raw=True) if ',' in v: vs = v.split(',') obj[option] = dict((str(i), x) for i, x in enumerate(vs)) else: obj[option] = v assert type(obj['name']) is str uid = ''.join(obj['name'].split()).lower() if uid in records: r = records[uid] for key in obj: if key in r: v = r[key] if type(v) is dict: v[str(len(v) + 1)] = obj[key] else: r[key] = { '0': v, '1': obj[key] } else: r[key] = obj[key] else: records[uid] = obj for uid, r in records.iteritems(): with open(os.path.join('db', uid + '.yaml'), 'w') as f: yaml.safe_dump(r, stream=f, default_flow_style=False)