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

Changed mkexp to allow removal of predefined namelist groups (remove keyword).

parent dccd451a
No related branches found
No related tags found
No related merge requests found
......@@ -94,13 +94,26 @@ def format_value(value):
def format_namelist(section):
'''Format config section as a namelist'''
# Create list of removed namelist groups
remove_list = []
if 'remove' in section:
if isinstance(section['remove'], basestring):
remove_list = [section['remove']]
else:
remove_list = section['remove']
del 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
lines = StringIO.StringIO()
for group, contents in section.iteritems():
group_name = re.sub(r' .*$', '', group.lower())
lines.write('&'+group_name+'\n')
for key, value in contents.iteritems():
lines.write(' '+key.lower()+' = '+format_value(value)+'\n')
lines.write('/\n')
group = group.lower()
if not any(map(lambda x: re.match(x, group), black_list)):
group_name = re.sub(r' .*$', '', group)
lines.write('&'+group_name+'\n')
for key, value in contents.iteritems():
lines.write(' '+key.lower()+' = '+format_value(value)+'\n')
lines.write('/\n')
return lines.getvalue()
#
......
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