diff options
Diffstat (limited to 'discord/utils.py')
| -rw-r--r-- | discord/utils.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/discord/utils.py b/discord/utils.py index 4dfc7a0c..8303916c 100644 --- a/discord/utils.py +++ b/discord/utils.py @@ -26,6 +26,7 @@ DEALINGS IN THE SOFTWARE. import array import asyncio +import collections.abc import unicodedata from base64 import b64encode from bisect import bisect_left @@ -78,6 +79,32 @@ def cached_slot_property(name): return CachedSlotProperty(name, func) return decorator +class SequenceProxy(collections.abc.Sequence): + """Read-only proxy of a Sequence.""" + def __init__(self, proxied): + self.__proxied = proxied + + def __getitem__(self, idx): + return self.__proxied[idx] + + def __len__(self): + return len(self.__proxied) + + def __contains__(self, item): + return item in self.__proxied + + def __iter__(self): + return iter(self.__proxied) + + def __reversed__(self): + return reversed(self.__proxied) + + def index(self, value, *args, **kwargs): + return self.__proxied.index(value, *args, **kwargs) + + def count(self, value): + return self.__proxied.count(value) + def parse_time(timestamp): if timestamp: return datetime.datetime(*map(int, re.split(r'[^\d]', timestamp.replace('+00:00', '')))) |