benchbuild.utils.actions module

# Actions

Actions are enhanced callables that are used by Experiments to define the order of operations a project is put through when the experiment executes.

## Example

TODO `python `

class benchbuild.utils.actions.Any(obj=None, action_fn=None, status=<StepResult.UNSET: 0>, actions=NOTHING)[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Just run all actions, no questions asked.'
NAME = 'ANY'
class benchbuild.utils.actions.Clean(obj=None, action_fn=None, status=<StepResult.UNSET: 0>, check_empty=False)[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Cleans the build directory'
NAME = 'CLEAN'
static clean_mountpoints(root: str)[source]

Unmount any remaining mountpoints under :root.

Parameters:root – All UnionFS-mountpoints under this directory will be unmounted.
class benchbuild.utils.actions.CleanExtra(obj=None, action_fn=None, status=<StepResult.UNSET: 0>)[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Cleans the extra directories.'
NAME = 'CLEAN EXTRA'
class benchbuild.utils.actions.Compile(project)[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Compile the project'
NAME = 'COMPILE'
class benchbuild.utils.actions.Containerize(obj=None, action_fn=None, status=<StepResult.UNSET: 0>, actions=NOTHING)[source]

Bases: benchbuild.utils.actions.RequireAll

DESCRITPION = 'Redirect into container'
NAME = 'CONTAINERIZE'
requires_redirect()[source]
class benchbuild.utils.actions.Echo(obj=None, action_fn=None, status=<StepResult.UNSET: 0>, message='')[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Print a message.'
NAME = 'ECHO'
class benchbuild.utils.actions.Experiment(obj=None, action_fn=None, status=<StepResult.UNSET: 0>, actions=NOTHING)[source]

Bases: benchbuild.utils.actions.Any

DESCRIPTION = 'Run a experiment, wrapped in a db transaction'
NAME = 'EXPERIMENT'
begin_transaction()[source]
static end_transaction(experiment, session)[source]
class benchbuild.utils.actions.MakeBuildDir(obj=None, action_fn=None, status=<StepResult.UNSET: 0>)[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Create the build directory'
NAME = 'MKDIR'
class benchbuild.utils.actions.RequireAll(obj=None, action_fn=None, status=<StepResult.UNSET: 0>, actions=NOTHING)[source]

Bases: benchbuild.utils.actions.Step

class benchbuild.utils.actions.Run(project)[source]

Bases: benchbuild.utils.actions.Step

DESCRIPTION = 'Execute the run action'
NAME = 'RUN'
class benchbuild.utils.actions.Step(obj=None, action_fn=None, status=<StepResult.UNSET: 0>)[source]

Bases: object

Base class of a step.

This stores all common attributes for step classes.
metaclass ([type], optional): Defaults to StepClass. Takes
care of wrapping Steps correctly.
Raises:StopIteration – If we do not encapsulate more substeps.
DESCRIPTION = None
NAME = None
ON_STEP_BEGIN = []
ON_STEP_END = []
onerror()[source]
class benchbuild.utils.actions.StepClass[source]

Bases: abc.ABCMeta

Decorate steps with logging and result conversion.

class benchbuild.utils.actions.StepResult[source]

Bases: enum.IntEnum

Result type for action results.

CAN_CONTINUE = 2
ERROR = 3
OK = 1
UNSET = 0
benchbuild.utils.actions.log_before_after(name: str, desc: str)[source]

Log customized stirng before & after running func.

benchbuild.utils.actions.notify_step_begin_end(func)[source]

Print the beginning and the end of a func.

benchbuild.utils.actions.num_steps(steps)[source]
benchbuild.utils.actions.prepend_status(func)[source]

Prepends the output of func with the status.

benchbuild.utils.actions.print_steps(steps)[source]
benchbuild.utils.actions.step_has_failed(step_results, error_status=None)[source]
benchbuild.utils.actions.to_step_result(func)[source]

Convert a function return to a list of StepResults.

All Step subclasses automatically wrap the result of their __call__ method’s result with this wrapper. If the result is not a list of StepResult values, one will be generated.

result of [StepResult.OK], or convert the given result into a list.

Parameters:func – The function to wrap.