jaclang 0.7.19__py3-none-any.whl → 0.7.20__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of jaclang might be problematic. Click here for more details.

Files changed (91) hide show
  1. jaclang/compiler/absyntree.py +1 -1
  2. jaclang/compiler/parser.py +1 -1
  3. jaclang/compiler/passes/main/__init__.py +1 -1
  4. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +50 -13
  5. jaclang/compiler/passes/main/import_pass.py +27 -0
  6. jaclang/compiler/passes/main/sym_tab_build_pass.py +0 -18
  7. jaclang/compiler/passes/main/tests/fixtures/mod_type_assign.jac +7 -0
  8. jaclang/compiler/passes/main/tests/test_type_check_pass.py +1 -1
  9. jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +23 -1
  10. jaclang/compiler/passes/tool/jac_formatter_pass.py +10 -0
  11. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac +3 -1
  12. jaclang/compiler/semtable.py +4 -4
  13. jaclang/compiler/symtable.py +5 -0
  14. jaclang/langserve/engine.py +64 -6
  15. jaclang/langserve/tests/test_server.py +1 -1
  16. jaclang/langserve/utils.py +0 -113
  17. jaclang/plugin/tests/test_jaseci.py +23 -4
  18. jaclang/runtimelib/importer.py +2 -0
  19. jaclang/runtimelib/memory.py +1 -1
  20. jaclang/stubs/jaclang/__init__.pyi +5 -0
  21. jaclang/stubs/jaclang/cli/__init__.pyi +0 -0
  22. jaclang/stubs/jaclang/cli/cli.pyi +58 -0
  23. jaclang/stubs/jaclang/cli/cmdreg.pyi +32 -0
  24. jaclang/stubs/jaclang/compiler/__init__.pyi +6 -0
  25. jaclang/stubs/jaclang/compiler/absyntree.pyi +1248 -0
  26. jaclang/stubs/jaclang/compiler/codeloc.pyi +45 -0
  27. jaclang/stubs/jaclang/compiler/compile.pyi +29 -0
  28. jaclang/stubs/jaclang/compiler/constant.pyi +287 -0
  29. jaclang/stubs/jaclang/compiler/generated/__init__.pyi +0 -0
  30. jaclang/stubs/jaclang/compiler/generated/jac_parser.pyi +898 -0
  31. jaclang/stubs/jaclang/compiler/parser.pyi +266 -0
  32. jaclang/stubs/jaclang/compiler/passes/__init__.pyi +3 -0
  33. jaclang/stubs/jaclang/compiler/passes/ir_pass.pyi +40 -0
  34. jaclang/stubs/jaclang/compiler/passes/main/__init__.pyi +27 -0
  35. jaclang/stubs/jaclang/compiler/passes/main/access_modifier_pass.pyi +23 -0
  36. jaclang/stubs/jaclang/compiler/passes/main/def_impl_match_pass.pyi +12 -0
  37. jaclang/stubs/jaclang/compiler/passes/main/def_use_pass.pyi +31 -0
  38. jaclang/stubs/jaclang/compiler/passes/main/fuse_typeinfo_pass.pyi +66 -0
  39. jaclang/stubs/jaclang/compiler/passes/main/import_pass.pyi +34 -0
  40. jaclang/stubs/jaclang/compiler/passes/main/pyast_gen_pass.pyi +178 -0
  41. jaclang/stubs/jaclang/compiler/passes/main/pyast_load_pass.pyi +135 -0
  42. jaclang/stubs/jaclang/compiler/passes/main/pybc_gen_pass.pyi +6 -0
  43. jaclang/stubs/jaclang/compiler/passes/main/pyjac_ast_link_pass.pyi +22 -0
  44. jaclang/stubs/jaclang/compiler/passes/main/pyout_pass.pyi +9 -0
  45. jaclang/stubs/jaclang/compiler/passes/main/registry_pass.pyi +15 -0
  46. jaclang/stubs/jaclang/compiler/passes/main/schedules.pyi +19 -0
  47. jaclang/stubs/jaclang/compiler/passes/main/sub_node_tab_pass.pyi +6 -0
  48. jaclang/stubs/jaclang/compiler/passes/main/sym_tab_build_pass.pyi +147 -0
  49. jaclang/stubs/jaclang/compiler/passes/main/type_check_pass.pyi +11 -0
  50. jaclang/stubs/jaclang/compiler/passes/tool/__init__.pyi +4 -0
  51. jaclang/stubs/jaclang/compiler/passes/tool/fuse_comments_pass.pyi +12 -0
  52. jaclang/stubs/jaclang/compiler/passes/tool/jac_formatter_pass.pyi +134 -0
  53. jaclang/stubs/jaclang/compiler/passes/tool/schedules.pyi +11 -0
  54. jaclang/stubs/jaclang/compiler/passes/transform.pyi +28 -0
  55. jaclang/stubs/jaclang/compiler/passes/utils/__init__.pyi +0 -0
  56. jaclang/stubs/jaclang/compiler/passes/utils/mypy_ast_build.pyi +151 -0
  57. jaclang/stubs/jaclang/compiler/semtable.pyi +35 -0
  58. jaclang/stubs/jaclang/compiler/symtable.pyi +65 -0
  59. jaclang/stubs/jaclang/langserve/__init__.pyi +0 -0
  60. jaclang/stubs/jaclang/langserve/engine.pyi +73 -0
  61. jaclang/stubs/jaclang/langserve/sem_manager.pyi +89 -0
  62. jaclang/stubs/jaclang/langserve/server.pyi +38 -0
  63. jaclang/stubs/jaclang/langserve/utils.pyi +55 -0
  64. jaclang/stubs/jaclang/plugin/__init__.pyi +3 -0
  65. jaclang/stubs/jaclang/plugin/builtin.pyi +12 -0
  66. jaclang/stubs/jaclang/plugin/default.pyi +202 -0
  67. jaclang/stubs/jaclang/plugin/feature.pyi +176 -0
  68. jaclang/stubs/jaclang/plugin/spec.pyi +181 -0
  69. jaclang/stubs/jaclang/runtimelib/__init__.pyi +0 -0
  70. jaclang/stubs/jaclang/runtimelib/architype.pyi +133 -0
  71. jaclang/stubs/jaclang/runtimelib/constructs.pyi +41 -0
  72. jaclang/stubs/jaclang/runtimelib/context.pyi +48 -0
  73. jaclang/stubs/jaclang/runtimelib/importer.pyi +104 -0
  74. jaclang/stubs/jaclang/runtimelib/machine.pyi +6 -0
  75. jaclang/stubs/jaclang/runtimelib/memory.pyi +26 -0
  76. jaclang/stubs/jaclang/runtimelib/utils.pyi +35 -0
  77. jaclang/stubs/jaclang/settings.pyi +35 -0
  78. jaclang/stubs/jaclang/utils/__init__.pyi +0 -0
  79. jaclang/stubs/jaclang/utils/helpers.pyi +18 -0
  80. jaclang/stubs/jaclang/utils/lang_tools.pyi +43 -0
  81. jaclang/stubs/jaclang/utils/log.pyi +3 -0
  82. jaclang/stubs/jaclang/utils/treeprinter.pyi +47 -0
  83. jaclang/tests/fixtures/builtins_test.jac +16 -0
  84. jaclang/tests/fixtures/match_multi_ex.jac +12 -0
  85. jaclang/tests/test_cli.py +29 -2
  86. jaclang/tests/test_language.py +10 -0
  87. jaclang/utils/treeprinter.py +1 -1
  88. {jaclang-0.7.19.dist-info → jaclang-0.7.20.dist-info}/METADATA +1 -1
  89. {jaclang-0.7.19.dist-info → jaclang-0.7.20.dist-info}/RECORD +91 -25
  90. {jaclang-0.7.19.dist-info → jaclang-0.7.20.dist-info}/WHEEL +0 -0
  91. {jaclang-0.7.19.dist-info → jaclang-0.7.20.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,1248 @@
1
+ import ast as ast3
2
+ from _typeshed import Incomplete
3
+ from jaclang.compiler import TOKEN_MAP as TOKEN_MAP
4
+ from jaclang.compiler.codeloc import (
5
+ CodeGenTarget as CodeGenTarget,
6
+ CodeLocInfo as CodeLocInfo,
7
+ )
8
+ from jaclang.compiler.constant import (
9
+ DELIM_MAP as DELIM_MAP,
10
+ EdgeDir as EdgeDir,
11
+ JacSemTokenModifier as SemTokMod,
12
+ JacSemTokenType as SemTokType,
13
+ SymbolAccess as SymbolAccess,
14
+ SymbolType as SymbolType,
15
+ Tokens as Tok,
16
+ )
17
+ from jaclang.compiler.semtable import SemRegistry as SemRegistry
18
+ from jaclang.compiler.symtable import Symbol as Symbol, SymbolTable as SymbolTable
19
+ from jaclang.utils.treeprinter import (
20
+ dotgen_ast_tree as dotgen_ast_tree,
21
+ print_ast_tree as print_ast_tree,
22
+ )
23
+ from types import EllipsisType
24
+ from typing import Any, Callable, Generic, Sequence, TypeVar
25
+
26
+ class AstNode:
27
+ parent: Incomplete
28
+ kid: Incomplete
29
+ gen: Incomplete
30
+ meta: Incomplete
31
+ loc: Incomplete
32
+ def __init__(self, kid: Sequence[AstNode]) -> None: ...
33
+ @property
34
+ def sym_tab(self) -> SymbolTable: ...
35
+ @sym_tab.setter
36
+ def sym_tab(self, sym_tab: SymbolTable) -> None: ...
37
+ def add_kids_left(
38
+ self, nodes: Sequence[AstNode], pos_update: bool = True
39
+ ) -> AstNode: ...
40
+ def add_kids_right(
41
+ self, nodes: Sequence[AstNode], pos_update: bool = True
42
+ ) -> AstNode: ...
43
+ def insert_kids_at_pos(
44
+ self, nodes: Sequence[AstNode], pos: int, pos_update: bool = True
45
+ ) -> AstNode: ...
46
+ def set_kids(self, nodes: Sequence[AstNode]) -> AstNode: ...
47
+ def set_parent(self, parent: AstNode) -> AstNode: ...
48
+ def resolve_tok_range(self) -> tuple[Token, Token]: ...
49
+ def gen_token(self, name: Tok, value: str | None = None) -> Token: ...
50
+ def get_all_sub_nodes(self, typ: type[T], brute_force: bool = True) -> list[T]: ...
51
+ def find_parent_of_type(self, typ: type[T]) -> T | None: ...
52
+ def parent_of_type(self, typ: type[T]) -> T: ...
53
+ def format(self) -> str: ...
54
+ def to_dict(self) -> dict[str, str]: ...
55
+ def pp(self, depth: int | None = None) -> str: ...
56
+ def dotgen(self) -> str: ...
57
+ def flatten(self) -> list[AstNode]: ...
58
+ def normalize(self, deep: bool = False) -> bool: ...
59
+ def unparse(self) -> str: ...
60
+
61
+ class AstSymbolNode(AstNode):
62
+ name_spec: Incomplete
63
+ def __init__(
64
+ self, sym_name: str, name_spec: NameAtom, sym_category: SymbolType
65
+ ) -> None: ...
66
+ @property
67
+ def sym(self) -> Symbol | None: ...
68
+ @property
69
+ def sym_name(self) -> str: ...
70
+ @property
71
+ def sym_category(self) -> SymbolType: ...
72
+ @property
73
+ def py_ctx_func(self) -> type[ast3.AST]: ...
74
+ @property
75
+ def sym_type(self) -> str: ...
76
+ @property
77
+ def type_sym_tab(self) -> SymbolTable | None: ...
78
+
79
+ class AstSymbolStubNode(AstSymbolNode):
80
+ def __init__(self, sym_type: SymbolType) -> None: ...
81
+
82
+ class AstAccessNode(AstNode):
83
+ access: Incomplete
84
+ def __init__(self, access: SubTag[Token] | None) -> None: ...
85
+ @property
86
+ def access_type(self) -> SymbolAccess: ...
87
+
88
+ T = TypeVar("T", bound=AstNode)
89
+
90
+ class AstDocNode(AstNode):
91
+ doc: Incomplete
92
+ def __init__(self, doc: String | None) -> None: ...
93
+
94
+ class AstSemStrNode(AstNode):
95
+ semstr: Incomplete
96
+ def __init__(self, semstr: String | None) -> None: ...
97
+
98
+ class AstAsyncNode(AstNode):
99
+ is_async: Incomplete
100
+ def __init__(self, is_async: bool) -> None: ...
101
+
102
+ class AstElseBodyNode(AstNode):
103
+ else_body: Incomplete
104
+ def __init__(self, else_body: ElseStmt | ElseIf | None) -> None: ...
105
+
106
+ class AstTypedVarNode(AstNode):
107
+ type_tag: Incomplete
108
+ def __init__(self, type_tag: SubTag[Expr] | None) -> None: ...
109
+
110
+ class WalkerStmtOnlyNode(AstNode):
111
+ from_walker: bool
112
+ def __init__(self) -> None: ...
113
+
114
+ class Expr(AstNode): ...
115
+ class AtomExpr(Expr, AstSymbolStubNode): ...
116
+ class ElementStmt(AstDocNode): ...
117
+ class ArchBlockStmt(AstNode): ...
118
+ class EnumBlockStmt(AstNode): ...
119
+ class CodeBlockStmt(AstNode): ...
120
+
121
+ class AstImplOnlyNode(CodeBlockStmt, ElementStmt, AstSymbolNode):
122
+ target: Incomplete
123
+ body: Incomplete
124
+ decl_link: Incomplete
125
+ def __init__(
126
+ self, target: ArchRefChain, body: SubNodeList, decl_link: AstNode | None
127
+ ) -> None: ...
128
+ @property
129
+ def sym_tab(self) -> SymbolTable: ...
130
+ @sym_tab.setter
131
+ def sym_tab(self, sym_tab: SymbolTable) -> None: ...
132
+ def create_impl_name_node(self) -> Name: ...
133
+
134
+ class AstImplNeedingNode(AstSymbolNode, Generic[T]):
135
+ body: Incomplete
136
+ def __init__(self, body: T | None) -> None: ...
137
+ @property
138
+ def needs_impl(self) -> bool: ...
139
+
140
+ class NameAtom(AtomExpr, EnumBlockStmt):
141
+ name_of: Incomplete
142
+ def __init__(self) -> None: ...
143
+ @property
144
+ def sym(self) -> Symbol | None: ...
145
+ @sym.setter
146
+ def sym(self, sym: Symbol) -> None: ...
147
+ @property
148
+ def sym_name(self) -> str: ...
149
+ @property
150
+ def sym_category(self) -> SymbolType: ...
151
+ @property
152
+ def clean_type(self) -> str: ...
153
+ @property
154
+ def py_ctx_func(self) -> type[ast3.AST]: ...
155
+ @py_ctx_func.setter
156
+ def py_ctx_func(self, py_ctx_func: type[ast3.AST]) -> None: ...
157
+ @property
158
+ def sym_type(self) -> str: ...
159
+ @sym_type.setter
160
+ def sym_type(self, sym_type: str) -> None: ...
161
+ @property
162
+ def type_sym_tab(self) -> SymbolTable | None: ...
163
+ @type_sym_tab.setter
164
+ def type_sym_tab(self, type_sym_tab: SymbolTable) -> None: ...
165
+ @property
166
+ def sem_token(self) -> tuple[SemTokType, SemTokMod] | None: ...
167
+
168
+ class ArchSpec(ElementStmt, CodeBlockStmt, AstSymbolNode, AstDocNode, AstSemStrNode):
169
+ decorators: Incomplete
170
+ def __init__(self, decorators: SubNodeList[Expr] | None = None) -> None: ...
171
+
172
+ class MatchPattern(AstNode): ...
173
+
174
+ class SubTag(AstNode, Generic[T]):
175
+ tag: Incomplete
176
+ def __init__(self, tag: T, kid: Sequence[AstNode]) -> None: ...
177
+ def normalize(self, deep: bool = False) -> bool: ...
178
+
179
+ class SubNodeList(AstNode, Generic[T]):
180
+ items: Incomplete
181
+ delim: Incomplete
182
+ left_enc: Incomplete
183
+ right_enc: Incomplete
184
+ def __init__(
185
+ self,
186
+ items: list[T],
187
+ delim: Tok | None,
188
+ kid: Sequence[AstNode],
189
+ left_enc: Token | None = None,
190
+ right_enc: Token | None = None,
191
+ ) -> None: ...
192
+ def normalize(self, deep: bool = False) -> bool: ...
193
+
194
+ class Module(AstDocNode):
195
+ name: Incomplete
196
+ source: Incomplete
197
+ body: Incomplete
198
+ is_imported: Incomplete
199
+ stub_only: Incomplete
200
+ impl_mod: Incomplete
201
+ test_mod: Incomplete
202
+ mod_deps: Incomplete
203
+ registry: Incomplete
204
+ terminals: Incomplete
205
+ def __init__(
206
+ self,
207
+ name: str,
208
+ source: JacSource,
209
+ doc: String | None,
210
+ body: Sequence[ElementStmt | String | EmptyToken],
211
+ is_imported: bool,
212
+ terminals: list[Token],
213
+ kid: Sequence[AstNode],
214
+ stub_only: bool = False,
215
+ registry: SemRegistry | None = None,
216
+ ) -> None: ...
217
+ @property
218
+ def annexable_by(self) -> str | None: ...
219
+ def normalize(self, deep: bool = False) -> bool: ...
220
+ def unparse(self) -> str: ...
221
+
222
+ class GlobalVars(ElementStmt, AstAccessNode):
223
+ assignments: Incomplete
224
+ is_frozen: Incomplete
225
+ def __init__(
226
+ self,
227
+ access: SubTag[Token] | None,
228
+ assignments: SubNodeList[Assignment],
229
+ is_frozen: bool,
230
+ kid: Sequence[AstNode],
231
+ doc: String | None = None,
232
+ ) -> None: ...
233
+ def normalize(self, deep: bool = False) -> bool: ...
234
+
235
+ class Test(AstSymbolNode, ElementStmt):
236
+ TEST_COUNT: int
237
+ name: Incomplete
238
+ body: Incomplete
239
+ def __init__(
240
+ self,
241
+ name: Name | Token,
242
+ body: SubNodeList[CodeBlockStmt],
243
+ kid: Sequence[AstNode],
244
+ doc: String | None = None,
245
+ ) -> None: ...
246
+ def normalize(self, deep: bool = False) -> bool: ...
247
+
248
+ class ModuleCode(ElementStmt, ArchBlockStmt, EnumBlockStmt):
249
+ name: Incomplete
250
+ body: Incomplete
251
+ def __init__(
252
+ self,
253
+ name: SubTag[Name] | None,
254
+ body: SubNodeList[CodeBlockStmt],
255
+ kid: Sequence[AstNode],
256
+ doc: String | None = None,
257
+ ) -> None: ...
258
+ def normalize(self, deep: bool = False) -> bool: ...
259
+
260
+ class PyInlineCode(ElementStmt, ArchBlockStmt, EnumBlockStmt, CodeBlockStmt):
261
+ code: Incomplete
262
+ def __init__(
263
+ self, code: Token, kid: Sequence[AstNode], doc: String | None = None
264
+ ) -> None: ...
265
+ def normalize(self, deep: bool = False) -> bool: ...
266
+
267
+ class Import(ElementStmt, CodeBlockStmt):
268
+ hint: Incomplete
269
+ from_loc: Incomplete
270
+ items: Incomplete
271
+ is_absorb: Incomplete
272
+ def __init__(
273
+ self,
274
+ hint: SubTag[Name] | None,
275
+ from_loc: ModulePath | None,
276
+ items: SubNodeList[ModuleItem] | SubNodeList[ModulePath],
277
+ is_absorb: bool,
278
+ kid: Sequence[AstNode],
279
+ doc: String | None = None,
280
+ ) -> None: ...
281
+ @property
282
+ def is_py(self) -> bool: ...
283
+ @property
284
+ def is_jac(self) -> bool: ...
285
+ def normalize(self, deep: bool = False) -> bool: ...
286
+
287
+ class ModulePath(AstSymbolNode):
288
+ path: Incomplete
289
+ level: Incomplete
290
+ alias: Incomplete
291
+ sub_module: Incomplete
292
+ def __init__(
293
+ self,
294
+ path: list[Name] | None,
295
+ level: int,
296
+ alias: Name | None,
297
+ kid: Sequence[AstNode],
298
+ ) -> None: ...
299
+ @property
300
+ def path_str(self) -> str: ...
301
+ def resolve_relative_path(self, target_item: str | None = None) -> str: ...
302
+ def normalize(self, deep: bool = False) -> bool: ...
303
+
304
+ class ModuleItem(AstSymbolNode):
305
+ name: Incomplete
306
+ alias: Incomplete
307
+ sub_module: Incomplete
308
+ def __init__(
309
+ self, name: Name, alias: Name | None, kid: Sequence[AstNode]
310
+ ) -> None: ...
311
+ @property
312
+ def from_parent(self) -> Import: ...
313
+ @property
314
+ def from_mod_path(self) -> ModulePath: ...
315
+ def normalize(self, deep: bool = False) -> bool: ...
316
+
317
+ class Architype(ArchSpec, AstAccessNode, ArchBlockStmt, AstImplNeedingNode):
318
+ name: Incomplete
319
+ arch_type: Incomplete
320
+ base_classes: Incomplete
321
+ def __init__(
322
+ self,
323
+ name: Name,
324
+ arch_type: Token,
325
+ access: SubTag[Token] | None,
326
+ base_classes: SubNodeList[Expr] | None,
327
+ body: SubNodeList[ArchBlockStmt] | ArchDef | None,
328
+ kid: Sequence[AstNode],
329
+ doc: String | None = None,
330
+ semstr: String | None = None,
331
+ decorators: SubNodeList[Expr] | None = None,
332
+ ) -> None: ...
333
+ @property
334
+ def is_abstract(self) -> bool: ...
335
+ def normalize(self, deep: bool = False) -> bool: ...
336
+
337
+ class ArchDef(AstImplOnlyNode):
338
+ def __init__(
339
+ self,
340
+ target: ArchRefChain,
341
+ body: SubNodeList[ArchBlockStmt],
342
+ kid: Sequence[AstNode],
343
+ doc: String | None = None,
344
+ decl_link: Architype | None = None,
345
+ ) -> None: ...
346
+ def normalize(self, deep: bool = False) -> bool: ...
347
+
348
+ class Enum(ArchSpec, AstAccessNode, AstImplNeedingNode, ArchBlockStmt):
349
+ name: Incomplete
350
+ base_classes: Incomplete
351
+ def __init__(
352
+ self,
353
+ name: Name,
354
+ access: SubTag[Token] | None,
355
+ base_classes: SubNodeList[Expr] | None,
356
+ body: SubNodeList[EnumBlockStmt] | EnumDef | None,
357
+ kid: Sequence[AstNode],
358
+ doc: String | None = None,
359
+ semstr: String | None = None,
360
+ decorators: SubNodeList[Expr] | None = None,
361
+ ) -> None: ...
362
+ def normalize(self, deep: bool = False) -> bool: ...
363
+
364
+ class EnumDef(AstImplOnlyNode):
365
+ def __init__(
366
+ self,
367
+ target: ArchRefChain,
368
+ body: SubNodeList[EnumBlockStmt],
369
+ kid: Sequence[AstNode],
370
+ doc: String | None = None,
371
+ decorators: SubNodeList[Expr] | None = None,
372
+ decl_link: Enum | None = None,
373
+ ) -> None: ...
374
+ def normalize(self, deep: bool = False) -> bool: ...
375
+
376
+ class Ability(
377
+ AstAccessNode,
378
+ ElementStmt,
379
+ AstAsyncNode,
380
+ ArchBlockStmt,
381
+ EnumBlockStmt,
382
+ CodeBlockStmt,
383
+ AstSemStrNode,
384
+ AstImplNeedingNode,
385
+ ):
386
+ name_ref: Incomplete
387
+ is_override: Incomplete
388
+ is_static: Incomplete
389
+ is_abstract: Incomplete
390
+ decorators: Incomplete
391
+ signature: Incomplete
392
+ def __init__(
393
+ self,
394
+ name_ref: NameAtom,
395
+ is_async: bool,
396
+ is_override: bool,
397
+ is_static: bool,
398
+ is_abstract: bool,
399
+ access: SubTag[Token] | None,
400
+ signature: FuncSignature | EventSignature,
401
+ body: SubNodeList[CodeBlockStmt] | AbilityDef | FuncCall | None,
402
+ kid: Sequence[AstNode],
403
+ semstr: String | None = None,
404
+ doc: String | None = None,
405
+ decorators: SubNodeList[Expr] | None = None,
406
+ ) -> None: ...
407
+ @property
408
+ def is_method(self) -> bool: ...
409
+ @property
410
+ def owner_method(self) -> Architype | Enum | None: ...
411
+ @property
412
+ def is_genai_ability(self) -> bool: ...
413
+ def py_resolve_name(self) -> str: ...
414
+ def normalize(self, deep: bool = False) -> bool: ...
415
+
416
+ class AbilityDef(AstImplOnlyNode):
417
+ signature: Incomplete
418
+ decorators: Incomplete
419
+ def __init__(
420
+ self,
421
+ target: ArchRefChain,
422
+ signature: FuncSignature | EventSignature,
423
+ body: SubNodeList[CodeBlockStmt],
424
+ kid: Sequence[AstNode],
425
+ doc: String | None = None,
426
+ decorators: SubNodeList[Expr] | None = None,
427
+ decl_link: Ability | None = None,
428
+ ) -> None: ...
429
+ def normalize(self, deep: bool = False) -> bool: ...
430
+
431
+ class FuncSignature(AstSemStrNode):
432
+ params: Incomplete
433
+ return_type: Incomplete
434
+ is_method: bool
435
+ def __init__(
436
+ self,
437
+ params: SubNodeList[ParamVar] | None,
438
+ return_type: Expr | None,
439
+ kid: Sequence[AstNode],
440
+ semstr: String | None = None,
441
+ ) -> None: ...
442
+ def normalize(self, deep: bool = False) -> bool: ...
443
+ @property
444
+ def is_static(self) -> bool: ...
445
+
446
+ class EventSignature(AstSemStrNode):
447
+ event: Incomplete
448
+ arch_tag_info: Incomplete
449
+ return_type: Incomplete
450
+ is_method: bool
451
+ def __init__(
452
+ self,
453
+ event: Token,
454
+ arch_tag_info: Expr | None,
455
+ return_type: Expr | None,
456
+ kid: Sequence[AstNode],
457
+ semstr: String | None = None,
458
+ ) -> None: ...
459
+ def normalize(self, deep: bool = False) -> bool: ...
460
+
461
+ class ArchRefChain(AstNode):
462
+ archs: Incomplete
463
+ def __init__(self, archs: list[ArchRef], kid: Sequence[AstNode]) -> None: ...
464
+ def normalize(self, deep: bool = False) -> bool: ...
465
+ def py_resolve_name(self) -> str: ...
466
+ def flat_name(self) -> str: ...
467
+
468
+ class ParamVar(AstSymbolNode, AstTypedVarNode, AstSemStrNode):
469
+ name: Incomplete
470
+ unpack: Incomplete
471
+ value: Incomplete
472
+ def __init__(
473
+ self,
474
+ name: Name,
475
+ unpack: Token | None,
476
+ type_tag: SubTag[Expr],
477
+ value: Expr | None,
478
+ kid: Sequence[AstNode],
479
+ semstr: String | None = None,
480
+ ) -> None: ...
481
+ def normalize(self, deep: bool = True) -> bool: ...
482
+
483
+ class ArchHas(AstAccessNode, AstDocNode, ArchBlockStmt):
484
+ is_static: Incomplete
485
+ vars: Incomplete
486
+ is_frozen: Incomplete
487
+ def __init__(
488
+ self,
489
+ is_static: bool,
490
+ access: SubTag[Token] | None,
491
+ vars: SubNodeList[HasVar],
492
+ is_frozen: bool,
493
+ kid: Sequence[AstNode],
494
+ doc: String | None = None,
495
+ ) -> None: ...
496
+ def normalize(self, deep: bool = False) -> bool: ...
497
+
498
+ class HasVar(AstSymbolNode, AstTypedVarNode, AstSemStrNode):
499
+ name: Incomplete
500
+ value: Incomplete
501
+ defer: Incomplete
502
+ def __init__(
503
+ self,
504
+ name: Name,
505
+ type_tag: SubTag[Expr],
506
+ value: Expr | None,
507
+ defer: bool,
508
+ kid: Sequence[AstNode],
509
+ semstr: String | None = None,
510
+ ) -> None: ...
511
+ def normalize(self, deep: bool = False) -> bool: ...
512
+
513
+ class TypedCtxBlock(CodeBlockStmt):
514
+ type_ctx: Incomplete
515
+ body: Incomplete
516
+ def __init__(
517
+ self, type_ctx: Expr, body: SubNodeList[CodeBlockStmt], kid: Sequence[AstNode]
518
+ ) -> None: ...
519
+ def normalize(self, deep: bool = False) -> bool: ...
520
+
521
+ class IfStmt(CodeBlockStmt, AstElseBodyNode):
522
+ condition: Incomplete
523
+ body: Incomplete
524
+ def __init__(
525
+ self,
526
+ condition: Expr,
527
+ body: SubNodeList[CodeBlockStmt],
528
+ else_body: ElseStmt | ElseIf | None,
529
+ kid: Sequence[AstNode],
530
+ ) -> None: ...
531
+ def normalize(self, deep: bool = False) -> bool: ...
532
+
533
+ class ElseIf(IfStmt):
534
+ def normalize(self, deep: bool = False) -> bool: ...
535
+
536
+ class ElseStmt(AstNode):
537
+ body: Incomplete
538
+ def __init__(
539
+ self, body: SubNodeList[CodeBlockStmt], kid: Sequence[AstNode]
540
+ ) -> None: ...
541
+ def normalize(self, deep: bool = False) -> bool: ...
542
+
543
+ class ExprStmt(CodeBlockStmt):
544
+ expr: Incomplete
545
+ in_fstring: Incomplete
546
+ def __init__(
547
+ self, expr: Expr, in_fstring: bool, kid: Sequence[AstNode]
548
+ ) -> None: ...
549
+ def normalize(self, deep: bool = True) -> bool: ...
550
+
551
+ class TryStmt(AstElseBodyNode, CodeBlockStmt):
552
+ body: Incomplete
553
+ excepts: Incomplete
554
+ finally_body: Incomplete
555
+ def __init__(
556
+ self,
557
+ body: SubNodeList[CodeBlockStmt],
558
+ excepts: SubNodeList[Except] | None,
559
+ else_body: ElseStmt | None,
560
+ finally_body: FinallyStmt | None,
561
+ kid: Sequence[AstNode],
562
+ ) -> None: ...
563
+ def normalize(self, deep: bool = False) -> bool: ...
564
+
565
+ class Except(CodeBlockStmt):
566
+ ex_type: Incomplete
567
+ name: Incomplete
568
+ body: Incomplete
569
+ def __init__(
570
+ self,
571
+ ex_type: Expr,
572
+ name: Name | None,
573
+ body: SubNodeList[CodeBlockStmt],
574
+ kid: Sequence[AstNode],
575
+ ) -> None: ...
576
+ def normalize(self, deep: bool = False) -> bool: ...
577
+
578
+ class FinallyStmt(CodeBlockStmt):
579
+ body: Incomplete
580
+ def __init__(
581
+ self, body: SubNodeList[CodeBlockStmt], kid: Sequence[AstNode]
582
+ ) -> None: ...
583
+ def normalize(self, deep: bool = False) -> bool: ...
584
+
585
+ class IterForStmt(AstAsyncNode, AstElseBodyNode, CodeBlockStmt):
586
+ iter: Incomplete
587
+ condition: Incomplete
588
+ count_by: Incomplete
589
+ body: Incomplete
590
+ def __init__(
591
+ self,
592
+ iter: Assignment,
593
+ is_async: bool,
594
+ condition: Expr,
595
+ count_by: Assignment,
596
+ body: SubNodeList[CodeBlockStmt],
597
+ else_body: ElseStmt | None,
598
+ kid: Sequence[AstNode],
599
+ ) -> None: ...
600
+ def normalize(self, deep: bool = False) -> bool: ...
601
+
602
+ class InForStmt(AstAsyncNode, AstElseBodyNode, CodeBlockStmt):
603
+ target: Incomplete
604
+ collection: Incomplete
605
+ body: Incomplete
606
+ def __init__(
607
+ self,
608
+ target: Expr,
609
+ is_async: bool,
610
+ collection: Expr,
611
+ body: SubNodeList[CodeBlockStmt],
612
+ else_body: ElseStmt | None,
613
+ kid: Sequence[AstNode],
614
+ ) -> None: ...
615
+ def normalize(self, deep: bool = False) -> bool: ...
616
+
617
+ class WhileStmt(CodeBlockStmt):
618
+ condition: Incomplete
619
+ body: Incomplete
620
+ def __init__(
621
+ self, condition: Expr, body: SubNodeList[CodeBlockStmt], kid: Sequence[AstNode]
622
+ ) -> None: ...
623
+ def normalize(self, deep: bool = False) -> bool: ...
624
+
625
+ class WithStmt(AstAsyncNode, CodeBlockStmt):
626
+ exprs: Incomplete
627
+ body: Incomplete
628
+ def __init__(
629
+ self,
630
+ is_async: bool,
631
+ exprs: SubNodeList[ExprAsItem],
632
+ body: SubNodeList[CodeBlockStmt],
633
+ kid: Sequence[AstNode],
634
+ ) -> None: ...
635
+ def normalize(self, deep: bool = False) -> bool: ...
636
+
637
+ class ExprAsItem(AstNode):
638
+ expr: Incomplete
639
+ alias: Incomplete
640
+ def __init__(
641
+ self, expr: Expr, alias: Expr | None, kid: Sequence[AstNode]
642
+ ) -> None: ...
643
+ def normalize(self, deep: bool = True) -> bool: ...
644
+
645
+ class RaiseStmt(CodeBlockStmt):
646
+ cause: Incomplete
647
+ from_target: Incomplete
648
+ def __init__(
649
+ self, cause: Expr | None, from_target: Expr | None, kid: Sequence[AstNode]
650
+ ) -> None: ...
651
+ def normalize(self, deep: bool = False) -> bool: ...
652
+
653
+ class AssertStmt(CodeBlockStmt):
654
+ condition: Incomplete
655
+ error_msg: Incomplete
656
+ def __init__(
657
+ self, condition: Expr, error_msg: Expr | None, kid: Sequence[AstNode]
658
+ ) -> None: ...
659
+ def normalize(self, deep: bool = False) -> bool: ...
660
+
661
+ class CheckStmt(CodeBlockStmt):
662
+ target: Incomplete
663
+ def __init__(self, target: Expr, kid: Sequence[AstNode]) -> None: ...
664
+ def normalize(self, deep: bool = False) -> bool: ...
665
+
666
+ class CtrlStmt(CodeBlockStmt):
667
+ ctrl: Incomplete
668
+ def __init__(self, ctrl: Token, kid: Sequence[AstNode]) -> None: ...
669
+ def normalize(self, deep: bool = False) -> bool: ...
670
+
671
+ class DeleteStmt(CodeBlockStmt):
672
+ target: Incomplete
673
+ def __init__(self, target: Expr, kid: Sequence[AstNode]) -> None: ...
674
+ def normalize(self, deep: bool = False) -> bool: ...
675
+
676
+ class ReportStmt(CodeBlockStmt):
677
+ expr: Incomplete
678
+ def __init__(self, expr: Expr, kid: Sequence[AstNode]) -> None: ...
679
+ def normalize(self, deep: bool = False) -> bool: ...
680
+
681
+ class ReturnStmt(CodeBlockStmt):
682
+ expr: Incomplete
683
+ def __init__(self, expr: Expr | None, kid: Sequence[AstNode]) -> None: ...
684
+ def normalize(self, deep: bool = False) -> bool: ...
685
+
686
+ class IgnoreStmt(WalkerStmtOnlyNode, CodeBlockStmt):
687
+ target: Incomplete
688
+ def __init__(self, target: Expr, kid: Sequence[AstNode]) -> None: ...
689
+ def normalize(self, deep: bool = False) -> bool: ...
690
+
691
+ class VisitStmt(WalkerStmtOnlyNode, AstElseBodyNode, CodeBlockStmt):
692
+ vis_type: Incomplete
693
+ target: Incomplete
694
+ def __init__(
695
+ self,
696
+ vis_type: SubNodeList[Expr] | None,
697
+ target: Expr,
698
+ else_body: ElseStmt | None,
699
+ kid: Sequence[AstNode],
700
+ ) -> None: ...
701
+ def normalize(self, deep: bool = False) -> bool: ...
702
+
703
+ class RevisitStmt(WalkerStmtOnlyNode, AstElseBodyNode, CodeBlockStmt):
704
+ hops: Incomplete
705
+ def __init__(
706
+ self, hops: Expr | None, else_body: ElseStmt | None, kid: Sequence[AstNode]
707
+ ) -> None: ...
708
+ def normalize(self, deep: bool = False) -> bool: ...
709
+
710
+ class DisengageStmt(WalkerStmtOnlyNode, CodeBlockStmt):
711
+ def __init__(self, kid: Sequence[AstNode]) -> None: ...
712
+ def normalize(self, deep: bool = False) -> bool: ...
713
+
714
+ class AwaitExpr(Expr):
715
+ target: Incomplete
716
+ def __init__(self, target: Expr, kid: Sequence[AstNode]) -> None: ...
717
+ def normalize(self, deep: bool = False) -> bool: ...
718
+
719
+ class GlobalStmt(CodeBlockStmt):
720
+ target: Incomplete
721
+ def __init__(
722
+ self, target: SubNodeList[NameAtom], kid: Sequence[AstNode]
723
+ ) -> None: ...
724
+ def normalize(self, deep: bool = False) -> bool: ...
725
+
726
+ class NonLocalStmt(GlobalStmt):
727
+ def normalize(self, deep: bool = False) -> bool: ...
728
+
729
+ class Assignment(AstSemStrNode, AstTypedVarNode, EnumBlockStmt, CodeBlockStmt):
730
+ target: Incomplete
731
+ value: Incomplete
732
+ mutable: Incomplete
733
+ aug_op: Incomplete
734
+ is_enum_stmt: Incomplete
735
+ def __init__(
736
+ self,
737
+ target: SubNodeList[Expr],
738
+ value: Expr | YieldExpr | None,
739
+ type_tag: SubTag[Expr] | None,
740
+ kid: Sequence[AstNode],
741
+ mutable: bool = True,
742
+ aug_op: Token | None = None,
743
+ semstr: String | None = None,
744
+ is_enum_stmt: bool = False,
745
+ ) -> None: ...
746
+ def normalize(self, deep: bool = True) -> bool: ...
747
+
748
+ class BinaryExpr(Expr):
749
+ left: Incomplete
750
+ right: Incomplete
751
+ op: Incomplete
752
+ def __init__(
753
+ self,
754
+ left: Expr,
755
+ right: Expr,
756
+ op: Token | DisconnectOp | ConnectOp,
757
+ kid: Sequence[AstNode],
758
+ ) -> None: ...
759
+ def normalize(self, deep: bool = False) -> bool: ...
760
+
761
+ class CompareExpr(Expr):
762
+ left: Incomplete
763
+ rights: Incomplete
764
+ ops: Incomplete
765
+ def __init__(
766
+ self, left: Expr, rights: list[Expr], ops: list[Token], kid: Sequence[AstNode]
767
+ ) -> None: ...
768
+ def normalize(self, deep: bool = False) -> bool: ...
769
+
770
+ class BoolExpr(Expr):
771
+ values: Incomplete
772
+ op: Incomplete
773
+ def __init__(
774
+ self, op: Token, values: list[Expr], kid: Sequence[AstNode]
775
+ ) -> None: ...
776
+ def normalize(self, deep: bool = False) -> bool: ...
777
+
778
+ class LambdaExpr(Expr):
779
+ signature: Incomplete
780
+ body: Incomplete
781
+ def __init__(
782
+ self, body: Expr, kid: Sequence[AstNode], signature: FuncSignature | None = None
783
+ ) -> None: ...
784
+ def normalize(self, deep: bool = False) -> bool: ...
785
+
786
+ class UnaryExpr(Expr):
787
+ operand: Incomplete
788
+ op: Incomplete
789
+ def __init__(self, operand: Expr, op: Token, kid: Sequence[AstNode]) -> None: ...
790
+ def normalize(self, deep: bool = False) -> bool: ...
791
+
792
+ class IfElseExpr(Expr):
793
+ condition: Incomplete
794
+ value: Incomplete
795
+ else_value: Incomplete
796
+ def __init__(
797
+ self, condition: Expr, value: Expr, else_value: Expr, kid: Sequence[AstNode]
798
+ ) -> None: ...
799
+ def normalize(self, deep: bool = False) -> bool: ...
800
+
801
+ class MultiString(AtomExpr):
802
+ strings: Incomplete
803
+ def __init__(
804
+ self, strings: Sequence[String | FString], kid: Sequence[AstNode]
805
+ ) -> None: ...
806
+ def normalize(self, deep: bool = False) -> bool: ...
807
+
808
+ class FString(AtomExpr):
809
+ parts: Incomplete
810
+ def __init__(
811
+ self, parts: SubNodeList[String | ExprStmt] | None, kid: Sequence[AstNode]
812
+ ) -> None: ...
813
+ def normalize(self, deep: bool = False) -> bool: ...
814
+
815
+ class ListVal(AtomExpr):
816
+ values: Incomplete
817
+ def __init__(
818
+ self, values: SubNodeList[Expr] | None, kid: Sequence[AstNode]
819
+ ) -> None: ...
820
+ def normalize(self, deep: bool = False) -> bool: ...
821
+
822
+ class SetVal(AtomExpr):
823
+ values: Incomplete
824
+ def __init__(
825
+ self, values: SubNodeList[Expr] | None, kid: Sequence[AstNode]
826
+ ) -> None: ...
827
+ def normalize(self, deep: bool = False) -> bool: ...
828
+
829
+ class TupleVal(AtomExpr):
830
+ values: Incomplete
831
+ def __init__(
832
+ self, values: SubNodeList[Expr | KWPair] | None, kid: Sequence[AstNode]
833
+ ) -> None: ...
834
+ def normalize(self, deep: bool = False) -> bool: ...
835
+
836
+ class DictVal(AtomExpr):
837
+ kv_pairs: Incomplete
838
+ def __init__(self, kv_pairs: Sequence[KVPair], kid: Sequence[AstNode]) -> None: ...
839
+ def normalize(self, deep: bool = False) -> bool: ...
840
+
841
+ class KVPair(AstNode):
842
+ key: Incomplete
843
+ value: Incomplete
844
+ def __init__(
845
+ self, key: Expr | None, value: Expr, kid: Sequence[AstNode]
846
+ ) -> None: ...
847
+ def normalize(self, deep: bool = False) -> bool: ...
848
+
849
+ class KWPair(AstNode):
850
+ key: Incomplete
851
+ value: Incomplete
852
+ def __init__(
853
+ self, key: NameAtom | None, value: Expr, kid: Sequence[AstNode]
854
+ ) -> None: ...
855
+ def normalize(self, deep: bool = False) -> bool: ...
856
+
857
+ class InnerCompr(AstAsyncNode):
858
+ target: Incomplete
859
+ collection: Incomplete
860
+ conditional: Incomplete
861
+ def __init__(
862
+ self,
863
+ is_async: bool,
864
+ target: Expr,
865
+ collection: Expr,
866
+ conditional: list[Expr] | None,
867
+ kid: Sequence[AstNode],
868
+ ) -> None: ...
869
+ def normalize(self, deep: bool = False) -> bool: ...
870
+
871
+ class ListCompr(AtomExpr):
872
+ out_expr: Incomplete
873
+ compr: Incomplete
874
+ def __init__(
875
+ self, out_expr: Expr, compr: list[InnerCompr], kid: Sequence[AstNode]
876
+ ) -> None: ...
877
+ def normalize(self, deep: bool = False) -> bool: ...
878
+
879
+ class GenCompr(ListCompr):
880
+ def normalize(self, deep: bool = False) -> bool: ...
881
+
882
+ class SetCompr(ListCompr):
883
+ def normalize(self, deep: bool = False) -> bool: ...
884
+
885
+ class DictCompr(AtomExpr):
886
+ kv_pair: Incomplete
887
+ compr: Incomplete
888
+ def __init__(
889
+ self, kv_pair: KVPair, compr: list[InnerCompr], kid: Sequence[AstNode]
890
+ ) -> None: ...
891
+ def normalize(self, deep: bool = False) -> bool: ...
892
+
893
+ class AtomTrailer(Expr):
894
+ target: Incomplete
895
+ right: Incomplete
896
+ is_attr: Incomplete
897
+ is_null_ok: Incomplete
898
+ is_genai: Incomplete
899
+ def __init__(
900
+ self,
901
+ target: Expr,
902
+ right: AtomExpr | Expr,
903
+ is_attr: bool,
904
+ is_null_ok: bool,
905
+ kid: Sequence[AstNode],
906
+ is_genai: bool = False,
907
+ ) -> None: ...
908
+ def normalize(self, deep: bool = True) -> bool: ...
909
+ @property
910
+ def as_attr_list(self) -> list[AstSymbolNode]: ...
911
+
912
+ class AtomUnit(Expr):
913
+ value: Incomplete
914
+ def __init__(self, value: Expr | YieldExpr, kid: Sequence[AstNode]) -> None: ...
915
+ def normalize(self, deep: bool = True) -> bool: ...
916
+
917
+ class YieldExpr(Expr):
918
+ expr: Incomplete
919
+ with_from: Incomplete
920
+ def __init__(
921
+ self, expr: Expr | None, with_from: bool, kid: Sequence[AstNode]
922
+ ) -> None: ...
923
+ def normalize(self, deep: bool = False) -> bool: ...
924
+
925
+ class FuncCall(Expr):
926
+ target: Incomplete
927
+ params: Incomplete
928
+ genai_call: Incomplete
929
+ def __init__(
930
+ self,
931
+ target: Expr,
932
+ params: SubNodeList[Expr | KWPair] | None,
933
+ genai_call: FuncCall | None,
934
+ kid: Sequence[AstNode],
935
+ ) -> None: ...
936
+ def normalize(self, deep: bool = True) -> bool: ...
937
+
938
+ class IndexSlice(AtomExpr):
939
+ start: Incomplete
940
+ stop: Incomplete
941
+ step: Incomplete
942
+ is_range: Incomplete
943
+ def __init__(
944
+ self,
945
+ start: Expr | None,
946
+ stop: Expr | None,
947
+ step: Expr | None,
948
+ is_range: bool,
949
+ kid: Sequence[AstNode],
950
+ ) -> None: ...
951
+ def normalize(self, deep: bool = True) -> bool: ...
952
+
953
+ class ArchRef(AtomExpr):
954
+ arch_name: Incomplete
955
+ arch_type: Incomplete
956
+ def __init__(
957
+ self, arch_name: NameAtom, arch_type: Token, kid: Sequence[AstNode]
958
+ ) -> None: ...
959
+ def normalize(self, deep: bool = False) -> bool: ...
960
+
961
+ class EdgeRefTrailer(Expr):
962
+ chain: Incomplete
963
+ edges_only: Incomplete
964
+ def __init__(
965
+ self, chain: list[Expr | FilterCompr], edges_only: bool, kid: Sequence[AstNode]
966
+ ) -> None: ...
967
+ def normalize(self, deep: bool = True) -> bool: ...
968
+
969
+ class EdgeOpRef(WalkerStmtOnlyNode, AtomExpr):
970
+ filter_cond: Incomplete
971
+ edge_dir: Incomplete
972
+ def __init__(
973
+ self, filter_cond: FilterCompr | None, edge_dir: EdgeDir, kid: Sequence[AstNode]
974
+ ) -> None: ...
975
+ def normalize(self, deep: bool = False) -> bool: ...
976
+
977
+ class DisconnectOp(WalkerStmtOnlyNode):
978
+ edge_spec: Incomplete
979
+ def __init__(self, edge_spec: EdgeOpRef, kid: Sequence[AstNode]) -> None: ...
980
+ def normalize(self, deep: bool = False) -> bool: ...
981
+
982
+ class ConnectOp(AstNode):
983
+ conn_type: Incomplete
984
+ conn_assign: Incomplete
985
+ edge_dir: Incomplete
986
+ def __init__(
987
+ self,
988
+ conn_type: Expr | None,
989
+ conn_assign: AssignCompr | None,
990
+ edge_dir: EdgeDir,
991
+ kid: Sequence[AstNode],
992
+ ) -> None: ...
993
+ def normalize(self, deep: bool = False) -> bool: ...
994
+
995
+ class FilterCompr(AtomExpr):
996
+ f_type: Incomplete
997
+ compares: Incomplete
998
+ def __init__(
999
+ self,
1000
+ f_type: Expr | None,
1001
+ compares: SubNodeList[CompareExpr] | None,
1002
+ kid: Sequence[AstNode],
1003
+ ) -> None: ...
1004
+ def normalize(self, deep: bool = False) -> bool: ...
1005
+
1006
+ class AssignCompr(AtomExpr):
1007
+ assigns: Incomplete
1008
+ def __init__(
1009
+ self, assigns: SubNodeList[KWPair], kid: Sequence[AstNode]
1010
+ ) -> None: ...
1011
+ def normalize(self, deep: bool = False) -> bool: ...
1012
+
1013
+ class MatchStmt(CodeBlockStmt):
1014
+ target: Incomplete
1015
+ cases: Incomplete
1016
+ def __init__(
1017
+ self, target: Expr, cases: list[MatchCase], kid: Sequence[AstNode]
1018
+ ) -> None: ...
1019
+ def normalize(self, deep: bool = False) -> bool: ...
1020
+
1021
+ class MatchCase(AstNode):
1022
+ pattern: Incomplete
1023
+ guard: Incomplete
1024
+ body: Incomplete
1025
+ def __init__(
1026
+ self,
1027
+ pattern: MatchPattern,
1028
+ guard: Expr | None,
1029
+ body: list[CodeBlockStmt],
1030
+ kid: Sequence[AstNode],
1031
+ ) -> None: ...
1032
+ def normalize(self, deep: bool = False) -> bool: ...
1033
+
1034
+ class MatchOr(MatchPattern):
1035
+ patterns: Incomplete
1036
+ def __init__(
1037
+ self, patterns: list[MatchPattern], kid: Sequence[AstNode]
1038
+ ) -> None: ...
1039
+ def normalize(self, deep: bool = False) -> bool: ...
1040
+
1041
+ class MatchAs(MatchPattern):
1042
+ name: Incomplete
1043
+ pattern: Incomplete
1044
+ def __init__(
1045
+ self, name: NameAtom, pattern: MatchPattern | None, kid: Sequence[AstNode]
1046
+ ) -> None: ...
1047
+ def normalize(self, deep: bool = False) -> bool: ...
1048
+
1049
+ class MatchWild(MatchPattern):
1050
+ def normalize(self, deep: bool = False) -> bool: ...
1051
+
1052
+ class MatchValue(MatchPattern):
1053
+ value: Incomplete
1054
+ def __init__(self, value: Expr, kid: Sequence[AstNode]) -> None: ...
1055
+ def normalize(self, deep: bool = False) -> bool: ...
1056
+
1057
+ class MatchSingleton(MatchPattern):
1058
+ value: Incomplete
1059
+ def __init__(self, value: Bool | Null, kid: Sequence[AstNode]) -> None: ...
1060
+ def normalize(self, deep: bool = False) -> bool: ...
1061
+
1062
+ class MatchSequence(MatchPattern):
1063
+ values: Incomplete
1064
+ def __init__(self, values: list[MatchPattern], kid: Sequence[AstNode]) -> None: ...
1065
+ def normalize(self, deep: bool = False) -> bool: ...
1066
+
1067
+ class MatchMapping(MatchPattern):
1068
+ values: Incomplete
1069
+ def __init__(
1070
+ self, values: list[MatchKVPair | MatchStar], kid: Sequence[AstNode]
1071
+ ) -> None: ...
1072
+ def normalize(self, deep: bool = False) -> bool: ...
1073
+
1074
+ class MatchKVPair(MatchPattern):
1075
+ key: Incomplete
1076
+ value: Incomplete
1077
+ def __init__(
1078
+ self, key: MatchPattern | NameAtom, value: MatchPattern, kid: Sequence[AstNode]
1079
+ ) -> None: ...
1080
+ def normalize(self, deep: bool = False) -> bool: ...
1081
+
1082
+ class MatchStar(MatchPattern):
1083
+ name: Incomplete
1084
+ is_list: Incomplete
1085
+ def __init__(
1086
+ self, name: NameAtom, is_list: bool, kid: Sequence[AstNode]
1087
+ ) -> None: ...
1088
+ def normalize(self, deep: bool = False) -> bool: ...
1089
+
1090
+ class MatchArch(MatchPattern):
1091
+ name: Incomplete
1092
+ arg_patterns: Incomplete
1093
+ kw_patterns: Incomplete
1094
+ def __init__(
1095
+ self,
1096
+ name: AtomTrailer | NameAtom,
1097
+ arg_patterns: SubNodeList[MatchPattern] | None,
1098
+ kw_patterns: SubNodeList[MatchKVPair] | None,
1099
+ kid: Sequence[AstNode],
1100
+ ) -> None: ...
1101
+ def normalize(self, deep: bool = False) -> bool: ...
1102
+
1103
+ class Token(AstNode):
1104
+ file_path: Incomplete
1105
+ name: Incomplete
1106
+ value: Incomplete
1107
+ line_no: Incomplete
1108
+ end_line: Incomplete
1109
+ c_start: Incomplete
1110
+ c_end: Incomplete
1111
+ pos_start: Incomplete
1112
+ pos_end: Incomplete
1113
+ def __init__(
1114
+ self,
1115
+ file_path: str,
1116
+ name: str,
1117
+ value: str,
1118
+ line: int,
1119
+ end_line: int,
1120
+ col_start: int,
1121
+ col_end: int,
1122
+ pos_start: int,
1123
+ pos_end: int,
1124
+ ) -> None: ...
1125
+ def normalize(self, deep: bool = True) -> bool: ...
1126
+ def unparse(self) -> str: ...
1127
+
1128
+ class Name(Token, NameAtom):
1129
+ is_enum_singleton: Incomplete
1130
+ is_kwesc: Incomplete
1131
+ def __init__(
1132
+ self,
1133
+ file_path: str,
1134
+ name: str,
1135
+ value: str,
1136
+ line: int,
1137
+ end_line: int,
1138
+ col_start: int,
1139
+ col_end: int,
1140
+ pos_start: int,
1141
+ pos_end: int,
1142
+ is_enum_singleton: bool = False,
1143
+ is_kwesc: bool = False,
1144
+ ) -> None: ...
1145
+ def unparse(self) -> str: ...
1146
+ @staticmethod
1147
+ def gen_stub_from_node(
1148
+ node: AstSymbolNode, name_str: str, set_name_of: AstSymbolNode | None = None
1149
+ ) -> Name: ...
1150
+
1151
+ class SpecialVarRef(Name):
1152
+ orig: Incomplete
1153
+ def __init__(self, var: Name) -> None: ...
1154
+ def py_resolve_name(self) -> str: ...
1155
+
1156
+ class Literal(Token, AtomExpr):
1157
+ SYMBOL_TYPE: Incomplete
1158
+ type_map: Incomplete
1159
+ def __init__(
1160
+ self,
1161
+ file_path: str,
1162
+ name: str,
1163
+ value: str,
1164
+ line: int,
1165
+ end_line: int,
1166
+ col_start: int,
1167
+ col_end: int,
1168
+ pos_start: int,
1169
+ pos_end: int,
1170
+ ) -> None: ...
1171
+ @property
1172
+ def lit_value(
1173
+ self,
1174
+ ) -> int | str | float | bool | None | Callable[[], Any] | EllipsisType: ...
1175
+
1176
+ class BuiltinType(Name, Literal, NameAtom):
1177
+ SYMBOL_TYPE: Incomplete
1178
+ @property
1179
+ def lit_value(self) -> Callable[[], Any]: ...
1180
+
1181
+ class Float(Literal):
1182
+ SYMBOL_TYPE: Incomplete
1183
+ @property
1184
+ def lit_value(self) -> float: ...
1185
+
1186
+ class Int(Literal):
1187
+ SYMBOL_TYPE: Incomplete
1188
+ @property
1189
+ def lit_value(self) -> int: ...
1190
+
1191
+ class String(Literal):
1192
+ SYMBOL_TYPE: Incomplete
1193
+ @property
1194
+ def lit_value(self) -> str: ...
1195
+ value: Incomplete
1196
+ def normalize(self, deep: bool = True) -> bool: ...
1197
+ def unparse(self) -> str: ...
1198
+
1199
+ class Bool(Literal):
1200
+ SYMBOL_TYPE: Incomplete
1201
+ @property
1202
+ def lit_value(self) -> bool: ...
1203
+
1204
+ class Null(Literal):
1205
+ SYMBOL_TYPE: Incomplete
1206
+ @property
1207
+ def lit_value(self) -> None: ...
1208
+
1209
+ class Ellipsis(Literal):
1210
+ SYMBOL_TYPE: Incomplete
1211
+ @property
1212
+ def lit_value(self) -> EllipsisType: ...
1213
+
1214
+ class EmptyToken(Token):
1215
+ def __init__(self) -> None: ...
1216
+
1217
+ class Semi(Token, CodeBlockStmt): ...
1218
+
1219
+ class CommentToken(Token):
1220
+ is_inline: Incomplete
1221
+ def __init__(
1222
+ self,
1223
+ file_path: str,
1224
+ name: str,
1225
+ value: str,
1226
+ line: int,
1227
+ end_line: int,
1228
+ col_start: int,
1229
+ col_end: int,
1230
+ pos_start: int,
1231
+ pos_end: int,
1232
+ kid: Sequence[AstNode],
1233
+ is_inline: bool = False,
1234
+ ) -> None: ...
1235
+
1236
+ class JacSource(EmptyToken):
1237
+ value: Incomplete
1238
+ hash: Incomplete
1239
+ file_path: Incomplete
1240
+ comments: Incomplete
1241
+ def __init__(self, source: str, mod_path: str) -> None: ...
1242
+ @property
1243
+ def code(self) -> str: ...
1244
+
1245
+ class PythonModuleAst(EmptyToken):
1246
+ ast: Incomplete
1247
+ file_path: Incomplete
1248
+ def __init__(self, ast: ast3.Module, mod_path: str) -> None: ...