Coverage for sparkle/configurator/configurator_cli.py: 0%

17 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-09-29 10:17 +0000

1#!/usr/bin/env python3 

2"""Configurator CLI wrapper class to standardise I/O of Configurators.""" 

3 

4import sys 

5import subprocess 

6from pathlib import Path 

7import implementations 

8 

9if __name__ == "__main__": 

10 args = sys.argv 

11 configurator_name = args[1] 

12 output_source = Path(args[2]) 

13 output_target = Path(args[3]) 

14 scenario = Path(args[4]) 

15 configuration_id = args[5] 

16 configurator_call = args[6:] 

17 # 1. Resolve for which Configurator we are standardising 

18 configurator = implementations.resolve_configurator(configurator_name) 

19 scenario = configurator.scenario_class().from_file(scenario) 

20 # 2. Execute the call, output is automatically piped to the caller's set output 

21 subprocess.run(configurator_call) 

22 # 3. Have the configurator implementation organise the output, standardised 

23 configurator.organise_output( 

24 output_source=output_source, 

25 output_target=output_target, 

26 scenario=scenario, 

27 configuration_id=configuration_id, 

28 ) 

29 print(f"Organising done! See {output_target} for results.")