Пример #1
0
def main():
    parser = ArgumentParser()
    parser.add_argument('-i',
                        dest='src',
                        default=None,
                        action='store',
                        type=str,
                        required=True,
                        help='input file')
    parser.add_argument('-o',
                        dest='dst',
                        default=None,
                        action='store',
                        type=str,
                        required=True,
                        help='output file')
    ns = parser.parse_args()

    if exists(ns.dst):
        return print('{} already exists, do nothing.'.format(ns.dst))

    with open(ns.src, mode='rt') as f:
        configdata = ConfigObj(f, configspec=defaults_to_configspec())

    validator = Validator()
    configdata.validate(validator, preserve_errors=True)
    for k, v in configdata['keybindings'].items():
        if v == 'None':
            configdata['keybindings'][k] = ''

    with open(ns.dst, mode='wt') as f:
        json.dump(configdata,
                  f,
                  indent=4,
                  separators=(',', ':'),
                  sort_keys=True)
    return print('convert {} to {}'.format(ns.src, ns.dst))