diff options
Diffstat (limited to 'cbc/parser.py')
-rw-r--r-- | cbc/parser.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cbc/parser.py b/cbc/parser.py new file mode 100644 index 0000000..f38532f --- /dev/null +++ b/cbc/parser.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 |