diff --git a/mkexp b/mkexp index 457f4d5add10d53cf7df53ce00fea1f99783d025..7580759f21cb846c43655892b96a243fdf5bc0e4 100755 --- a/mkexp +++ b/mkexp @@ -137,17 +137,16 @@ def format_value(value, indent): def keyword_warning(key): feedback.warning("keyword '"+key+"' is deprecated, use '."+key+"' instead") -def cut_remove_list(section, key): +def get_remove_list(section, key): remove_list = [] if key in section: # Deprecation warning for non .keys if key[0] != '.': keyword_warning(key) if isinstance(section[key], basestring): - remove_list = [section[key]] + remove_list = [key, section[key]] else: - remove_list = section[key] - del section[key] + remove_list = [key] + section[key] return remove_list def format_namelist(section, group=None): @@ -161,8 +160,8 @@ def format_namelist(section, group=None): base_indent = 4 # Create list of removed namelist groups. # Support old keyword for backward compatibility - remove_list = cut_remove_list(section, '.remove') - remove_list += cut_remove_list(section, 'remove') + remove_list = get_remove_list(section, '.remove') + remove_list += get_remove_list(section, 'remove') black_list = map(lambda x: x.replace(r'\*', '.*').replace(r'\?', '.')+'$', map(lambda x: re.escape(x.lower()), remove_list)) # Format namelist groups that were not removed @@ -173,7 +172,7 @@ def format_namelist(section, group=None): group_id = group.lower() if not any(map(lambda x: re.match(x, group_id), black_list)): # Create list of removed keys - remove_keys = cut_remove_list(contents, '.remove') + remove_keys = get_remove_list(contents, '.remove') group_names = group_id.split(' ', 1) if len(group_names) == 1: lines.write('&'+group_names[0]+'\n') @@ -419,8 +418,8 @@ dump_file.close() # Cut queue specific settings job_dict = {} -remove_list = cut_remove_list(config['jobs'], '.remove') -remove_list += cut_remove_list(config['jobs'], 'remove') +remove_list = get_remove_list(config['jobs'], '.remove') +remove_list += get_remove_list(config['jobs'], 'remove') for key, value in config['jobs'].iteritems(): if not isinstance(value, dict): job_dict[key] = value diff --git a/test.py b/test.py index d353ba1229b685da904f419b7e27e795c6a2c473..feb855d2ee209a293beddec7a5f394973c16c110 100644 --- a/test.py +++ b/test.py @@ -516,10 +516,13 @@ class NamelistTestCase(MkexpSimpleTestCase): """, """ [namelists] [[namelist]] + .remove = group3 [[[group1]]] value = 41 [[[group2]]] value = 42 + [[[group3]]] + value = 43 """) class JinjaTemplateTestCase(MkexpSimpleTestCase):