Mercurial > repos > shellac > sam_consensus_v3
view env/lib/python3.9/site-packages/bioblend/galaxy/tools/inputs.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
line wrap: on
line source
class InputsBuilder: """ """ def __init__(self): self._input_dict = {} def set(self, name, input): self._input_dict[name] = input return self def set_param(self, name, value): return self.set(name, param(value=value)) def set_dataset_param(self, name, value, src="hda"): return self.set(name, dataset(value, src=src)) def to_dict(self): values = {} for key, value in self.flat_iter(): if hasattr(value, "value"): value = value.value values[key] = value return values def flat_iter(self, prefix=None): for key, value in self._input_dict.items(): effective_key = key if prefix is None else f"{prefix}|{key}" if hasattr(value, "flat_iter"): yield from value.flat_iter(effective_key) else: yield effective_key, value class RepeatBuilder: def __init__(self): self._instances = [] def instance(self, inputs): self._instances.append(inputs) return self def flat_iter(self, prefix=None): for index, instance in enumerate(self._instances): index_prefix = "%s_%d" % (prefix, index) yield from instance.flat_iter(index_prefix) class Param: def __init__(self, value): self.value = value class DatasetParam(Param): def __init__(self, value, src="hda"): if not isinstance(value, dict): value = dict(src=src, id=value) super().__init__(value) inputs = InputsBuilder repeat = RepeatBuilder conditional = InputsBuilder param = Param dataset = DatasetParam __all__ = ("inputs", "repeat", "conditional", "param")