diff --git a/aioauth/collections.py b/aioauth/collections.py index 9082ad4..299e0fd 100644 --- a/aioauth/collections.py +++ b/aioauth/collections.py @@ -9,6 +9,7 @@ """ from collections import UserDict +from typing import Any class HTTPHeaderDict(UserDict): @@ -33,8 +34,24 @@ class HTTPHeaderDict(UserDict): d['hElLo'] == 'world' # >>> True """ + def __init__(self, dict=None, **kwargs): + """Object initialization.""" + super().__init__(dict, **kwargs) + self.data = {k.lower(): v for k, v in self.data.items()} + def __setitem__(self, key: str, value: str): super().__setitem__(key.lower(), value) def __getitem__(self, key: str): return super().__getitem__(key.lower()) + + def __delitem__(self, key: str): + """Item deletion.""" + return super().__delitem__(key.lower()) + + def get(self, key: str, default: Any = None): + """Case-insentive get.""" + try: + return self[key] + except KeyError: + return default