diff options
| author | 2020-03-03 22:53:19 -0500 | |
|---|---|---|
| committer | 2020-03-03 22:55:25 -0500 | |
| commit | aae928ebc06e7e7a6ed5b5b848464ce95e4ea9d8 (patch) | |
| tree | 181e4588240a4d955d53f86e77990f496fd07557 | |
| parent | Add pep8-naming & relock (diff) | |
Remove CaseInsensitiveDict
This was added by the now-removed Snake cog & is not used elsewhere on bot.
Diffstat (limited to '')
| -rw-r--r-- | bot/utils/__init__.py | 57 | ||||
| -rw-r--r-- | tests/bot/test_utils.py | 37 | 
2 files changed, 0 insertions, 94 deletions
| diff --git a/bot/utils/__init__.py b/bot/utils/__init__.py index 3e4b15ce4..9b32e515d 100644 --- a/bot/utils/__init__.py +++ b/bot/utils/__init__.py @@ -1,5 +1,4 @@  from abc import ABCMeta -from typing import Any, Hashable  from discord.ext.commands import CogMeta @@ -8,59 +7,3 @@ class CogABCMeta(CogMeta, ABCMeta):      """Metaclass for ABCs meant to be implemented as Cogs."""      pass - - -class CaseInsensitiveDict(dict): -    """ -    We found this class on StackOverflow. Thanks to m000 for writing it! - -    https://stackoverflow.com/a/32888599/4022104 -    """ - -    @classmethod -    def _k(cls, key: Hashable) -> Hashable: -        """Return lowered key if a string-like is passed, otherwise pass key straight through.""" -        return key.lower() if isinstance(key, str) else key - -    def __init__(self, *args, **kwargs): -        super(CaseInsensitiveDict, self).__init__(*args, **kwargs) -        self._convert_keys() - -    def __getitem__(self, key: Hashable) -> Any: -        """Case insensitive __setitem__.""" -        return super(CaseInsensitiveDict, self).__getitem__(self.__class__._k(key)) - -    def __setitem__(self, key: Hashable, value: Any): -        """Case insensitive __setitem__.""" -        super(CaseInsensitiveDict, self).__setitem__(self.__class__._k(key), value) - -    def __delitem__(self, key: Hashable) -> Any: -        """Case insensitive __delitem__.""" -        return super(CaseInsensitiveDict, self).__delitem__(self.__class__._k(key)) - -    def __contains__(self, key: Hashable) -> bool: -        """Case insensitive __contains__.""" -        return super(CaseInsensitiveDict, self).__contains__(self.__class__._k(key)) - -    def pop(self, key: Hashable, *args, **kwargs) -> Any: -        """Case insensitive pop.""" -        return super(CaseInsensitiveDict, self).pop(self.__class__._k(key), *args, **kwargs) - -    def get(self, key: Hashable, *args, **kwargs) -> Any: -        """Case insensitive get.""" -        return super(CaseInsensitiveDict, self).get(self.__class__._k(key), *args, **kwargs) - -    def setdefault(self, key: Hashable, *args, **kwargs) -> Any: -        """Case insensitive setdefault.""" -        return super(CaseInsensitiveDict, self).setdefault(self.__class__._k(key), *args, **kwargs) - -    def update(self, E: Any = None, **F) -> None: -        """Case insensitive update.""" -        super(CaseInsensitiveDict, self).update(self.__class__(E)) -        super(CaseInsensitiveDict, self).update(self.__class__(**F)) - -    def _convert_keys(self) -> None: -        """Helper method to lowercase all existing string-like keys.""" -        for k in list(self.keys()): -            v = super(CaseInsensitiveDict, self).pop(k) -            self.__setitem__(k, v) diff --git a/tests/bot/test_utils.py b/tests/bot/test_utils.py deleted file mode 100644 index d7bcc3ba6..000000000 --- a/tests/bot/test_utils.py +++ /dev/null @@ -1,37 +0,0 @@ -import unittest - -from bot import utils - - -class CaseInsensitiveDictTests(unittest.TestCase): -    """Tests for the `CaseInsensitiveDict` container.""" - -    def test_case_insensitive_key_access(self): -        """Tests case insensitive key access and storage.""" -        instance = utils.CaseInsensitiveDict() - -        key = 'LEMON' -        value = 'trees' - -        instance[key] = value -        self.assertIn(key, instance) -        self.assertEqual(instance.get(key), value) -        self.assertEqual(instance.get(key.casefold()), value) -        self.assertEqual(instance.pop(key.casefold()), value) -        self.assertNotIn(key, instance) -        self.assertNotIn(key.casefold(), instance) - -        instance.setdefault(key, value) -        del instance[key] -        self.assertNotIn(key, instance) - -    def test_initialization_from_kwargs(self): -        """Tests creating the dictionary from keyword arguments.""" -        instance = utils.CaseInsensitiveDict({'FOO': 'bar'}) -        self.assertEqual(instance['foo'], 'bar') - -    def test_update_from_other_mapping(self): -        """Tests updating the dictionary from another mapping.""" -        instance = utils.CaseInsensitiveDict() -        instance.update({'FOO': 'bar'}) -        self.assertEqual(instance['foo'], 'bar') | 
