summaryrefslogtreecommitdiff
path: root/Pb_Api/Param/MultiSelect.py
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2015-03-05 19:09:51 -0800
committeryo mama <pepper@scannerjammer.com>2015-03-05 19:09:51 -0800
commite6dcac83910b1d022b05ca68fc8b0d4b2d32c619 (patch)
tree794165705c3d6e9003caae910fbcace9ebaa855f /Pb_Api/Param/MultiSelect.py
parente7d397472c7f6f6ba7b911ae8afff9bcb6a56b92 (diff)
fixed some great stuff
Diffstat (limited to 'Pb_Api/Param/MultiSelect.py')
-rw-r--r--Pb_Api/Param/MultiSelect.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/Pb_Api/Param/MultiSelect.py b/Pb_Api/Param/MultiSelect.py
index 2c8c32c..d48d1f8 100644
--- a/Pb_Api/Param/MultiSelect.py
+++ b/Pb_Api/Param/MultiSelect.py
@@ -5,8 +5,16 @@ class Pb_Api_Param_MultiSelect(Pb_Api_Param):
def __init__(self, *args, **kwargs):
self._options = kwargs['options']
super(Pb_Api_Param_MultiSelect, self).__init__(*args, **kwargs)
+ self._validate_options()
+ self.default(self._choose_heaviest())
def options(self):
return self._options
+ def _validate_options(self):
+ try:
+ int(self._options[0]['weight'])
+ self._options[0]['value']
+ except Exception as e:
+ raise ValueError
@property
def value(self):
@@ -19,6 +27,7 @@ class Pb_Api_Param_MultiSelect(Pb_Api_Param):
if value is None: valid = True
if not valid : raise ValueError
super(Pb_Api_Param_MultiSelect, self).set_value(value)
+
def randomize(self):
weights_total = sum(map(lambda x: x["weight"], self.options()))
choice = random.randint(0, weights_total)
@@ -28,7 +37,8 @@ class Pb_Api_Param_MultiSelect(Pb_Api_Param):
if position >= choice:
self.value = elem["value"]
break
- def heaviest(self, param):
+
+ def _choose_heaviest(self):
heaviest_idx = 0
heaviest_weight = 0
idx = 0
@@ -37,4 +47,6 @@ class Pb_Api_Param_MultiSelect(Pb_Api_Param):
heaviest_weight = elem["weight"]
heaviest_idx = idx;
idx += 1
- self.value = self.options()[heaviest_idx]["value"]
+ return self.options()[heaviest_idx]["value"]
+ def heaviest(self):
+ self.value = self._get_heaviest()