diff options
author | Sergei Trofimov <sergei.trofimov@arm.com> | 2018-03-22 12:11:28 +0000 |
---|---|---|
committer | Marc Bonnici <marc.bonnici@arm.com> | 2018-03-22 12:28:48 +0000 |
commit | 67ea7c8ee19cd97517b1aab1e7a939ebfa3d5aa8 (patch) | |
tree | 98771988261d367904383d64269fadcba574feee | |
parent | 74640106776e98827c0f2930069a9326fb851b23 (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.py | 8 |
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) |