Source code for queenbee.job.result

"""Queenbee Results

The results are a combination of step inputs and outputs for a list of
runs.
"""

from typing import List, Union
from ..io.inputs.step import StepStringInput, StepInputs
from ..io.outputs.step import StepOutputs
from .run import RunStatus


[docs]class Results(List[Union[StepInputs, StepOutputs]]):
[docs] @classmethod def from_runs(cls, runs: List[RunStatus]) -> 'Results': res = [] for run in runs: row = [ StepStringInput( name='job-id', description='The ID of the job that generated this run', value=run.job_id, ), StepStringInput( name='run-id', description='The ID of the run this result row should be associated with', value=run.id, ), StepStringInput( name='run-status', description='The stauts of the run this result row should be associated with', value=run.status, ), ] row.extend(run.inputs) row.extend(run.outputs) res.append(row) return res