mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 04:54:47 +08:00
Add more ast.parse() mode overrides (#6522)
eval -> Expression func_type -> FunctionType single -> Interactive We need (simplified) to cover all cases in Python >= 3.8 - 1 case: parse(filename: str = ...) - 4 cases: parse(filename: str, mode: Literal[...]) - 4 cases: parse(*, mode: Literal[...])
This commit is contained in:
@@ -167,18 +167,66 @@ if sys.version_info >= (3, 8):
|
||||
@overload
|
||||
def parse(
|
||||
source: str | bytes,
|
||||
filename: str | bytes = ...,
|
||||
mode: str = ...,
|
||||
filename: str | bytes,
|
||||
mode: Literal["eval"],
|
||||
*,
|
||||
type_comments: bool = ...,
|
||||
feature_version: None | int | _typing.Tuple[int, int] = ...,
|
||||
) -> AST: ...
|
||||
) -> Expression: ...
|
||||
@overload
|
||||
def parse(
|
||||
source: str | bytes,
|
||||
filename: str | bytes,
|
||||
mode: Literal["func_type"],
|
||||
*,
|
||||
type_comments: bool = ...,
|
||||
feature_version: None | int | _typing.Tuple[int, int] = ...,
|
||||
) -> FunctionType: ...
|
||||
@overload
|
||||
def parse(
|
||||
source: str | bytes,
|
||||
filename: str | bytes,
|
||||
mode: Literal["single"],
|
||||
*,
|
||||
type_comments: bool = ...,
|
||||
feature_version: None | int | _typing.Tuple[int, int] = ...,
|
||||
) -> Interactive: ...
|
||||
@overload
|
||||
def parse(
|
||||
source: str | bytes,
|
||||
*,
|
||||
mode: Literal["eval"],
|
||||
type_comments: bool = ...,
|
||||
feature_version: None | int | _typing.Tuple[int, int] = ...,
|
||||
) -> Expression: ...
|
||||
@overload
|
||||
def parse(
|
||||
source: str | bytes,
|
||||
*,
|
||||
mode: Literal["func_type"],
|
||||
type_comments: bool = ...,
|
||||
feature_version: None | int | _typing.Tuple[int, int] = ...,
|
||||
) -> FunctionType: ...
|
||||
@overload
|
||||
def parse(
|
||||
source: str | bytes,
|
||||
*,
|
||||
mode: Literal["single"],
|
||||
type_comments: bool = ...,
|
||||
feature_version: None | int | _typing.Tuple[int, int] = ...,
|
||||
) -> Interactive: ...
|
||||
|
||||
else:
|
||||
@overload
|
||||
def parse(source: str | bytes, filename: str | bytes = ..., mode: Literal["exec"] = ...) -> Module: ...
|
||||
@overload
|
||||
def parse(source: str | bytes, filename: str | bytes = ..., mode: str = ...) -> AST: ...
|
||||
def parse(source: str | bytes, filename: str | bytes, mode: Literal["eval"]) -> Expression: ...
|
||||
@overload
|
||||
def parse(source: str | bytes, filename: str | bytes, mode: Literal["single"]) -> Interactive: ...
|
||||
@overload
|
||||
def parse(source: str | bytes, *, mode: Literal["eval"]) -> Expression: ...
|
||||
@overload
|
||||
def parse(source: str | bytes, *, mode: Literal["single"]) -> Interactive: ...
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
def unparse(ast_obj: AST) -> str: ...
|
||||
|
||||
Reference in New Issue
Block a user