diff --git a/stdlib/ast.pyi b/stdlib/ast.pyi index 1a3d3e97d..cb6fce435 100644 --- a/stdlib/ast.pyi +++ b/stdlib/ast.pyi @@ -14,12 +14,6 @@ from typing_extensions import Self, Unpack, deprecated if sys.version_info >= (3, 13): from _ast import PyCF_OPTIMIZED_AST as PyCF_OPTIMIZED_AST -# Alias used for fields that must always be valid identifiers -# A string `x` counts as a valid identifier if both the following are True -# (1) `x.isidentifier()` evaluates to `True` -# (2) `keyword.iskeyword(x)` evaluates to `False` -_Identifier: typing_extensions.TypeAlias = str - # Used for node end positions in constructor keyword arguments _EndPositionT = typing_extensions.TypeVar("_EndPositionT", int, int | None, default=int | None) @@ -111,7 +105,7 @@ class FunctionDef(stmt): __match_args__ = ("name", "args", "body", "decorator_list", "returns", "type_comment", "type_params") elif sys.version_info >= (3, 10): __match_args__ = ("name", "args", "body", "decorator_list", "returns", "type_comment") - name: _Identifier + name: str args: arguments body: list[stmt] decorator_list: list[expr] @@ -122,7 +116,7 @@ class FunctionDef(stmt): if sys.version_info >= (3, 13): def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt] = ..., decorator_list: list[expr] = ..., @@ -135,7 +129,7 @@ class FunctionDef(stmt): @overload def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt], decorator_list: list[expr], @@ -147,7 +141,7 @@ class FunctionDef(stmt): @overload def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt], decorator_list: list[expr], @@ -160,7 +154,7 @@ class FunctionDef(stmt): else: def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt], decorator_list: list[expr], @@ -173,7 +167,7 @@ class FunctionDef(stmt): def __replace__( self, *, - name: _Identifier = ..., + name: str = ..., args: arguments = ..., body: list[stmt] = ..., decorator_list: list[expr] = ..., @@ -187,7 +181,7 @@ class AsyncFunctionDef(stmt): __match_args__ = ("name", "args", "body", "decorator_list", "returns", "type_comment", "type_params") elif sys.version_info >= (3, 10): __match_args__ = ("name", "args", "body", "decorator_list", "returns", "type_comment") - name: _Identifier + name: str args: arguments body: list[stmt] decorator_list: list[expr] @@ -198,7 +192,7 @@ class AsyncFunctionDef(stmt): if sys.version_info >= (3, 13): def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt] = ..., decorator_list: list[expr] = ..., @@ -211,7 +205,7 @@ class AsyncFunctionDef(stmt): @overload def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt], decorator_list: list[expr], @@ -223,7 +217,7 @@ class AsyncFunctionDef(stmt): @overload def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt], decorator_list: list[expr], @@ -236,7 +230,7 @@ class AsyncFunctionDef(stmt): else: def __init__( self, - name: _Identifier, + name: str, args: arguments, body: list[stmt], decorator_list: list[expr], @@ -249,7 +243,7 @@ class AsyncFunctionDef(stmt): def __replace__( self, *, - name: _Identifier = ..., + name: str = ..., args: arguments = ..., body: list[stmt], decorator_list: list[expr], @@ -263,7 +257,7 @@ class ClassDef(stmt): __match_args__ = ("name", "bases", "keywords", "body", "decorator_list", "type_params") elif sys.version_info >= (3, 10): __match_args__ = ("name", "bases", "keywords", "body", "decorator_list") - name: _Identifier + name: str bases: list[expr] keywords: list[keyword] body: list[stmt] @@ -273,7 +267,7 @@ class ClassDef(stmt): if sys.version_info >= (3, 13): def __init__( self, - name: _Identifier, + name: str, bases: list[expr] = ..., keywords: list[keyword] = ..., body: list[stmt] = ..., @@ -284,7 +278,7 @@ class ClassDef(stmt): elif sys.version_info >= (3, 12): def __init__( self, - name: _Identifier, + name: str, bases: list[expr], keywords: list[keyword], body: list[stmt], @@ -295,7 +289,7 @@ class ClassDef(stmt): else: def __init__( self, - name: _Identifier, + name: str, bases: list[expr], keywords: list[keyword], body: list[stmt], @@ -307,7 +301,7 @@ class ClassDef(stmt): def __replace__( self, *, - name: _Identifier, + name: str, bases: list[expr], keywords: list[keyword], body: list[stmt], @@ -774,26 +768,26 @@ class ImportFrom(stmt): class Global(stmt): if sys.version_info >= (3, 10): __match_args__ = ("names",) - names: list[_Identifier] + names: list[str] if sys.version_info >= (3, 13): - def __init__(self, names: list[_Identifier] = ..., **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, names: list[str] = ..., **kwargs: Unpack[_Attributes]) -> None: ... else: - def __init__(self, names: list[_Identifier], **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, names: list[str], **kwargs: Unpack[_Attributes]) -> None: ... if sys.version_info >= (3, 14): - def __replace__(self, *, names: list[_Identifier], **kwargs: Unpack[_Attributes]) -> Self: ... + def __replace__(self, *, names: list[str], **kwargs: Unpack[_Attributes]) -> Self: ... class Nonlocal(stmt): if sys.version_info >= (3, 10): __match_args__ = ("names",) - names: list[_Identifier] + names: list[str] if sys.version_info >= (3, 13): - def __init__(self, names: list[_Identifier] = ..., **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, names: list[str] = ..., **kwargs: Unpack[_Attributes]) -> None: ... else: - def __init__(self, names: list[_Identifier], **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, names: list[str], **kwargs: Unpack[_Attributes]) -> None: ... if sys.version_info >= (3, 14): - def __replace__(self, *, names: list[_Identifier] = ..., **kwargs: Unpack[_Attributes]) -> Self: ... + def __replace__(self, *, names: list[str] = ..., **kwargs: Unpack[_Attributes]) -> Self: ... class Expr(stmt): if sys.version_info >= (3, 10): @@ -1084,13 +1078,13 @@ class Attribute(expr): if sys.version_info >= (3, 10): __match_args__ = ("value", "attr", "ctx") value: expr - attr: _Identifier + attr: str ctx: expr_context # Not present in Python < 3.13 if not passed to `__init__` - def __init__(self, value: expr, attr: _Identifier, ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, value: expr, attr: str, ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> None: ... if sys.version_info >= (3, 14): def __replace__( - self, *, value: expr = ..., attr: _Identifier = ..., ctx: expr_context = ..., **kwargs: Unpack[_Attributes] + self, *, value: expr = ..., attr: str = ..., ctx: expr_context = ..., **kwargs: Unpack[_Attributes] ) -> Self: ... class Subscript(expr): @@ -1119,12 +1113,12 @@ class Starred(expr): class Name(expr): if sys.version_info >= (3, 10): __match_args__ = ("id", "ctx") - id: _Identifier + id: str ctx: expr_context # Not present in Python < 3.13 if not passed to `__init__` - def __init__(self, id: _Identifier, ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, id: str, ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> None: ... if sys.version_info >= (3, 14): - def __replace__(self, *, id: _Identifier = ..., ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> Self: ... + def __replace__(self, *, id: str = ..., ctx: expr_context = ..., **kwargs: Unpack[_Attributes]) -> Self: ... class List(expr): if sys.version_info >= (3, 10): @@ -1272,30 +1266,23 @@ class ExceptHandler(excepthandler): if sys.version_info >= (3, 10): __match_args__ = ("type", "name", "body") type: expr | None - name: _Identifier | None + name: str | None body: list[stmt] if sys.version_info >= (3, 13): def __init__( - self, type: expr | None = None, name: _Identifier | None = None, body: list[stmt] = ..., **kwargs: Unpack[_Attributes] + self, type: expr | None = None, name: str | None = None, body: list[stmt] = ..., **kwargs: Unpack[_Attributes] ) -> None: ... else: @overload - def __init__( - self, type: expr | None, name: _Identifier | None, body: list[stmt], **kwargs: Unpack[_Attributes] - ) -> None: ... + def __init__(self, type: expr | None, name: str | None, body: list[stmt], **kwargs: Unpack[_Attributes]) -> None: ... @overload def __init__( - self, type: expr | None = None, name: _Identifier | None = None, *, body: list[stmt], **kwargs: Unpack[_Attributes] + self, type: expr | None = None, name: str | None = None, *, body: list[stmt], **kwargs: Unpack[_Attributes] ) -> None: ... if sys.version_info >= (3, 14): def __replace__( - self, - *, - type: expr | None = ..., - name: _Identifier | None = ..., - body: list[stmt] = ..., - **kwargs: Unpack[_Attributes], + self, *, type: expr | None = ..., name: str | None = ..., body: list[stmt] = ..., **kwargs: Unpack[_Attributes] ) -> Self: ... class arguments(AST): @@ -1376,21 +1363,16 @@ class arg(AST): end_col_offset: int | None if sys.version_info >= (3, 10): __match_args__ = ("arg", "annotation", "type_comment") - arg: _Identifier + arg: str annotation: expr | None type_comment: str | None def __init__( - self, arg: _Identifier, annotation: expr | None = None, type_comment: str | None = None, **kwargs: Unpack[_Attributes] + self, arg: str, annotation: expr | None = None, type_comment: str | None = None, **kwargs: Unpack[_Attributes] ) -> None: ... if sys.version_info >= (3, 14): def __replace__( - self, - *, - arg: _Identifier = ..., - annotation: expr | None = ..., - type_comment: str | None = ..., - **kwargs: Unpack[_Attributes], + self, *, arg: str = ..., annotation: expr | None = ..., type_comment: str | None = ..., **kwargs: Unpack[_Attributes] ) -> Self: ... class keyword(AST): @@ -1400,15 +1382,15 @@ class keyword(AST): end_col_offset: int | None if sys.version_info >= (3, 10): __match_args__ = ("arg", "value") - arg: _Identifier | None + arg: str | None value: expr @overload - def __init__(self, arg: _Identifier | None, value: expr, **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, arg: str | None, value: expr, **kwargs: Unpack[_Attributes]) -> None: ... @overload - def __init__(self, arg: _Identifier | None = None, *, value: expr, **kwargs: Unpack[_Attributes]) -> None: ... + def __init__(self, arg: str | None = None, *, value: expr, **kwargs: Unpack[_Attributes]) -> None: ... if sys.version_info >= (3, 14): - def __replace__(self, *, arg: _Identifier | None = ..., value: expr = ..., **kwargs: Unpack[_Attributes]) -> Self: ... + def __replace__(self, *, arg: str | None = ..., value: expr = ..., **kwargs: Unpack[_Attributes]) -> Self: ... class alias(AST): lineno: int @@ -1418,11 +1400,11 @@ class alias(AST): if sys.version_info >= (3, 10): __match_args__ = ("name", "asname") name: str - asname: _Identifier | None - def __init__(self, name: str, asname: _Identifier | None = None, **kwargs: Unpack[_Attributes]) -> None: ... + asname: str | None + def __init__(self, name: str, asname: str | None = None, **kwargs: Unpack[_Attributes]) -> None: ... if sys.version_info >= (3, 14): - def __replace__(self, *, name: str = ..., asname: _Identifier | None = ..., **kwargs: Unpack[_Attributes]) -> Self: ... + def __replace__(self, *, name: str = ..., asname: str | None = ..., **kwargs: Unpack[_Attributes]) -> Self: ... class withitem(AST): if sys.version_info >= (3, 10): @@ -1497,22 +1479,18 @@ if sys.version_info >= (3, 10): __match_args__ = ("keys", "patterns", "rest") keys: list[expr] patterns: list[pattern] - rest: _Identifier | None + rest: str | None if sys.version_info >= (3, 13): def __init__( self, keys: list[expr] = ..., patterns: list[pattern] = ..., - rest: _Identifier | None = None, + rest: str | None = None, **kwargs: Unpack[_Attributes[int]], ) -> None: ... else: def __init__( - self, - keys: list[expr], - patterns: list[pattern], - rest: _Identifier | None = None, - **kwargs: Unpack[_Attributes[int]], + self, keys: list[expr], patterns: list[pattern], rest: str | None = None, **kwargs: Unpack[_Attributes[int]] ) -> None: ... if sys.version_info >= (3, 14): @@ -1521,7 +1499,7 @@ if sys.version_info >= (3, 10): *, keys: list[expr] = ..., patterns: list[pattern] = ..., - rest: _Identifier | None = ..., + rest: str | None = ..., **kwargs: Unpack[_Attributes[int]], ) -> Self: ... @@ -1529,14 +1507,14 @@ if sys.version_info >= (3, 10): __match_args__ = ("cls", "patterns", "kwd_attrs", "kwd_patterns") cls: expr patterns: list[pattern] - kwd_attrs: list[_Identifier] + kwd_attrs: list[str] kwd_patterns: list[pattern] if sys.version_info >= (3, 13): def __init__( self, cls: expr, patterns: list[pattern] = ..., - kwd_attrs: list[_Identifier] = ..., + kwd_attrs: list[str] = ..., kwd_patterns: list[pattern] = ..., **kwargs: Unpack[_Attributes[int]], ) -> None: ... @@ -1545,7 +1523,7 @@ if sys.version_info >= (3, 10): self, cls: expr, patterns: list[pattern], - kwd_attrs: list[_Identifier], + kwd_attrs: list[str], kwd_patterns: list[pattern], **kwargs: Unpack[_Attributes[int]], ) -> None: ... @@ -1556,30 +1534,30 @@ if sys.version_info >= (3, 10): *, cls: expr = ..., patterns: list[pattern] = ..., - kwd_attrs: list[_Identifier] = ..., + kwd_attrs: list[str] = ..., kwd_patterns: list[pattern] = ..., **kwargs: Unpack[_Attributes[int]], ) -> Self: ... class MatchStar(pattern): __match_args__ = ("name",) - name: _Identifier | None - def __init__(self, name: _Identifier | None, **kwargs: Unpack[_Attributes[int]]) -> None: ... + name: str | None + def __init__(self, name: str | None, **kwargs: Unpack[_Attributes[int]]) -> None: ... if sys.version_info >= (3, 14): - def __replace__(self, *, name: _Identifier | None = ..., **kwargs: Unpack[_Attributes[int]]) -> Self: ... + def __replace__(self, *, name: str | None = ..., **kwargs: Unpack[_Attributes[int]]) -> Self: ... class MatchAs(pattern): __match_args__ = ("pattern", "name") pattern: _Pattern | None - name: _Identifier | None + name: str | None def __init__( - self, pattern: _Pattern | None = None, name: _Identifier | None = None, **kwargs: Unpack[_Attributes[int]] + self, pattern: _Pattern | None = None, name: str | None = None, **kwargs: Unpack[_Attributes[int]] ) -> None: ... if sys.version_info >= (3, 14): def __replace__( - self, *, pattern: _Pattern | None = ..., name: _Identifier | None = ..., **kwargs: Unpack[_Attributes[int]] + self, *, pattern: _Pattern | None = ..., name: str | None = ..., **kwargs: Unpack[_Attributes[int]] ) -> Self: ... class MatchOr(pattern): @@ -1621,25 +1599,21 @@ if sys.version_info >= (3, 12): __match_args__ = ("name", "bound", "default_value") else: __match_args__ = ("name", "bound") - name: _Identifier + name: str bound: expr | None if sys.version_info >= (3, 13): default_value: expr | None def __init__( - self, - name: _Identifier, - bound: expr | None = None, - default_value: expr | None = None, - **kwargs: Unpack[_Attributes[int]], + self, name: str, bound: expr | None = None, default_value: expr | None = None, **kwargs: Unpack[_Attributes[int]] ) -> None: ... else: - def __init__(self, name: _Identifier, bound: expr | None = None, **kwargs: Unpack[_Attributes[int]]) -> None: ... + def __init__(self, name: str, bound: expr | None = None, **kwargs: Unpack[_Attributes[int]]) -> None: ... if sys.version_info >= (3, 14): def __replace__( self, *, - name: _Identifier = ..., + name: str = ..., bound: expr | None = ..., default_value: expr | None = ..., **kwargs: Unpack[_Attributes[int]], @@ -1650,18 +1624,16 @@ if sys.version_info >= (3, 12): __match_args__ = ("name", "default_value") else: __match_args__ = ("name",) - name: _Identifier + name: str if sys.version_info >= (3, 13): default_value: expr | None - def __init__( - self, name: _Identifier, default_value: expr | None = None, **kwargs: Unpack[_Attributes[int]] - ) -> None: ... + def __init__(self, name: str, default_value: expr | None = None, **kwargs: Unpack[_Attributes[int]]) -> None: ... else: - def __init__(self, name: _Identifier, **kwargs: Unpack[_Attributes[int]]) -> None: ... + def __init__(self, name: str, **kwargs: Unpack[_Attributes[int]]) -> None: ... if sys.version_info >= (3, 14): def __replace__( - self, *, name: _Identifier = ..., default_value: expr | None = ..., **kwargs: Unpack[_Attributes[int]] + self, *, name: str = ..., default_value: expr | None = ..., **kwargs: Unpack[_Attributes[int]] ) -> Self: ... class TypeVarTuple(type_param): @@ -1669,18 +1641,16 @@ if sys.version_info >= (3, 12): __match_args__ = ("name", "default_value") else: __match_args__ = ("name",) - name: _Identifier + name: str if sys.version_info >= (3, 13): default_value: expr | None - def __init__( - self, name: _Identifier, default_value: expr | None = None, **kwargs: Unpack[_Attributes[int]] - ) -> None: ... + def __init__(self, name: str, default_value: expr | None = None, **kwargs: Unpack[_Attributes[int]]) -> None: ... else: - def __init__(self, name: _Identifier, **kwargs: Unpack[_Attributes[int]]) -> None: ... + def __init__(self, name: str, **kwargs: Unpack[_Attributes[int]]) -> None: ... if sys.version_info >= (3, 14): def __replace__( - self, *, name: _Identifier = ..., default_value: expr | None = ..., **kwargs: Unpack[_Attributes[int]] + self, *, name: str = ..., default_value: expr | None = ..., **kwargs: Unpack[_Attributes[int]] ) -> Self: ... class _ABC(type):