| 
														
															@@ -81,7 +81,8 @@ class Include_constructor(ruamel.yaml.SafeConstructor): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 def load_configuration(filename): 
														 | 
														
														 | 
														
															 def load_configuration(filename): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     ''' 
														 | 
														
														 | 
														
															     ''' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     Load the given configuration file and return its contents as a data structure of nested dicts 
														 | 
														
														 | 
														
															     Load the given configuration file and return its contents as a data structure of nested dicts 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    and lists. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    and lists. Also, replace any "{constant}" strings with the value of the "constant" key in the 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "constants" section of the configuration file. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     Raise ruamel.yaml.error.YAMLError if something goes wrong parsing the YAML, or RecursionError 
														 | 
														
														 | 
														
															     Raise ruamel.yaml.error.YAMLError if something goes wrong parsing the YAML, or RecursionError 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if there are too many recursive includes. 
														 | 
														
														 | 
														
															     if there are too many recursive includes. 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -98,7 +99,15 @@ def load_configuration(filename): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     yaml = ruamel.yaml.YAML(typ='safe') 
														 | 
														
														 | 
														
															     yaml = ruamel.yaml.YAML(typ='safe') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     yaml.Constructor = Include_constructor_with_include_directory 
														 | 
														
														 | 
														
															     yaml.Constructor = Include_constructor_with_include_directory 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    return yaml.load(open(filename)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    with open(filename) as f: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        file_contents = f.read() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        config = yaml.load(file_contents) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if config and 'constants' in config: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            for key, value in config['constants'].items(): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                file_contents = file_contents.replace(f'{{{key}}}', str(value)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            config = yaml.load(file_contents) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            del config['constants'] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return config 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 DELETED_NODE = object() 
														 | 
														
														 | 
														
															 DELETED_NODE = object() 
														 |