comparison venv/lib/python2.7/site-packages/bioblend/galaxy/tools/inputs.py @ 0:d67268158946 draft

planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author bcclaywell
date Mon, 12 Oct 2015 17:43:33 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:d67268158946
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 inputs = InputsBuilder
69 repeat = RepeatBuilder
70 conditional = InputsBuilder
71 param = Param
72 dataset = DatasetParam
73
74 __all__ = ["inputs", "repeat", "conditional", "param"]