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")