for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
#!/usr/bin/env python
try:
from ConfigParser import ConfigParser # python2
except ImportError:
from configparser import ConfigParser # python3
import StringIO
import io
def text_stream():
StringIO.StringIO()
except NameError:
return io.StringIO()
def cfg2str(config):
output = text_stream()
config.write(output)
value = output.getvalue()
output.close()
return value
def dict2list(value):
for k, v in value.items():
yield "%s = %s" % (k, v)
def item2str(value):
if isinstance(value, list):
return "\n%s" % "\n".join(value).replace("\n", "\t\n")
if isinstance(value, dict):
return item2str(list(dict2list(value)))
return str(value)
def dict2cfg(config_dict):
config = ConfigParser()
for section, value in config_dict.items():
config[section] = dict()
for k, v in config_dict[section].items():
if v: # skip empty
config[section][k] = item2str(v)
return cfg2str(config)