@@ -219,7 +219,39 @@ <h1>Source code for clustrix.config</h1><div class="highlight"><pre>
219
219
< span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> module_loads</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
220
220
< span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> module_loads</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
221
221
< span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> pre_execution_commands</ span > < span class ="ow "> is</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
222
- < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> pre_execution_commands</ span > < span class ="o "> =</ span > < span class ="p "> []</ span > </ div >
222
+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> pre_execution_commands</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
223
+
224
+ < div class ="viewcode-block " id ="ClusterConfig.save_to_file ">
225
+ < a class ="viewcode-back " href ="../../api/config.html#clustrix.config.ClusterConfig.save_to_file "> [docs]</ a >
226
+ < span class ="k "> def</ span > < span class ="nf "> save_to_file</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> config_path</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="kc "> None</ span > < span class ="p "> :</ span >
227
+ < span class ="w "> </ span > < span class ="sd "> """Save this configuration instance to a file."""</ span >
228
+ < span class ="n "> config_path</ span > < span class ="o "> =</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="n "> config_path</ span > < span class ="p "> )</ span >
229
+ < span class ="n "> config_data</ span > < span class ="o "> =</ span > < span class ="n "> asdict</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> )</ span >
230
+
231
+ < span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> config_path</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> f</ span > < span class ="p "> :</ span >
232
+ < span class ="k "> if</ span > < span class ="n "> config_path</ span > < span class ="o "> .</ span > < span class ="n "> suffix</ span > < span class ="o "> .</ span > < span class ="n "> lower</ span > < span class ="p "> ()</ span > < span class ="ow "> in</ span > < span class ="p "> [</ span > < span class ="s2 "> ".yml"</ span > < span class ="p "> ,</ span > < span class ="s2 "> ".yaml"</ span > < span class ="p "> ]:</ span >
233
+ < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> dump</ span > < span class ="p "> (</ span > < span class ="n "> config_data</ span > < span class ="p "> ,</ span > < span class ="n "> f</ span > < span class ="p "> ,</ span > < span class ="n "> default_flow_style</ span > < span class ="o "> =</ span > < span class ="kc "> False</ span > < span class ="p "> )</ span >
234
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
235
+ < span class ="n "> json</ span > < span class ="o "> .</ span > < span class ="n "> dump</ span > < span class ="p "> (</ span > < span class ="n "> config_data</ span > < span class ="p "> ,</ span > < span class ="n "> f</ span > < span class ="p "> ,</ span > < span class ="n "> indent</ span > < span class ="o "> =</ span > < span class ="mi "> 2</ span > < span class ="p "> )</ span > </ div >
236
+
237
+
238
+ < div class ="viewcode-block " id ="ClusterConfig.load_from_file ">
239
+ < a class ="viewcode-back " href ="../../api/config.html#clustrix.config.ClusterConfig.load_from_file "> [docs]</ a >
240
+ < span class ="nd "> @classmethod</ span >
241
+ < span class ="k "> def</ span > < span class ="nf "> load_from_file</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> ,</ span > < span class ="n "> config_path</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="s2 "> "ClusterConfig"</ span > < span class ="p "> :</ span >
242
+ < span class ="w "> </ span > < span class ="sd "> """Load configuration from a file and return a new instance."""</ span >
243
+ < span class ="n "> config_path</ span > < span class ="o "> =</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="n "> config_path</ span > < span class ="p "> )</ span >
244
+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="n "> config_path</ span > < span class ="o "> .</ span > < span class ="n "> exists</ span > < span class ="p "> ():</ span >
245
+ < span class ="k "> raise</ span > < span class ="ne "> FileNotFoundError</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Configuration file not found: </ span > < span class ="si "> {</ span > < span class ="n "> config_path</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
246
+
247
+ < span class ="k "> with</ span > < span class ="nb "> open</ span > < span class ="p "> (</ span > < span class ="n "> config_path</ span > < span class ="p "> ,</ span > < span class ="s2 "> "r"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> f</ span > < span class ="p "> :</ span >
248
+ < span class ="k "> if</ span > < span class ="n "> config_path</ span > < span class ="o "> .</ span > < span class ="n "> suffix</ span > < span class ="o "> .</ span > < span class ="n "> lower</ span > < span class ="p "> ()</ span > < span class ="ow "> in</ span > < span class ="p "> [</ span > < span class ="s2 "> ".yml"</ span > < span class ="p "> ,</ span > < span class ="s2 "> ".yaml"</ span > < span class ="p "> ]:</ span >
249
+ < span class ="n "> config_data</ span > < span class ="o "> =</ span > < span class ="n "> yaml</ span > < span class ="o "> .</ span > < span class ="n "> safe_load</ span > < span class ="p "> (</ span > < span class ="n "> f</ span > < span class ="p "> )</ span >
250
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
251
+ < span class ="n "> config_data</ span > < span class ="o "> =</ span > < span class ="n "> json</ span > < span class ="o "> .</ span > < span class ="n "> load</ span > < span class ="p "> (</ span > < span class ="n "> f</ span > < span class ="p "> )</ span >
252
+
253
+ < span class ="k "> return</ span > < span class ="bp "> cls</ span > < span class ="p "> (</ span > < span class ="o "> **</ span > < span class ="n "> config_data</ span > < span class ="p "> )</ span > </ div >
254
+ </ div >
223
255
224
256
225
257
@@ -351,7 +383,7 @@ <h1>Source code for clustrix.config</h1><div class="highlight"><pre>
351
383
© Copyright 2025, Contextual Dynamics Laboratory
352
384
</ div >
353
385
< div class ="text-center text-white-50 font-italic mt-3 ">
354
- < small > Last updated: Jun 25 , 2025</ small >
386
+ < small > Last updated: Jun 26 , 2025</ small >
355
387
< small >
356
388
Created using
357
389
< a class ="text-white " href ="https://github.com/wagtail/sphinx_wagtail_theme " rel ="nofollow " target ="_blank ">
0 commit comments