Closed nsheff closed 4 years ago
Related to other issues dealing with the pipeline_interface structure:
I wrote a function that takes this output and populates the actual paths... maybe this should just belong on the project object as well?
populated_outputs = {}
# populate path variables
for pipeline_name, pipeline_outputs in project_outputs:
populated_outputs[pipeline_name] = {}
for output_name, output_info in pipeline_outputs:
populated_outputs[pipeline_name][output_name] = {}
for sample in output_info.samples:
populated_output = "".join("{base_url}data/{project.metadata.results_subdir}/{sample.name}",
output_info.path).format(sample=globs.p.get_sample(sample),
base_url=request.url_root,
project=globs.p)
Caravel would like a list of outputs produced by a pipeline.
This information is stored in the pipeline_interface, which
looper.Project
contains. The pipeline_interface could encode outputs using syntax like this:the
get_outputs
function should return a nested Dict:This best preserves the structure of outputs. they need not have unique names across pipelines.
The Project object will need to look at each
PipelineInterface
it holds, see if it provides any outputs, and then identify any samples that would run that pipeline.