3 from typing import Any, ClassVar
4 from typing_extensions import Literal
7 if sys.version_info >= (3, 8):
8 PyCF_TYPE_COMMENTS: int
9 PyCF_ALLOW_TOP_LEVEL_AWAIT: int
14 _attributes: ClassVar[typing.Tuple[str, ...]]
15 _fields: ClassVar[typing.Tuple[str, ...]]
16 def __init__(self, *args: Any, **kwargs: Any) -> None: ...
17 # TODO: Not all nodes have all of the following attributes
20 if sys.version_info >= (3, 8):
21 end_lineno: int | None
22 end_col_offset: int | None
23 type_comment: str | None
27 if sys.version_info >= (3, 8):
28 class type_ignore(AST): ...
29 class TypeIgnore(type_ignore):
31 class FunctionType(mod):
37 if sys.version_info >= (3, 8):
38 type_ignores: list[TypeIgnore]
40 class Interactive(mod):
43 class Expression(mod):
48 class FunctionDef(stmt):
52 decorator_list: list[expr]
55 class AsyncFunctionDef(stmt):
59 decorator_list: list[expr]
65 keywords: list[keyword]
67 decorator_list: list[expr]
79 class AugAssign(stmt):
84 class AnnAssign(stmt):
113 items: list[withitem]
116 class AsyncWith(stmt):
117 items: list[withitem]
126 handlers: list[ExceptHandler]
128 finalbody: list[stmt]
137 class ImportFrom(stmt):
138 module: _identifier | None
143 names: list[_identifier]
145 class Nonlocal(stmt):
146 names: list[_identifier]
151 class Pass(stmt): ...
152 class Break(stmt): ...
153 class Continue(stmt): ...
179 keys: list[expr | None]
185 class ListComp(expr):
187 generators: list[comprehension]
191 generators: list[comprehension]
193 class DictComp(expr):
196 generators: list[comprehension]
198 class GeneratorExp(expr):
200 generators: list[comprehension]
208 class YieldFrom(expr):
214 comparators: list[expr]
219 keywords: list[keyword]
221 class FormattedValue(expr):
223 conversion: int | None
224 format_spec: expr | None
226 class JoinedStr(expr):
229 if sys.version_info < (3, 8):
230 class Num(expr): # Deprecated in 3.8; use Constant
232 class Str(expr): # Deprecated in 3.8; use Constant
234 class Bytes(expr): # Deprecated in 3.8; use Constant
236 class NameConstant(expr): # Deprecated in 3.8; use Constant
238 class Ellipsis(expr): ... # Deprecated in 3.8; use Constant
240 class Constant(expr):
241 value: Any # None, str, bytes, bool, int, float, complex, Ellipsis
243 # Aliases for value, for backwards compatibility
247 if sys.version_info >= (3, 8):
248 class NamedExpr(expr):
252 class Attribute(expr):
257 if sys.version_info >= (3, 9):
260 class slice(AST): ...
263 class Slice(_SliceT):
268 if sys.version_info < (3, 9):
269 class ExtSlice(slice):
274 class Subscript(expr):
295 class expr_context(AST): ...
297 if sys.version_info < (3, 9):
298 class AugLoad(expr_context): ...
299 class AugStore(expr_context): ...
300 class Param(expr_context): ...
304 class Del(expr_context): ...
305 class Load(expr_context): ...
306 class Store(expr_context): ...
307 class boolop(AST): ...
308 class And(boolop): ...
309 class Or(boolop): ...
310 class operator(AST): ...
311 class Add(operator): ...
312 class BitAnd(operator): ...
313 class BitOr(operator): ...
314 class BitXor(operator): ...
315 class Div(operator): ...
316 class FloorDiv(operator): ...
317 class LShift(operator): ...
318 class Mod(operator): ...
319 class Mult(operator): ...
320 class MatMult(operator): ...
321 class Pow(operator): ...
322 class RShift(operator): ...
323 class Sub(operator): ...
324 class unaryop(AST): ...
325 class Invert(unaryop): ...
326 class Not(unaryop): ...
327 class UAdd(unaryop): ...
328 class USub(unaryop): ...
329 class cmpop(AST): ...
332 class GtE(cmpop): ...
335 class IsNot(cmpop): ...
337 class LtE(cmpop): ...
338 class NotEq(cmpop): ...
339 class NotIn(cmpop): ...
341 class comprehension(AST):
347 class excepthandler(AST): ...
349 class ExceptHandler(excepthandler):
351 name: _identifier | None
354 class arguments(AST):
355 if sys.version_info >= (3, 8):
356 posonlyargs: list[arg]
359 kwonlyargs: list[arg]
360 kw_defaults: list[expr | None]
366 annotation: expr | None
369 arg: _identifier | None
374 asname: _identifier | None
378 optional_vars: expr | None
380 if sys.version_info >= (3, 10):
383 cases: list[match_case]
384 class pattern(AST): ...
385 # Without the alias, Pyright complains variables named pattern are recursively defined
387 class match_case(AST):
391 class MatchValue(pattern):
393 class MatchSingleton(pattern):
394 value: Literal[True, False, None]
395 class MatchSequence(pattern):
396 patterns: list[pattern]
397 class MatchStar(pattern):
398 name: _identifier | None
399 class MatchMapping(pattern):
401 patterns: list[pattern]
402 rest: _identifier | None
403 class MatchClass(pattern):
405 patterns: list[pattern]
406 kwd_attrs: list[_identifier]
407 kwd_patterns: list[pattern]
408 class MatchAs(pattern):
409 pattern: _pattern | None
410 name: _identifier | None
411 class MatchOr(pattern):
412 patterns: list[pattern]