--- /dev/null
+from typing import Any, Dict, Iterable, Iterator, Mapping, MutableMapping, Optional, Tuple, TypeVar, Union, Generic\r
+\r
+_VT = TypeVar('_VT')\r
+\r
+class CaseInsensitiveDict(MutableMapping[str, _VT], Generic[_VT]):\r
+ def __init__(self, data: Optional[Union[Mapping[str, _VT], Iterable[Tuple[str, _VT]]]] = ..., **kwargs: _VT) -> None: ...\r
+ def lower_items(self) -> Iterator[Tuple[str, _VT]]: ...\r
+ def __setitem__(self, key: str, value: _VT) -> None: ...\r
+ def __getitem__(self, key: str) -> _VT: ...\r
+ def __delitem__(self, key: str) -> None: ...\r
+ def __iter__(self) -> Iterator[str]: ...\r
+ def __len__(self) -> int: ...\r
+\r
+class LookupDict(Dict[str, _VT]):\r
+ name: Any\r
+ def __init__(self, name: Any = ...) -> None: ...\r
+ def __getitem__(self, key: str) -> Optional[_VT]: ... # type: ignore\r
+ def __getattr__(self, attr: str) -> _VT: ...\r
+ def __setattr__(self, attr: str, value: _VT) -> None: ...\r