summaryrefslogtreecommitdiff
path: root/grc/core/utils/descriptors/evaluated.py
diff options
context:
space:
mode:
authorAndrej Rode <mail@andrejro.de>2018-06-23 17:44:58 +0200
committerAndrej Rode <mail@andrejro.de>2018-06-23 17:44:58 +0200
commit5e07e65fe9350a51cd45f8f21cfa6bf144e42e1c (patch)
treeb88dde44a0ba1f2ce1b382bbca02e80050f77a17 /grc/core/utils/descriptors/evaluated.py
parent9f7e39ee5141791f93dbc1c842b1d1a49e33b068 (diff)
parente82e337d0c74fa7ea5e8b8429de29bec43818552 (diff)
Merge branch 'python3_fix' into python3_merge
Diffstat (limited to 'grc/core/utils/descriptors/evaluated.py')
-rw-r--r--grc/core/utils/descriptors/evaluated.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/grc/core/utils/descriptors/evaluated.py b/grc/core/utils/descriptors/evaluated.py
index 313cee5b96..0e1b68761c 100644
--- a/grc/core/utils/descriptors/evaluated.py
+++ b/grc/core/utils/descriptors/evaluated.py
@@ -15,6 +15,10 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+from __future__ import absolute_import
+
+import six
+
class Evaluated(object):
def __init__(self, expected_type, default, name=None):
@@ -62,7 +66,7 @@ class Evaluated(object):
def __set__(self, instance, value):
attribs = instance.__dict__
value = value or self.default
- if isinstance(value, str) and value.startswith('${') and value.endswith('}'):
+ if isinstance(value, six.text_type) and value.startswith('${') and value.endswith('}'):
attribs[self.name_raw] = value[2:-1].strip()
else:
attribs[self.name] = type(self.default)(value)
@@ -75,9 +79,10 @@ class Evaluated(object):
class EvaluatedEnum(Evaluated):
def __init__(self, allowed_values, default=None, name=None):
- self.allowed_values = allowed_values if isinstance(allowed_values, (list, tuple)) else \
- allowed_values.split()
- default = default if default is not None else self.allowed_values[0]
+ if isinstance(allowed_values, six.string_types):
+ allowed_values = set(allowed_values.split())
+ self.allowed_values = allowed_values
+ default = default if default is not None else next(iter(self.allowed_values))
super(EvaluatedEnum, self).__init__(str, default, name)
def default_eval_func(self, instance):