-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Labels
enhancementNew feature or requestNew feature or request
Description
In the description of Fork and ForkBranch here, Fork "shows a set of mutually-exclusive alternatives". How are the mutually exclusive parameters in each ForkBranch written into the workflow function? Perhaps I confusing that fact that the interface elements are mutually exclusive, but the parameters are not?
E.g. I have one ForkBranch has a single parameter (single end FASTQ), and another ForkBranch that has two parameters (one for each end of paired end FASTQs). So the user must specify either the parameters in the first ForkBranch or the second, but not both.
So which of the following are the workflow function signatures?
- All are optional. But then how do we enforce from the interface that
unpaired_fqisNonewhen the otherForkBranchis used
@workflow(metadata)
def myworkflow(
fastq_fork: str,
unpaired_fq: Optional[LatchFile] = None,
paired_r1_fq: Optional[LatchFile] = None,
paired_r2_fq: Optional[LatchFile] = None,- This is from the rna-seq workflow (the first one is not optional, the rest are: link. What is the value for
unpaired_fqwhen paired FASTQs are given?
@workflow(metadata)
def myworkflow(
fastq_fork: str,
unpaired_fq: LatchFile,
paired_r1_fq: Optional[LatchFile] = None,
paired_r2_fq: Optional[LatchFile] = None,- None of the parameters are optional, but this makes no sense since some really are.
@workflow(metadata)
def myworkflow(
fastq_fork: str,
unpaired_fq: LatchFile,
paired_r1_fq: LatchFile,
paired_r2_fq: LatchFile,Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request