From d9a7e1c475eab932b6b78e09cced5ee09ba83dda Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Tue, 16 Jan 2018 16:39:17 +0000 Subject: [PATCH] utils/types: Add `add` method to toggle_set Allows adding of elements that will respect the state of an existing element in the toggle set. --- wa/utils/types.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/wa/utils/types.py b/wa/utils/types.py index db161e9c..8ede60da 100644 --- a/wa/utils/types.py +++ b/wa/utils/types.py @@ -389,6 +389,16 @@ class toggle_set(set): other = copy(other) return toggle_set.merge(self, other) + def add(self, item): + if item not in self: + #Disable previously enabled item + if item.startswith('~') and item[1:] in self: + self.remove(item[1:]) + #Enable previously disabled item + if not item.startswith('~') and ('~' + item) in self: + self.remove('~' + item) + super(toggle_set, self).add(item) + def values(self): """ returns a list of enabled items.