From 348e41e7ee22bcb23d549d7d816f4a946df54eac Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Mon, 22 Jun 2015 00:34:41 -0400 Subject: Can convert ini to yaml --- cbc/meta.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ cbc/parser.py | 48 ------------------------------------------------ 2 files changed, 48 insertions(+), 48 deletions(-) create mode 100644 cbc/meta.py delete mode 100644 cbc/parser.py diff --git a/cbc/meta.py b/cbc/meta.py new file mode 100644 index 0000000..f38532f --- /dev/null +++ b/cbc/meta.py @@ -0,0 +1,48 @@ +'''I refuse to write the same thing over and over again in meta.yaml. +And yeah, conda supports Jinja2, but ugh... No. +''' + +import os +import conda_build +import conda_build.metadata + +import configparser +from configparser import ConfigParser, ExtendedInterpolation +from pprint import pprint +import yaml + +def convert_conda_fields(fields): + temp = {} + for fkey, fval in fields.items(): + temp[fkey] = { x: '' for x in fval} + #fields[field] = dict(value) + return temp + + +class Specfile(object): + def __init__(self, filename): + if not os.path.exists(filename): + print('"{0}" does not exist.'.format(filename)); + return + + self.filename = filename + fields = convert_conda_fields(conda_build.metadata.FIELDS) + + config = ConfigParser(interpolation=ExtendedInterpolation(), allow_no_value=True) + config.read_dict(fields) + config.read(self.filename) + + with open('../../test.ini.out', 'w+') as testfile: + config.write(testfile) + + y = yaml.load(fields) + md = conda_build.metadata.MetaData() + + #for section in config.sections(): + # for sub in config[section]: + # print('{0}:{1}:{2}'.format(section, sub, config[section][sub])) + +if __name__ == '__main__': + spec = Specfile('../../test.spec') + #pprint() + \ No newline at end of file diff --git a/cbc/parser.py b/cbc/parser.py deleted file mode 100644 index f38532f..0000000 --- a/cbc/parser.py +++ /dev/null @@ -1,48 +0,0 @@ -'''I refuse to write the same thing over and over again in meta.yaml. -And yeah, conda supports Jinja2, but ugh... No. -''' - -import os -import conda_build -import conda_build.metadata - -import configparser -from configparser import ConfigParser, ExtendedInterpolation -from pprint import pprint -import yaml - -def convert_conda_fields(fields): - temp = {} - for fkey, fval in fields.items(): - temp[fkey] = { x: '' for x in fval} - #fields[field] = dict(value) - return temp - - -class Specfile(object): - def __init__(self, filename): - if not os.path.exists(filename): - print('"{0}" does not exist.'.format(filename)); - return - - self.filename = filename - fields = convert_conda_fields(conda_build.metadata.FIELDS) - - config = ConfigParser(interpolation=ExtendedInterpolation(), allow_no_value=True) - config.read_dict(fields) - config.read(self.filename) - - with open('../../test.ini.out', 'w+') as testfile: - config.write(testfile) - - y = yaml.load(fields) - md = conda_build.metadata.MetaData() - - #for section in config.sections(): - # for sub in config[section]: - # print('{0}:{1}:{2}'.format(section, sub, config[section][sub])) - -if __name__ == '__main__': - spec = Specfile('../../test.spec') - #pprint() - \ No newline at end of file -- cgit