Mercurial > repos > shellac > sam_consensus_v3
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.9/site-packages/bioblend/galaxy/tools/inputs.py Mon Mar 22 18:12:50 2021 +0000 @@ -0,0 +1,70 @@ +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")