--- /dev/null
+# Stubs for http.cookies (Python 3.5)\r
+\r
+from typing import Generic, Dict, List, Mapping, MutableMapping, Optional, TypeVar, Union\r
+\r
+_DataType = Union[str, Mapping[str, Union[str, 'Morsel']]]\r
+_T = TypeVar('_T')\r
+\r
+class CookieError(Exception): ...\r
+\r
+class Morsel(Dict[str, str], Generic[_T]):\r
+ value = ... # type: str\r
+ coded_value = ... # type: _T\r
+ key = ... # type: str\r
+ def set(self, key: str, val: str, coded_val: _T) -> None: ...\r
+ def isReservedKey(self, K: str) -> bool: ...\r
+ def output(self, attrs: Optional[List[str]] = ...,\r
+ header: str = ...) -> str: ...\r
+ def js_output(self, attrs: Optional[List[str]] = ...) -> str: ...\r
+ def OutputString(self, attrs: Optional[List[str]] = ...) -> str: ...\r
+\r
+class BaseCookie(Dict[str, Morsel], Generic[_T]):\r
+ def __init__(self, input: Optional[_DataType] = ...) -> None: ...\r
+ def value_decode(self, val: str) -> _T: ...\r
+ def value_encode(self, val: _T) -> str: ...\r
+ def output(self, attrs: Optional[List[str]] = ..., header: str = ...,\r
+ sep: str = ...) -> str: ...\r
+ def js_output(self, attrs: Optional[List[str]] = ...) -> str: ...\r
+ def load(self, rawdata: _DataType) -> None: ...\r
+ def __setitem__(self, key: str, value: Union[str, Morsel]) -> None: ...\r
+\r
+class SimpleCookie(BaseCookie): ...\r