Browse Source

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.
pull/1838/merge
DevilXD 6 years ago
committed by Rapptz
parent
commit
9d92939fbe
  1. 7
      discord/permissions.py

7
discord/permissions.py

@ -526,6 +526,10 @@ class PermissionOverwrite:
+-----------+------------------------------------------+ +-----------+------------------------------------------+
| Operation | Description | | 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) | | iter(x) | Returns an iterator of (perm, value) |
| | pairs. This allows this class to be used | | | pairs. This allows this class to be used |
| | as an iterable in e.g. set/list/dict | | | as an iterable in e.g. set/list/dict |
@ -549,6 +553,9 @@ class PermissionOverwrite:
setattr(self, key, value) setattr(self, key, value)
def __eq__(self, other):
return self._values == other._values
def _set(self, key, value): def _set(self, key, value):
if value not in (True, None, False): if value not in (True, None, False):
raise TypeError('Expected bool or NoneType, received {0.__class__.__name__}'.format(value)) raise TypeError('Expected bool or NoneType, received {0.__class__.__name__}'.format(value))

Loading…
Cancel
Save