--- /dev/null
+"""Stub file for the '_sre' module."""\r
+\r
+from typing import Any, Union, Iterable, Optional, Mapping, Sequence, Dict, List, Tuple, overload\r
+\r
+CODESIZE = ... # type: int\r
+MAGIC = ... # type: int\r
+MAXREPEAT = ... # type: long\r
+copyright = ... # type: str\r
+\r
+class SRE_Match(object):\r
+ def start(self, group: int = ...) -> int:\r
+ raise IndexError()\r
+ def end(self, group: int = ...) -> int:\r
+ raise IndexError()\r
+ def expand(self, s: str) -> Any: ...\r
+ @overload\r
+ def group(self) -> str: ...\r
+ @overload\r
+ def group(self, group: int = ...) -> Optional[str]: ...\r
+ def groupdict(self) -> Dict[int, Optional[str]]: ...\r
+ def groups(self) -> Tuple[Optional[str], ...]: ...\r
+ def span(self) -> Tuple[int, int]:\r
+ raise IndexError()\r
+\r
+class SRE_Scanner(object):\r
+ pattern = ... # type: str\r
+ def match(self) -> SRE_Match: ...\r
+ def search(self) -> SRE_Match: ...\r
+\r
+class SRE_Pattern(object):\r
+ pattern = ... # type: str\r
+ flags = ... # type: int\r
+ groups = ... # type: int\r
+ groupindex = ... # type: Mapping[str, int]\r
+ indexgroup = ... # type: Sequence[int]\r
+ def findall(self, source: str, pos: int = ..., endpos: int = ...) -> List[Union[tuple, str]]: ...\r
+ def finditer(self, source: str, pos: int = ..., endpos: int = ...) -> Iterable[Union[tuple, str]]: ...\r
+ def match(self, pattern, pos: int = ..., endpos: int = ...) -> SRE_Match: ...\r
+ def scanner(self, s: str, start: int = ..., end: int = ...) -> SRE_Scanner: ...\r
+ def search(self, pattern, pos: int = ..., endpos: int = ...) -> SRE_Match: ...\r
+ def split(self, source: str, maxsplit: int = ...) -> List[Optional[str]]: ...\r
+ def sub(self, repl: str, string: str, count: int = ...) -> tuple: ...\r
+ def subn(self, repl: str, string: str, count: int = ...) -> tuple: ...\r
+\r
+def compile(pattern: str, flags: int, code: List[int],\r
+ groups: int = ...,\r
+ groupindex: Mapping[str, int] = ...,\r
+ indexgroup: Sequence[int] = ...) -> SRE_Pattern:\r
+ raise OverflowError()\r
+\r
+def getcodesize() -> int: ...\r
+\r
+def getlower(a: int, b: int) -> int: ...\r