aboutsummaryrefslogtreecommitdiff
path: root/cbc/meta.py
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-06-22 00:34:41 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-06-22 00:34:41 -0400
commit348e41e7ee22bcb23d549d7d816f4a946df54eac (patch)
tree735c7fbb68609c986f1dcb16699bffdbf7461e42 /cbc/meta.py
parentcf88b55c7d978943af005c327dd3ee8cd6d79a95 (diff)
downloadcbc-348e41e7ee22bcb23d549d7d816f4a946df54eac.tar.gz
Can convert ini to yaml
Diffstat (limited to 'cbc/meta.py')
-rw-r--r--cbc/meta.py48
1 files changed, 48 insertions, 0 deletions
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