From 9d92939fbe07b52889862f216687e6c91931ac4f Mon Sep 17 00:00:00 2001 From: DevilXD Date: Mon, 28 Jan 2019 22:47:26 +0100 Subject: [PATCH] Added support for comparing PermissionOverwrites When trying to check if a specific permission overwrite is already set on a channel, it can be done by fetching the already existing overwrite and comparing it with a one you want to set. Comparing them directly wasn't possible before, and this small change allows for that. Could be expanded for other comparison operators, not sure how it would work though. --- discord/permissions.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/discord/permissions.py b/discord/permissions.py index 4c2d5f700..a72a6290f 100644 --- a/discord/permissions.py +++ b/discord/permissions.py @@ -526,6 +526,10 @@ class PermissionOverwrite: +-----------+------------------------------------------+ | Operation | Description | +===========+==========================================+ + | x == y | Checks if two overwrites are equal. | + +-----------+------------------------------------------+ + | x != y | Checks if two overwrites are not equal. | + +-----------+------------------------------------------+ | iter(x) | Returns an iterator of (perm, value) | | | pairs. This allows this class to be used | | | as an iterable in e.g. set/list/dict | @@ -549,6 +553,9 @@ class PermissionOverwrite: setattr(self, key, value) + def __eq__(self, other): + return self._values == other._values + def _set(self, key, value): if value not in (True, None, False): raise TypeError('Expected bool or NoneType, received {0.__class__.__name__}'.format(value))