aboutsummaryrefslogtreecommitdiff
path: root/cbc/meta.py
diff options
context:
space:
mode:
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