aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimov <sergei.trofimov@arm.com>2018-03-22 12:11:28 +0000
committerMarc Bonnici <marc.bonnici@arm.com>2018-03-22 12:28:48 +0000
commit67ea7c8ee19cd97517b1aab1e7a939ebfa3d5aa8 (patch)
tree98771988261d367904383d64269fadcba574feee
parent74640106776e98827c0f2930069a9326fb851b23 (diff)
utils/types: toggle_set: TypeError on string
Strings are iterable, so can be used to instantiate sets (resulting in a set of chars). This is never what we want for toggle_set's though, and may result in difficult-to-interpret errors when parsing configuration, so raise a TypeError if attempting to create a toggle_set with a string.
-rw-r--r--wa/utils/types.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/wa/utils/types.py b/wa/utils/types.py
index 8ede60da..607c5a84 100644
--- a/wa/utils/types.py
+++ b/wa/utils/types.py
@@ -381,6 +381,14 @@ class toggle_set(set):
dest.add(item)
return dest
+ def __init__(self, *args):
+ if args:
+ value = args[0]
+ if isinstance(value, basestring):
+ msg = 'invalid type for toggle_set: "{}"'
+ raise TypeError(msg.format(type(value)))
+ set.__init__(self, *args)
+
def merge_with(self, other):
new_self = copy(self)
return toggle_set.merge(other, new_self)