Coverage for src/shephex/cli/execute.py: 100%
18 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-06-20 14:13 +0200
« prev ^ index » next coverage.py v7.6.1, created at 2025-06-20 14:13 +0200
1from pathlib import Path
3import rich_click as click
5from shephex import Experiment
6from shephex.executor import LocalExecutor
7from shephex.experiment.status import Pending, Submitted
10@click.command(name='execute')
11@click.argument(
12 'directory', type=click.Path(exists=True, file_okay=False, dir_okay=True)
13)
14@click.option(
15 '-e',
16 '--execution-directory',
17 type=click.Path(exists=True, file_okay=False, dir_okay=True),
18 default=None,
19)
20@click.option('-v', '--verbose', is_flag=True, help='Enable verbose output.', default=False)
21def execute(directory: click.Path, execution_directory: click.Path, verbose: bool) -> None:
22 """
23 Execute an experiment.
24 """
25 directory = Path(directory)
27 if verbose:
28 print(f'Loading experiment from {directory}')
30 experiment = Experiment.load(directory)
31 executor = LocalExecutor()
33 if execution_directory is not None:
34 execution_directory = Path(execution_directory)
36 executor.execute(experiment, execution_directory=execution_directory,
37 valid_statuses=[Pending(), Submitted()])