Mercurial > repos > shellac > sam_consensus_v3
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") |