27 lines
		
	
	
	
		
			685 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			685 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| def render_config(config):
 | |
|     return '\n'.join(render_lines(config))
 | |
| 
 | |
| def render_lines(config, indent=0):
 | |
|     lines = []
 | |
|     blocks = []
 | |
|     
 | |
|     for key, value in sorted(config.items()):
 | |
|         if isinstance(value, dict):
 | |
|             blocks.extend([
 | |
|                 '',
 | |
|                 key+' {',
 | |
|                 *render_lines(value, indent=4),
 | |
|                 '}',
 | |
|             ])
 | |
|         elif isinstance(value, list):
 | |
|             lines.extend([
 | |
|                 f'{key} {_value};' for _value in value
 | |
|             ])
 | |
|         else:
 | |
|             lines.append(
 | |
|                 f'{key} {value};'
 | |
|             )
 | |
|     
 | |
|     return [
 | |
|         f"{' '*indent}{line}" for line in lines+blocks
 | |
|     ]
 | 
