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
« 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."""
4import sys
5import subprocess
6from pathlib import Path
7import implementations
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.")