Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/bioblend/galaxy/tools/inputs.py @ 2:6af9afd405e9 draft
"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author | shellac |
---|---|
date | Thu, 14 May 2020 14:56:58 -0400 |
parents | 26e78fe6e8c4 |
children |
comparison
equal
deleted
inserted
replaced
1:75ca89e9b81c | 2:6af9afd405e9 |
---|---|
1 import six | |
2 | |
3 | |
4 class InputsBuilder(object): | |
5 """ | |
6 """ | |
7 | |
8 def __init__(self): | |
9 self._input_dict = {} | |
10 | |
11 def set(self, name, input): | |
12 self._input_dict[name] = input | |
13 return self | |
14 | |
15 def set_param(self, name, value): | |
16 return self.set(name, param(value=value)) | |
17 | |
18 def set_dataset_param(self, name, value, src="hda"): | |
19 return self.set(name, dataset(value, src=src)) | |
20 | |
21 def to_dict(self): | |
22 values = {} | |
23 for key, value in self.flat_iter(): | |
24 if hasattr(value, "value"): | |
25 value = value.value | |
26 values[key] = value | |
27 return values | |
28 | |
29 def flat_iter(self, prefix=None): | |
30 for key, value in six.iteritems(self._input_dict): | |
31 effective_key = key if prefix is None else "%s|%s" % (prefix, key) | |
32 if hasattr(value, "flat_iter"): | |
33 for flattened_key, flattened_value in value.flat_iter(effective_key): | |
34 yield flattened_key, flattened_value | |
35 else: | |
36 yield effective_key, value | |
37 | |
38 | |
39 class RepeatBuilder(object): | |
40 | |
41 def __init__(self): | |
42 self._instances = [] | |
43 | |
44 def instance(self, inputs): | |
45 self._instances.append(inputs) | |
46 return self | |
47 | |
48 def flat_iter(self, prefix=None): | |
49 for index, instance in enumerate(self._instances): | |
50 index_prefix = "%s_%d" % (prefix, index) | |
51 for key, value in instance.flat_iter(index_prefix): | |
52 yield key, value | |
53 | |
54 | |
55 class Param(object): | |
56 | |
57 def __init__(self, value): | |
58 self.value = value | |
59 | |
60 | |
61 class DatasetParam(Param): | |
62 | |
63 def __init__(self, value, src="hda"): | |
64 if not isinstance(value, dict): | |
65 value = dict(src=src, id=value) | |
66 super(DatasetParam, self).__init__(value) | |
67 | |
68 | |
69 inputs = InputsBuilder | |
70 repeat = RepeatBuilder | |
71 conditional = InputsBuilder | |
72 param = Param | |
73 dataset = DatasetParam | |
74 | |
75 __all__ = ("inputs", "repeat", "conditional", "param") |