mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-10 05:51:52 +08:00
Almost all re functions take a compiled pattern. (Even re.compile()!) (#203)
* Almost all re functions take a compiled pattern. (Even re.compile()!) Fixes #188 Note: I'm using AnyStr so that the type of string used for pattern and for the rest of the arguments must match. This is not 100% correct, since Python 2 sometimes allows mixed types. But sometimes it doesn't, depending on the values (e.g. non-ASCII bytes), and Python 3 always insists on matching, so I think this is actually a good idea. * Same treatment for stdlib/3/re.pyi.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
# and http://hg.python.org/cpython/file/618ea5612e83/Lib/re.py
|
||||
|
||||
from typing import (
|
||||
List, Iterator, Callable, Tuple, Sequence, Dict, Union,
|
||||
List, Iterator, overload, Callable, Tuple, Sequence, Dict,
|
||||
Generic, AnyStr, Match, Pattern
|
||||
)
|
||||
|
||||
@@ -29,29 +29,71 @@ UNICODE = 0
|
||||
|
||||
class error(Exception): ...
|
||||
|
||||
@overload
|
||||
def compile(pattern: AnyStr, flags: int = ...) -> Pattern[AnyStr]: ...
|
||||
def search(pattern: AnyStr, string: AnyStr,
|
||||
flags: int = ...) -> Match[AnyStr]: ...
|
||||
def match(pattern: AnyStr, string: AnyStr,
|
||||
flags: int = ...) -> Match[AnyStr]: ...
|
||||
def split(pattern: AnyStr, string: AnyStr, maxsplit: int = ...,
|
||||
flags: int = ...) -> List[AnyStr]: ...
|
||||
def findall(pattern: AnyStr, string: AnyStr,
|
||||
flags: int = ...) -> List[AnyStr]: ...
|
||||
@overload
|
||||
def compile(pattern: Pattern[AnyStr], flags: int = ...) -> Pattern[AnyStr]: ...
|
||||
|
||||
@overload
|
||||
def search(pattern: AnyStr, string: AnyStr, flags: int = ...) -> Match[AnyStr]: ...
|
||||
@overload
|
||||
def search(pattern: Pattern[AnyStr], string: AnyStr, flags: int = ...) -> Match[AnyStr]: ...
|
||||
|
||||
@overload
|
||||
def match(pattern: AnyStr, string: AnyStr, flags: int = ...) -> Match[AnyStr]: ...
|
||||
@overload
|
||||
def match(pattern: Pattern[AnyStr], string: AnyStr, flags: int = ...) -> Match[AnyStr]: ...
|
||||
|
||||
@overload
|
||||
def split(pattern: AnyStr, string: AnyStr,
|
||||
maxsplit: int = ..., flags: int = ...) -> List[AnyStr]: ...
|
||||
@overload
|
||||
def split(pattern: Pattern[AnyStr], string: AnyStr,
|
||||
maxsplit: int = ..., flags: int = ...) -> List[AnyStr]: ...
|
||||
|
||||
@overload
|
||||
def findall(pattern: AnyStr, string: AnyStr, flags: int = ...) -> List[AnyStr]: ...
|
||||
@overload
|
||||
def findall(pattern: Pattern[AnyStr], string: AnyStr, flags: int = ...) -> List[AnyStr]: ...
|
||||
|
||||
# Return an iterator yielding match objects over all non-overlapping matches
|
||||
# for the RE pattern in string. The string is scanned left-to-right, and
|
||||
# matches are returned in the order found. Empty matches are included in the
|
||||
# result unless they touch the beginning of another match.
|
||||
@overload
|
||||
def finditer(pattern: AnyStr, string: AnyStr,
|
||||
flags: int = ...) -> Iterator[Match[AnyStr]]: ...
|
||||
@overload
|
||||
def finditer(pattern: Pattern[AnyStr], string: AnyStr,
|
||||
flags: int = ...) -> Iterator[Match[AnyStr]]: ...
|
||||
|
||||
def sub(pattern: AnyStr, repl: Union[AnyStr, Callable[[Match[AnyStr]], AnyStr]],
|
||||
@overload
|
||||
def sub(pattern: AnyStr, repl: AnyStr, string: AnyStr, count: int = ...,
|
||||
flags: int = ...) -> AnyStr: ...
|
||||
@overload
|
||||
def sub(pattern: AnyStr, repl: Callable[[Match[AnyStr]], AnyStr],
|
||||
string: AnyStr, count: int = ..., flags: int = ...) -> AnyStr: ...
|
||||
@overload
|
||||
def sub(pattern: Pattern[AnyStr], repl: AnyStr, string: AnyStr, count: int = ...,
|
||||
flags: int = ...) -> AnyStr: ...
|
||||
@overload
|
||||
def sub(pattern: Pattern[AnyStr], repl: Callable[[Match[AnyStr]], AnyStr],
|
||||
string: AnyStr, count: int = ..., flags: int = ...) -> AnyStr: ...
|
||||
|
||||
def subn(pattern: AnyStr, repl: Union[AnyStr, Callable[[Match[AnyStr]], AnyStr]],
|
||||
string: AnyStr, count: int = ..., flags: int = ...) -> Tuple[AnyStr, int]:
|
||||
...
|
||||
@overload
|
||||
def subn(pattern: AnyStr, repl: AnyStr, string: AnyStr, count: int = ...,
|
||||
flags: int = ...) -> Tuple[AnyStr, int]: ...
|
||||
@overload
|
||||
def subn(pattern: AnyStr, repl: Callable[[Match[AnyStr]], AnyStr],
|
||||
string: AnyStr, count: int = ...,
|
||||
flags: int = ...) -> Tuple[AnyStr, int]: ...
|
||||
@overload
|
||||
def subn(pattern: Pattern[AnyStr], repl: AnyStr, string: AnyStr, count: int = ...,
|
||||
flags: int = ...) -> Tuple[AnyStr, int]: ...
|
||||
@overload
|
||||
def subn(pattern: Pattern[AnyStr], repl: Callable[[Match[AnyStr]], AnyStr],
|
||||
string: AnyStr, count: int = ...,
|
||||
flags: int = ...) -> Tuple[AnyStr, int]: ...
|
||||
|
||||
def escape(string: AnyStr) -> AnyStr: ...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user