Mercurial > repos > guerler > springsuite
diff planemo/lib/python3.7/site-packages/bioblend/galaxy/tools/inputs.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:18:57 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/planemo/lib/python3.7/site-packages/bioblend/galaxy/tools/inputs.py Fri Jul 31 00:18:57 2020 -0400 @@ -0,0 +1,72 @@ +class InputsBuilder(object): + """ + """ + + 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 "%s|%s" % (prefix, key) + if hasattr(value, "flat_iter"): + for flattened_key, flattened_value in value.flat_iter(effective_key): + yield flattened_key, flattened_value + else: + yield effective_key, value + + +class RepeatBuilder(object): + + 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) + for key, value in instance.flat_iter(index_prefix): + yield key, value + + +class Param(object): + + 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")