Skip to content
Snippets Groups Projects
Commit 2f3b6ad7 authored by Karl-Hermann Wieners's avatar Karl-Hermann Wieners
Browse files

Tools: disable interpolation in config by default

parent c1d5d525
No related branches found
No related tags found
No related merge requests found
...@@ -62,7 +62,7 @@ try: ...@@ -62,7 +62,7 @@ try:
config_data = list() config_data = list()
for i, config_file in enumerate(config_files): for i, config_file in enumerate(config_files):
config_data.append(ConfigObj(config_file, config_data.append(ConfigObj(config_file,
interpolation=False, file_error=True, write_empty_values=True)) file_error=True, write_empty_values=True))
except IOError as error: except IOError as error:
die(error.message) die(error.message)
......
...@@ -55,9 +55,9 @@ try: ...@@ -55,9 +55,9 @@ try:
config_file1 = args.config1 config_file1 = args.config1
config_file2 = args.config2 config_file2 = args.config2
config_data1 = ConfigObj(config_file1, config_data1 = ConfigObj(config_file1,
interpolation=False, file_error=True,write_empty_values=True) file_error=True,write_empty_values=True)
config_data2 = ConfigObj(config_file2, config_data2 = ConfigObj(config_file2,
interpolation=False, file_error=True) file_error=True)
except IOError as error: except IOError as error:
die(error.message) die(error.message)
......
...@@ -86,6 +86,7 @@ class ConfigObj(configobj.ConfigObj): ...@@ -86,6 +86,7 @@ class ConfigObj(configobj.ConfigObj):
default_args = { default_args = {
'encoding': _preferred_encoding, 'encoding': _preferred_encoding,
'default_encoding': _preferred_encoding, 'default_encoding': _preferred_encoding,
'interpolation': False,
} }
for kw in default_args: for kw in default_args:
if not kw in kwargs: if not kw in kwargs:
...@@ -425,8 +426,8 @@ class ExpConfig(ConfigObj): ...@@ -425,8 +426,8 @@ class ExpConfig(ConfigObj):
pre_config = None pre_config = None
setup_config_name = get_config_name('', ExpConfig.setup_config_name) setup_config_name = get_config_name('', ExpConfig.setup_config_name)
if os.path.exists(setup_config_name): if os.path.exists(setup_config_name):
pre_config = ConfigObj(setup_config_name, interpolation=False) pre_config = ConfigObj(setup_config_name)
user_config = ConfigObj(experiment_config_name, interpolation=False) user_config = ConfigObj(experiment_config_name)
if pre_config: if pre_config:
pre_config.merge(user_config) pre_config.merge(user_config)
else: else:
...@@ -469,7 +470,7 @@ class ExpConfig(ConfigObj): ...@@ -469,7 +470,7 @@ class ExpConfig(ConfigObj):
# Start from empty configuration # Start from empty configuration
pre_config = ConfigObj(interpolation=False) pre_config = ConfigObj()
config_versions = [] config_versions = []
# Get default experiment id from file name # Get default experiment id from file name
...@@ -492,12 +493,12 @@ class ExpConfig(ConfigObj): ...@@ -492,12 +493,12 @@ class ExpConfig(ConfigObj):
lib_config_name = get_config_name(ExpConfig.exp_lib_dir, lib_config_name = get_config_name(ExpConfig.exp_lib_dir,
ExpConfig.default_name+'.config') ExpConfig.default_name+'.config')
pre_config.merge(ConfigObj(lib_config_name, interpolation=False)) pre_config.merge(ConfigObj(lib_config_name))
split_shared_sections(pre_config) split_shared_sections(pre_config)
register_version(pre_config, config_versions) register_version(pre_config, config_versions)
if os.path.exists(setup_config_name): if os.path.exists(setup_config_name):
pre_config.merge(ConfigObj(setup_config_name, interpolation=False)) pre_config.merge(ConfigObj(setup_config_name))
split_shared_sections(pre_config) split_shared_sections(pre_config)
list_assign(pre_config) list_assign(pre_config)
register_version(pre_config, config_versions) register_version(pre_config, config_versions)
...@@ -505,7 +506,7 @@ class ExpConfig(ConfigObj): ...@@ -505,7 +506,7 @@ class ExpConfig(ConfigObj):
lib_config_name = get_config_name(ExpConfig.exp_lib_dir, lib_config_name = get_config_name(ExpConfig.exp_lib_dir,
experiment_type+'.config') experiment_type+'.config')
if os.path.exists(lib_config_name): if os.path.exists(lib_config_name):
pre_config.merge(ConfigObj(lib_config_name, interpolation=False)) pre_config.merge(ConfigObj(lib_config_name))
split_shared_sections(pre_config) split_shared_sections(pre_config)
list_assign(pre_config) list_assign(pre_config)
register_version(pre_config, config_versions) register_version(pre_config, config_versions)
...@@ -517,7 +518,7 @@ class ExpConfig(ConfigObj): ...@@ -517,7 +518,7 @@ class ExpConfig(ConfigObj):
lib_config_name = get_config_name(ExpConfig.opt_lib_dir, lib_config_name = get_config_name(ExpConfig.opt_lib_dir,
option+'.config') option+'.config')
if os.path.exists(lib_config_name): if os.path.exists(lib_config_name):
pre_config.merge(ConfigObj(lib_config_name, interpolation=False)) pre_config.merge(ConfigObj(lib_config_name))
split_shared_sections(pre_config) split_shared_sections(pre_config)
list_assign(pre_config) list_assign(pre_config)
register_version(pre_config, config_versions) register_version(pre_config, config_versions)
...@@ -531,7 +532,7 @@ class ExpConfig(ConfigObj): ...@@ -531,7 +532,7 @@ class ExpConfig(ConfigObj):
environment+'.config') environment+'.config')
if os.path.exists(lib_config_name): if os.path.exists(lib_config_name):
pre_config.merge(ConfigObj(lib_config_name, interpolation=False)) pre_config.merge(ConfigObj(lib_config_name))
list_assign(pre_config) list_assign(pre_config)
register_version(pre_config, config_versions) register_version(pre_config, config_versions)
...@@ -541,8 +542,7 @@ class ExpConfig(ConfigObj): ...@@ -541,8 +542,7 @@ class ExpConfig(ConfigObj):
# Re-read config to allow overriding default settings # Re-read config to allow overriding default settings
# TODO: probably nicer if default experiment is given as argument # TODO: probably nicer if default experiment is given as argument
experiment_config = ConfigObj(experiment_config_name, experiment_config = ConfigObj(experiment_config_name)
interpolation=False)
pre_config.merge(experiment_config) pre_config.merge(experiment_config)
split_shared_sections(pre_config) split_shared_sections(pre_config)
list_assign(pre_config) list_assign(pre_config)
...@@ -603,7 +603,6 @@ class ExpConfig(ConfigObj): ...@@ -603,7 +603,6 @@ class ExpConfig(ConfigObj):
pre_config = None pre_config = None
config_lines.seek(0) config_lines.seek(0)
ConfigObj.__init__(self, io.TextIOWrapper(config_lines), ConfigObj.__init__(self, io.TextIOWrapper(config_lines))
interpolation=False)
self.walk(uneval_key) self.walk(uneval_key)
...@@ -39,8 +39,8 @@ try: ...@@ -39,8 +39,8 @@ try:
except IOError as error: except IOError as error:
die("'{0}': {1}".format(error.filename, error.strerror)) die("'{0}': {1}".format(error.filename, error.strerror))
config_data = ConfigObj(update_data.get_config_file(), interpolation=False, config_data = ConfigObj(update_data.get_config_file(), write_empty_values=True,
write_empty_values=True, indent_type=args.indent_string) indent_type=args.indent_string)
for d in update_data.get_config_dicts(): for d in update_data.get_config_dicts():
config_data.merge(d) config_data.merge(d)
......
...@@ -401,7 +401,7 @@ template_env.tests['set'] = is_set ...@@ -401,7 +401,7 @@ template_env.tests['set'] = is_set
# Read and store configuration info from input and experiments' library # Read and store configuration info from input and experiments' library
# Store environment as default for control settings, then add config from files # Store environment as default for control settings, then add config from files
extra_dict = ConfigObj(interpolation=False) extra_dict = ConfigObj()
for assign_dict in expargparse.assigns_to_dicts(args): for assign_dict in expargparse.assigns_to_dicts(args):
extra_dict.merge(assign_dict) extra_dict.merge(assign_dict)
extra_dict['mkexp_input'] = 'Generated by {0} ({1}) {2}'.format( extra_dict['mkexp_input'] = 'Generated by {0} ({1}) {2}'.format(
...@@ -504,7 +504,7 @@ def extend(subjob, jobs_config, extended_jobs, job_dict=None): ...@@ -504,7 +504,7 @@ def extend(subjob, jobs_config, extended_jobs, job_dict=None):
extend(extended_job, jobs_config, extended_jobs, job_dict) extend(extended_job, jobs_config, extended_jobs, job_dict)
# Add global job settings # Add global job settings
pre_config = ConfigObj(interpolation=False) pre_config = ConfigObj()
if job_dict: if job_dict:
pre_config.merge(job_dict) pre_config.merge(job_dict)
...@@ -548,8 +548,7 @@ for subjob, subconfig in jobs_config.items(): ...@@ -548,8 +548,7 @@ for subjob, subconfig in jobs_config.items():
config_lines = io.BytesIO() config_lines = io.BytesIO()
config.write(config_lines) config.write(config_lines)
config_lines.seek(0) config_lines.seek(0)
job_config = ConfigObj(io.TextIOWrapper(config_lines), job_config = ConfigObj(io.TextIOWrapper(config_lines))
interpolation=False)
# Check namelist override # Check namelist override
if 'namelists' in subconfig: if 'namelists' in subconfig:
...@@ -595,7 +594,7 @@ for subjob, subconfig in jobs_config.items(): ...@@ -595,7 +594,7 @@ for subjob, subconfig in jobs_config.items():
if use_template: if use_template:
if use_template.lower() == 'true': if use_template.lower() == 'true':
use_template = namelist use_template = namelist
namelist_config = ConfigObj(job_config, interpolation=False) namelist_config = ConfigObj(job_config)
namelist_config['_'] = job_config namelist_config['_'] = job_config
namelist_config.merge(expconfig.odict(groups)) namelist_config.merge(expconfig.odict(groups))
expconfig.merge_comments(namelist_config, groups) expconfig.merge_comments(namelist_config, groups)
......
...@@ -45,13 +45,13 @@ try: ...@@ -45,13 +45,13 @@ try:
config_file = args.config config_file = args.config
if config_file == '-': if config_file == '-':
config_file = sys.stdin config_file = sys.stdin
config_data = ConfigObj(config_file, interpolation=False, file_error=True) config_data = ConfigObj(config_file, file_error=True)
except IOError as error: except IOError as error:
die(error.message) die(error.message)
# Walk config to the appropriate section and create output structure # Walk config to the appropriate section and create output structure
selected_data = ConfigObj(interpolation=False, write_empty_values=True, selected_data = ConfigObj(write_empty_values=True,
indent_type=' ') indent_type=' ')
if args.section: if args.section:
config = config_data config = config_data
......
...@@ -51,14 +51,13 @@ try: ...@@ -51,14 +51,13 @@ try:
config_file = args.config config_file = args.config
if config_file == '-': if config_file == '-':
config_file = sys.stdin config_file = sys.stdin
config_data = ConfigObj(config_file, interpolation=False, file_error=True, config_data = ConfigObj(config_file, file_error=True,
write_empty_values=True) write_empty_values=True)
# Add settings from other files # Add settings from other files
for add_file in args.add: for add_file in args.add:
if add_file == '-': if add_file == '-':
add_file = sys.stdin add_file = sys.stdin
config_data.merge(ConfigObj(add_file, interpolation=False, config_data.merge(ConfigObj(add_file, file_error=True))
file_error=True))
except IOError as error: except IOError as error:
die(error.message) die(error.message)
......
...@@ -8,6 +8,8 @@ import subprocess ...@@ -8,6 +8,8 @@ import subprocess
import sys import sys
import unittest import unittest
import expconfig
from os.path import join from os.path import join
...@@ -1708,6 +1710,14 @@ class UnicodeTestCase(MkexpSimpleTestCase): ...@@ -1708,6 +1710,14 @@ class UnicodeTestCase(MkexpSimpleTestCase):
VAR = ÄÖÜäöüß😉 VAR = ÄÖÜäöüß😉
""") """)
class ExpConfigTestCase(unittest.TestCase):
def test_default_interpolation_false(self):
config = expconfig.ConfigObj({
'var1': 'value1',
'var2': '$var1',
})
self.assertEqual(config['var2'], '$var1')
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
...@@ -97,9 +97,8 @@ args = command_line.parse_args() ...@@ -97,9 +97,8 @@ args = command_line.parse_args()
# File handling # File handling
try: try:
base_config = ConfigObj(args.base_config, interpolation=False, base_config = ConfigObj(args.base_config, file_error=True)
file_error=True) config = ConfigObj(args.config, file_error=True)
config = ConfigObj(args.config, interpolation=False, file_error=True)
except IOError as error: except IOError as error:
die(error.args[0]) die(error.args[0])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment