comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 class InputsBuilder:
2 """
3 """
4
5 def __init__(self):
6 self._input_dict = {}
7
8 def set(self, name, input):
9 self._input_dict[name] = input
10 return self
11
12 def set_param(self, name, value):
13 return self.set(name, param(value=value))
14
15 def set_dataset_param(self, name, value, src="hda"):
16 return self.set(name, dataset(value, src=src))
17
18 def to_dict(self):
19 values = {}
20 for key, value in self.flat_iter():
21 if hasattr(value, "value"):
22 value = value.value
23 values[key] = value
24 return values
25
26 def flat_iter(self, prefix=None):
27 for key, value in self._input_dict.items():
28 effective_key = key if prefix is None else f"{prefix}|{key}"
29 if hasattr(value, "flat_iter"):
30 yield from value.flat_iter(effective_key)
31 else:
32 yield effective_key, value
33
34
35 class RepeatBuilder:
36
37 def __init__(self):
38 self._instances = []
39
40 def instance(self, inputs):
41 self._instances.append(inputs)
42 return self
43
44 def flat_iter(self, prefix=None):
45 for index, instance in enumerate(self._instances):
46 index_prefix = "%s_%d" % (prefix, index)
47 yield from instance.flat_iter(index_prefix)
48
49
50 class Param:
51
52 def __init__(self, value):
53 self.value = value
54
55
56 class DatasetParam(Param):
57
58 def __init__(self, value, src="hda"):
59 if not isinstance(value, dict):
60 value = dict(src=src, id=value)
61 super().__init__(value)
62
63
64 inputs = InputsBuilder
65 repeat = RepeatBuilder
66 conditional = InputsBuilder
67 param = Param
68 dataset = DatasetParam
69
70 __all__ = ("inputs", "repeat", "conditional", "param")