jaclang 0.7.34__py3-none-any.whl → 0.8.1__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 (1503) hide show
  1. jaclang/__init__.py +7 -414
  2. jaclang/cli/cli.md +5 -5
  3. jaclang/cli/cli.py +316 -217
  4. jaclang/cli/cmdreg.py +188 -31
  5. jaclang/compiler/__init__.py +10 -15
  6. jaclang/compiler/{codeloc.py → codeinfo.py} +11 -30
  7. jaclang/compiler/constant.py +10 -33
  8. jaclang/compiler/jac.lark +65 -106
  9. jaclang/compiler/larkparse/jac_parser.py +3444 -0
  10. jaclang/compiler/parser.py +1137 -1517
  11. jaclang/compiler/passes/__init__.py +2 -2
  12. jaclang/compiler/passes/main/__init__.py +33 -14
  13. jaclang/compiler/passes/main/annex_pass.py +85 -0
  14. jaclang/compiler/passes/main/cfg_build_pass.py +275 -0
  15. jaclang/compiler/passes/main/def_impl_match_pass.py +159 -114
  16. jaclang/compiler/passes/main/def_use_pass.py +66 -274
  17. jaclang/compiler/passes/main/import_pass.py +178 -363
  18. jaclang/compiler/passes/main/inheritance_pass.py +109 -107
  19. jaclang/compiler/passes/main/pyast_gen_pass.py +1242 -1735
  20. jaclang/compiler/passes/main/pyast_load_pass.py +579 -819
  21. jaclang/compiler/passes/main/pybc_gen_pass.py +38 -35
  22. jaclang/compiler/passes/main/pyjac_ast_link_pass.py +50 -163
  23. jaclang/compiler/passes/main/sym_tab_build_pass.py +114 -1203
  24. jaclang/compiler/passes/main/sym_tab_link_pass.py +141 -0
  25. jaclang/{tests → compiler/passes/main/tests}/fixtures/access_modifier.jac +10 -9
  26. jaclang/compiler/passes/main/tests/fixtures/atest.impl.jac +3 -0
  27. jaclang/compiler/passes/main/tests/fixtures/atest.jac +11 -0
  28. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac +1 -1
  29. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl.jac +1 -1
  30. jaclang/compiler/passes/main/tests/fixtures/autoimpl.jac +3 -3
  31. jaclang/compiler/passes/main/tests/fixtures/autoimpl.something.else.impl.jac +1 -1
  32. jaclang/compiler/passes/main/tests/fixtures/base.impl.jac +8 -0
  33. jaclang/compiler/passes/main/tests/fixtures/base.jac +4 -4
  34. jaclang/compiler/passes/main/tests/fixtures/base2.impl.jac +8 -0
  35. jaclang/compiler/passes/main/tests/fixtures/base2.jac +4 -4
  36. jaclang/compiler/passes/main/tests/fixtures/blip.jac +1 -1
  37. jaclang/compiler/passes/main/tests/fixtures/cfg_ability_test.jac +23 -0
  38. jaclang/compiler/passes/main/tests/fixtures/cfg_gen.jac +19 -0
  39. jaclang/compiler/passes/main/tests/fixtures/circular_import.jac +7 -0
  40. jaclang/compiler/passes/main/tests/fixtures/data_spatial_types.jac +12 -12
  41. jaclang/compiler/passes/main/tests/fixtures/decls.jac +4 -4
  42. jaclang/compiler/passes/main/tests/fixtures/defn_decl_mismatch.jac +4 -4
  43. jaclang/compiler/passes/main/tests/fixtures/defs_and_uses.jac +6 -6
  44. jaclang/compiler/passes/main/tests/fixtures/enumerations.jac +13 -0
  45. jaclang/compiler/passes/main/tests/fixtures/fstrings.jac +1 -1
  46. jaclang/compiler/passes/main/tests/fixtures/func.jac +2 -2
  47. jaclang/compiler/passes/main/tests/fixtures/func2.jac +1 -1
  48. jaclang/compiler/passes/main/tests/fixtures/game1.jac +4 -4
  49. jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac +2 -2
  50. jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac +2 -2
  51. jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac +0 -8
  52. jaclang/compiler/passes/main/tests/fixtures/impl_grab.impl.jac +5 -0
  53. jaclang/{tests → compiler/passes/main/tests}/fixtures/impl_grab.jac +1 -1
  54. jaclang/compiler/passes/main/tests/fixtures/incautoimpl.jac +1 -1
  55. jaclang/compiler/passes/main/tests/fixtures/main_err.impl.jac +6 -0
  56. jaclang/compiler/passes/main/tests/fixtures/main_err.jac +6 -0
  57. jaclang/compiler/passes/main/tests/fixtures/mod_type_assign.jac +1 -1
  58. jaclang/compiler/passes/main/tests/fixtures/mtest.impl.jac +6 -0
  59. jaclang/{tests → compiler/passes/main/tests}/fixtures/mtest.jac +1 -1
  60. jaclang/{tests → compiler/passes/main/tests}/fixtures/nested_impls.jac +14 -15
  61. jaclang/compiler/passes/main/tests/fixtures/py_imp_test.jac +7 -7
  62. jaclang/compiler/passes/main/tests/fixtures/second_err.jac +4 -0
  63. jaclang/compiler/passes/main/tests/fixtures/str2doc.py +3 -0
  64. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/action/__init__.py +5 -0
  65. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/action/actions.jac +19 -0
  66. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/main.jac +7 -0
  67. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/no_dupls.jac +35 -0
  68. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/one.jac +8 -0
  69. jaclang/compiler/passes/main/tests/fixtures/type_info.jac +4 -4
  70. jaclang/compiler/passes/main/tests/test_cfg_build_pass.py +101 -0
  71. jaclang/compiler/passes/main/tests/test_decl_impl_match_pass.py +157 -0
  72. jaclang/compiler/passes/main/tests/test_def_use_pass.py +4 -6
  73. jaclang/compiler/passes/main/tests/test_import_pass.py +59 -46
  74. jaclang/compiler/passes/main/tests/test_pyast_build_pass.py +15 -0
  75. jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py +25 -34
  76. jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py +3 -3
  77. jaclang/compiler/passes/main/tests/test_sub_node_pass.py +8 -7
  78. jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py +4 -4
  79. jaclang/compiler/passes/main/tests/test_sym_tab_link_pass.py +62 -0
  80. jaclang/compiler/passes/tool/__init__.py +2 -0
  81. jaclang/compiler/passes/tool/doc_ir.py +179 -0
  82. jaclang/compiler/passes/tool/doc_ir_gen_pass.py +1287 -0
  83. jaclang/compiler/passes/tool/fuse_comments_pass.py +90 -70
  84. jaclang/compiler/passes/tool/jac_formatter_pass.py +122 -2554
  85. jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +249 -97
  86. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +94 -97
  87. jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac +2 -2
  88. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/access_mod_check.jac +5 -5
  89. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/archetype_test.jac +13 -0
  90. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/decorator_stack.jac +7 -7
  91. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac +8 -8
  92. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +3 -3
  93. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +3 -3
  94. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +1 -1
  95. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +2 -2
  96. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +3 -3
  97. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +1 -1
  98. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +1 -1
  99. jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +1 -1
  100. jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +10 -4
  101. jaclang/compiler/passes/tool/tests/test_doc_ir_gen_pass.py +29 -0
  102. jaclang/compiler/passes/tool/tests/test_jac_format_pass.py +63 -88
  103. jaclang/compiler/passes/tool/tests/test_unparse_validate.py +27 -28
  104. jaclang/compiler/passes/transform.py +56 -16
  105. jaclang/compiler/passes/{ir_pass.py → uni_pass.py} +35 -52
  106. jaclang/compiler/program.py +200 -0
  107. jaclang/compiler/tests/fixtures/codegentext.jac +31 -0
  108. jaclang/compiler/tests/fixtures/fam.jac +12 -12
  109. jaclang/compiler/tests/fixtures/hello_world.jac +1 -1
  110. jaclang/compiler/tests/fixtures/pkg_import_lib/__init__.jac +1 -0
  111. jaclang/compiler/tests/fixtures/pkg_import_lib/sub/__init__.jac +1 -0
  112. jaclang/compiler/tests/fixtures/pkg_import_lib/sub/helper.jac +3 -0
  113. jaclang/compiler/tests/fixtures/pkg_import_lib/tools.jac +3 -0
  114. jaclang/compiler/tests/fixtures/pkg_import_lib_py/__init__.py +11 -0
  115. jaclang/compiler/tests/fixtures/pkg_import_lib_py/sub/__init__.py +7 -0
  116. jaclang/compiler/tests/fixtures/pkg_import_lib_py/sub/helper.jac +3 -0
  117. jaclang/compiler/tests/fixtures/pkg_import_lib_py/tools.jac +3 -0
  118. jaclang/compiler/tests/fixtures/pkg_import_main.jac +10 -0
  119. jaclang/compiler/tests/fixtures/pkg_import_main_py.jac +11 -0
  120. jaclang/compiler/tests/fixtures/staticcheck.jac +2 -2
  121. jaclang/compiler/tests/test_importer.py +41 -16
  122. jaclang/compiler/tests/test_parser.py +39 -17
  123. jaclang/compiler/{absyntree.py → unitree.py} +1521 -1261
  124. jaclang/langserve/engine.jac +498 -0
  125. jaclang/langserve/sem_manager.jac +309 -0
  126. jaclang/langserve/server.jac +186 -0
  127. jaclang/langserve/tests/fixtures/base_module_structure.jac +7 -7
  128. jaclang/langserve/tests/fixtures/circle.jac +6 -6
  129. jaclang/langserve/tests/fixtures/circle_err.jac +6 -6
  130. jaclang/langserve/tests/fixtures/circle_pure.impl.jac +5 -5
  131. jaclang/langserve/tests/fixtures/circle_pure.jac +7 -7
  132. jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac +2 -2
  133. jaclang/langserve/tests/fixtures/circle_pure_err.jac +7 -7
  134. jaclang/langserve/tests/fixtures/import_include_statements.jac +6 -6
  135. jaclang/langserve/tests/fixtures/rename.jac +6 -6
  136. jaclang/langserve/tests/server_test/test_lang_serve.py +261 -0
  137. jaclang/langserve/tests/server_test/utils.py +118 -0
  138. jaclang/langserve/tests/session.jac +294 -0
  139. jaclang/langserve/tests/test_sem_tokens.py +4 -4
  140. jaclang/langserve/tests/test_server.py +53 -30
  141. jaclang/langserve/utils.jac +459 -0
  142. jaclang/runtimelib/{architype.py → archetype.py} +86 -62
  143. jaclang/runtimelib/builtin.py +95 -0
  144. jaclang/runtimelib/constructs.py +11 -13
  145. jaclang/runtimelib/importer.py +83 -53
  146. jaclang/runtimelib/machine.py +1592 -144
  147. jaclang/runtimelib/memory.py +6 -6
  148. jaclang/{plugin → runtimelib}/tests/fixtures/graph_purger.jac +1 -1
  149. jaclang/{plugin → runtimelib}/tests/fixtures/impl_match.jac +2 -2
  150. jaclang/runtimelib/tests/fixtures/impl_match_impl.jac +3 -0
  151. jaclang/{plugin → runtimelib}/tests/fixtures/other_root_access.jac +7 -7
  152. jaclang/{plugin → runtimelib}/tests/fixtures/savable_object.jac +3 -5
  153. jaclang/{plugin → runtimelib}/tests/fixtures/simple_node_connection.jac +6 -6
  154. jaclang/{plugin → runtimelib}/tests/fixtures/simple_persistent.jac +1 -1
  155. jaclang/{plugin → runtimelib}/tests/fixtures/traversing_save.jac +7 -5
  156. jaclang/runtimelib/tests/test_features.py +72 -0
  157. jaclang/{plugin → runtimelib}/tests/test_jaseci.py +6 -5
  158. jaclang/runtimelib/utils.py +34 -66
  159. jaclang/settings.py +1 -6
  160. jaclang/tests/fixtures/{abc.jac → abc_check.jac} +6 -6
  161. jaclang/tests/fixtures/arch_rel_import_creation.jac +4 -4
  162. jaclang/tests/fixtures/async_ability.jac +18 -0
  163. jaclang/tests/fixtures/async_walker.jac +23 -0
  164. jaclang/tests/fixtures/backward_edge_visit.jac +31 -0
  165. jaclang/tests/fixtures/baddy.jac +1 -1
  166. jaclang/tests/fixtures/base_class1.jac +2 -2
  167. jaclang/tests/fixtures/base_class2.jac +2 -2
  168. jaclang/tests/fixtures/base_class_complex_expr.jac +3 -3
  169. jaclang/tests/fixtures/builtin_printgraph.jac +85 -0
  170. jaclang/tests/fixtures/builtin_printgraph_json.jac +21 -0
  171. jaclang/tests/fixtures/builtin_printgraph_mermaid.jac +16 -0
  172. jaclang/tests/fixtures/byllmissue.jac +1 -1
  173. jaclang/tests/fixtures/chandra_bugs.jac +1 -1
  174. jaclang/tests/fixtures/chandra_bugs2.jac +21 -14
  175. jaclang/tests/fixtures/cls_method.jac +6 -6
  176. jaclang/tests/fixtures/concurrency.jac +39 -0
  177. jaclang/tests/fixtures/connect_traverse_syntax.jac +18 -0
  178. jaclang/tests/fixtures/create_dynamic_archetype.jac +35 -0
  179. jaclang/tests/fixtures/decl_defn_param_name.jac +4 -4
  180. jaclang/tests/fixtures/deep/deeper/__init__.jac +1 -0
  181. jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +2 -3
  182. jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +3 -3
  183. jaclang/tests/fixtures/deep/deeper/snd_lev.jac +2 -2
  184. jaclang/tests/fixtures/deep/mycode.jac +1 -1
  185. jaclang/tests/fixtures/deep/one_lev.jac +3 -4
  186. jaclang/tests/fixtures/deep/one_lev_dup.jac +2 -2
  187. jaclang/tests/fixtures/deep_convert.jac +1 -1
  188. jaclang/tests/fixtures/deep_import.jac +2 -2
  189. jaclang/tests/fixtures/deep_import_interp.jac +8 -0
  190. jaclang/tests/fixtures/deep_import_mods.jac +3 -3
  191. jaclang/tests/fixtures/deferred_field.jac +1 -1
  192. jaclang/tests/fixtures/del_clean.jac +7 -0
  193. jaclang/tests/fixtures/disconn.jac +2 -2
  194. jaclang/tests/fixtures/dynamic_archetype.jac +34 -0
  195. jaclang/tests/fixtures/edge_ability.jac +49 -0
  196. jaclang/tests/fixtures/edge_node_walk.jac +12 -12
  197. jaclang/tests/fixtures/edge_ops.jac +7 -7
  198. jaclang/tests/fixtures/edges_walk.jac +10 -10
  199. jaclang/tests/fixtures/edgetypeissue.jac +1 -1
  200. jaclang/tests/fixtures/enum_inside_archtype.jac +4 -4
  201. jaclang/tests/fixtures/err.impl.jac +1 -1
  202. jaclang/tests/fixtures/err.jac +2 -2
  203. jaclang/tests/fixtures/err_runtime.jac +2 -2
  204. jaclang/tests/fixtures/foo.jac +7 -7
  205. jaclang/tests/fixtures/game1.jac +4 -4
  206. jaclang/tests/fixtures/gendot_bubble_sort.jac +4 -4
  207. jaclang/tests/fixtures/glob_multivar_statement.jac +1 -1
  208. jaclang/tests/fixtures/guess_game.jac +6 -6
  209. jaclang/tests/fixtures/has_goodness.jac +1 -1
  210. jaclang/tests/fixtures/hash_init_check.jac +3 -3
  211. jaclang/tests/fixtures/hello.jac +1 -1
  212. jaclang/tests/fixtures/here_usage_error.jac +21 -0
  213. jaclang/tests/fixtures/here_visitor_usage.jac +21 -0
  214. jaclang/tests/fixtures/ignore.jac +3 -3
  215. jaclang/tests/fixtures/ignore_dup.jac +3 -3
  216. jaclang/tests/fixtures/impl_match_confused.impl.jac +1 -1
  217. jaclang/tests/fixtures/import.jac +9 -9
  218. jaclang/tests/fixtures/import_all.jac +1 -1
  219. jaclang/tests/fixtures/index_slice.jac +1 -1
  220. jaclang/tests/fixtures/inherit_check.jac +3 -3
  221. jaclang/tests/fixtures/jac_from_py.py +4 -0
  222. jaclang/tests/fixtures/jacsamp.jac +1 -1
  223. jaclang/tests/fixtures/jactest_main.jac +1 -1
  224. jaclang/tests/fixtures/jp_importer.jac +7 -8
  225. jaclang/tests/fixtures/jp_importer_auto.jac +3 -3
  226. jaclang/tests/fixtures/lambda.jac +2 -2
  227. jaclang/tests/fixtures/needs_import.jac +6 -6
  228. jaclang/tests/fixtures/needs_import_1.jac +1 -1
  229. jaclang/tests/fixtures/needs_import_2.jac +1 -1
  230. jaclang/tests/fixtures/needs_import_3.jac +1 -1
  231. jaclang/tests/fixtures/needs_import_dup.jac +6 -6
  232. jaclang/tests/fixtures/node_del.jac +54 -0
  233. jaclang/tests/fixtures/nosigself.jac +3 -3
  234. jaclang/tests/fixtures/py2jac.py +30 -0
  235. jaclang/tests/fixtures/py_bool_expr.py +7 -0
  236. jaclang/tests/fixtures/py_namedexpr.py +7 -0
  237. jaclang/tests/fixtures/pyfunc_3.py +0 -2
  238. jaclang/tests/fixtures/random_check.jac +5 -5
  239. jaclang/tests/fixtures/simple_archs.jac +2 -2
  240. jaclang/tests/fixtures/simple_walk.jac +52 -0
  241. jaclang/tests/fixtures/slice_vals.jac +3 -3
  242. jaclang/tests/fixtures/sub_abil_sep.jac +3 -3
  243. jaclang/tests/fixtures/sub_abil_sep_multilev.jac +3 -3
  244. jaclang/tests/fixtures/trailing_comma.jac +4 -4
  245. jaclang/tests/fixtures/type_info.jac +5 -5
  246. jaclang/{compiler/passes/main/tests → tests}/fixtures/uninitialized_hasvars.jac +1 -1
  247. jaclang/tests/fixtures/visit_order.jac +4 -4
  248. jaclang/tests/fixtures/visit_traversal.jac +47 -0
  249. jaclang/tests/fixtures/walker_override.jac +2 -2
  250. jaclang/tests/fixtures/walker_update.jac +5 -5
  251. jaclang/tests/fixtures/with_context.jac +4 -4
  252. jaclang/tests/test_bugs.py +2 -2
  253. jaclang/tests/test_cli.py +127 -227
  254. jaclang/tests/test_language.py +542 -474
  255. jaclang/tests/test_man_code.py +2 -2
  256. jaclang/tests/test_reference.py +4 -4
  257. jaclang/tests/test_settings.py +16 -16
  258. jaclang/tests/test_typecheck.py +555 -0
  259. jaclang/utils/__init__.py +4 -0
  260. jaclang/utils/helpers.py +24 -31
  261. jaclang/utils/lang_tools.py +84 -75
  262. jaclang/utils/module_resolver.py +69 -0
  263. jaclang/utils/test.py +8 -5
  264. jaclang/utils/tests/test_lang_tools.py +40 -14
  265. jaclang/utils/treeprinter.py +178 -42
  266. jaclang/vendor/__init__.py +1 -2
  267. jaclang/vendor/attr/__init__.py +14 -44
  268. jaclang/vendor/attr/__init__.pyi +155 -321
  269. jaclang/vendor/attr/_cmp.py +25 -15
  270. jaclang/vendor/attr/_cmp.pyi +7 -7
  271. jaclang/vendor/attr/_compat.py +15 -8
  272. jaclang/vendor/attr/_config.py +1 -1
  273. jaclang/vendor/attr/_funcs.py +148 -163
  274. jaclang/vendor/attr/_make.py +859 -855
  275. jaclang/vendor/attr/_next_gen.py +426 -32
  276. jaclang/vendor/attr/converters.py +67 -49
  277. jaclang/vendor/attr/converters.pyi +13 -7
  278. jaclang/vendor/attr/filters.py +17 -11
  279. jaclang/vendor/attr/filters.pyi +3 -3
  280. jaclang/vendor/attr/setters.py +11 -5
  281. jaclang/vendor/attr/setters.pyi +2 -1
  282. jaclang/vendor/attr/validators.py +191 -162
  283. jaclang/vendor/attr/validators.pyi +25 -27
  284. jaclang/vendor/attrs/__init__.py +9 -5
  285. jaclang/vendor/attrs/__init__.pyi +225 -29
  286. jaclang/vendor/attrs-25.3.0.dist-info/INSTALLER +1 -0
  287. jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/METADATA +83 -53
  288. jaclang/vendor/attrs-25.3.0.dist-info/RECORD +56 -0
  289. jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/WHEEL +1 -1
  290. jaclang/vendor/bin/dmypy +8 -0
  291. jaclang/vendor/bin/mypy +8 -0
  292. jaclang/vendor/bin/mypyc +8 -0
  293. jaclang/vendor/bin/stubgen +8 -0
  294. jaclang/vendor/bin/stubtest +8 -0
  295. jaclang/vendor/cattr/gen.py +2 -2
  296. jaclang/vendor/cattr/preconf/bson.py +1 -0
  297. jaclang/vendor/cattr/preconf/json.py +1 -0
  298. jaclang/vendor/cattr/preconf/msgpack.py +1 -0
  299. jaclang/vendor/cattr/preconf/orjson.py +1 -0
  300. jaclang/vendor/cattr/preconf/pyyaml.py +1 -0
  301. jaclang/vendor/cattr/preconf/tomlkit.py +1 -0
  302. jaclang/vendor/cattr/preconf/ujson.py +1 -0
  303. jaclang/vendor/cattrs/__init__.py +21 -21
  304. jaclang/vendor/cattrs/_compat.py +176 -62
  305. jaclang/vendor/cattrs/_generics.py +5 -3
  306. jaclang/vendor/cattrs/cols.py +289 -0
  307. jaclang/vendor/cattrs/converters.py +505 -187
  308. jaclang/vendor/cattrs/disambiguators.py +118 -45
  309. jaclang/vendor/cattrs/dispatch.py +66 -36
  310. jaclang/vendor/cattrs/fns.py +6 -1
  311. jaclang/vendor/cattrs/gen/__init__.py +365 -202
  312. jaclang/vendor/cattrs/gen/_generics.py +41 -5
  313. jaclang/vendor/cattrs/gen/_lc.py +3 -2
  314. jaclang/vendor/cattrs/gen/_shared.py +39 -32
  315. jaclang/vendor/cattrs/gen/typeddicts.py +75 -88
  316. jaclang/vendor/cattrs/preconf/__init__.py +20 -0
  317. jaclang/vendor/cattrs/preconf/bson.py +7 -8
  318. jaclang/vendor/cattrs/preconf/cbor2.py +3 -0
  319. jaclang/vendor/cattrs/preconf/json.py +8 -4
  320. jaclang/vendor/cattrs/preconf/msgpack.py +3 -0
  321. jaclang/vendor/cattrs/preconf/msgspec.py +185 -0
  322. jaclang/vendor/cattrs/preconf/orjson.py +20 -7
  323. jaclang/vendor/cattrs/preconf/pyyaml.py +15 -3
  324. jaclang/vendor/cattrs/preconf/tomlkit.py +3 -1
  325. jaclang/vendor/cattrs/preconf/ujson.py +3 -0
  326. jaclang/vendor/cattrs/strategies/__init__.py +1 -0
  327. jaclang/vendor/cattrs/strategies/_class_methods.py +1 -1
  328. jaclang/vendor/cattrs/strategies/_subclasses.py +43 -29
  329. jaclang/vendor/cattrs/strategies/_unions.py +47 -24
  330. jaclang/vendor/cattrs/v.py +1 -0
  331. jaclang/vendor/cattrs-24.1.3.dist-info/INSTALLER +1 -0
  332. jaclang/vendor/cattrs-24.1.3.dist-info/METADATA +161 -0
  333. jaclang/vendor/cattrs-24.1.3.dist-info/RECORD +96 -0
  334. jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/WHEEL +1 -1
  335. jaclang/vendor/lark/__init__.py +38 -38
  336. jaclang/vendor/lark/__pyinstaller/__init__.py +6 -6
  337. jaclang/vendor/lark/__pyinstaller/hook-lark.py +14 -14
  338. jaclang/vendor/lark/ast_utils.py +59 -59
  339. jaclang/vendor/lark/common.py +86 -89
  340. jaclang/vendor/lark/exceptions.py +292 -292
  341. jaclang/vendor/lark/grammar.py +130 -130
  342. jaclang/vendor/lark/grammars/common.lark +59 -59
  343. jaclang/vendor/lark/grammars/lark.lark +62 -62
  344. jaclang/vendor/lark/grammars/python.lark +302 -302
  345. jaclang/vendor/lark/grammars/unicode.lark +7 -7
  346. jaclang/vendor/lark/indenter.py +143 -112
  347. jaclang/vendor/lark/lark.py +658 -661
  348. jaclang/vendor/lark/lexer.py +678 -678
  349. jaclang/vendor/lark/load_grammar.py +1428 -1428
  350. jaclang/vendor/lark/parse_tree_builder.py +391 -391
  351. jaclang/vendor/lark/parser_frontends.py +257 -257
  352. jaclang/vendor/lark/parsers/cyk.py +340 -340
  353. jaclang/vendor/lark/parsers/earley.py +317 -308
  354. jaclang/vendor/lark/parsers/earley_common.py +42 -42
  355. jaclang/vendor/lark/parsers/earley_forest.py +802 -810
  356. jaclang/vendor/lark/parsers/grammar_analysis.py +203 -203
  357. jaclang/vendor/lark/parsers/lalr_analysis.py +332 -332
  358. jaclang/vendor/lark/parsers/lalr_interactive_parser.py +158 -157
  359. jaclang/vendor/lark/parsers/lalr_parser.py +122 -122
  360. jaclang/vendor/lark/parsers/lalr_parser_state.py +110 -110
  361. jaclang/vendor/lark/parsers/xearley.py +165 -165
  362. jaclang/vendor/lark/reconstruct.py +107 -107
  363. jaclang/vendor/lark/tools/__init__.py +70 -71
  364. jaclang/vendor/lark/tools/nearley.py +202 -202
  365. jaclang/vendor/lark/tools/serialize.py +32 -32
  366. jaclang/vendor/lark/tools/standalone.py +196 -196
  367. jaclang/vendor/lark/tree.py +267 -272
  368. jaclang/vendor/lark/tree_matcher.py +186 -186
  369. jaclang/vendor/lark/utils.py +346 -361
  370. jaclang/vendor/lark/visitors.py +596 -593
  371. jaclang/vendor/lark-1.2.2.dist-info/INSTALLER +1 -0
  372. jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/METADATA +48 -47
  373. jaclang/vendor/lark-1.2.2.dist-info/RECORD +83 -0
  374. jaclang/vendor/{mypy_extensions-1.0.0.dist-info → lark-1.2.2.dist-info}/WHEEL +1 -1
  375. jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info/licenses}/LICENSE +18 -18
  376. jaclang/vendor/lsprotocol-2023.0.1.dist-info/INSTALLER +1 -0
  377. jaclang/vendor/lsprotocol-2023.0.1.dist-info/METADATA +2 -1
  378. jaclang/vendor/lsprotocol-2023.0.1.dist-info/RECORD +17 -10
  379. jaclang/vendor/lsprotocol-2023.0.1.dist-info/WHEEL +1 -1
  380. jaclang/vendor/pluggy/_version.py +7 -2
  381. jaclang/vendor/pluggy-1.5.0.dist-info/INSTALLER +1 -0
  382. jaclang/vendor/pluggy-1.5.0.dist-info/METADATA +6 -5
  383. jaclang/vendor/pluggy-1.5.0.dist-info/RECORD +24 -14
  384. jaclang/vendor/pluggy-1.5.0.dist-info/WHEEL +1 -1
  385. jaclang/vendor/pygls-1.3.1.dist-info/INSTALLER +1 -0
  386. jaclang/vendor/pygls-1.3.1.dist-info/METADATA +2 -2
  387. jaclang/vendor/pygls-1.3.1.dist-info/RECORD +45 -24
  388. jaclang/vendor/pygls-1.3.1.dist-info/WHEEL +1 -1
  389. {jaclang-0.7.34.dist-info → jaclang-0.8.1.dist-info}/METADATA +2 -1
  390. jaclang-0.8.1.dist-info/RECORD +568 -0
  391. {jaclang-0.7.34.dist-info → jaclang-0.8.1.dist-info}/WHEEL +1 -1
  392. jaclang/compiler/.gitignore +0 -1
  393. jaclang/compiler/compile.py +0 -119
  394. jaclang/compiler/passes/main/access_modifier_pass.py +0 -130
  395. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +0 -656
  396. jaclang/compiler/passes/main/py_collect_dep_pass.py +0 -78
  397. jaclang/compiler/passes/main/pyout_pass.py +0 -86
  398. jaclang/compiler/passes/main/registry_pass.py +0 -156
  399. jaclang/compiler/passes/main/schedules.py +0 -47
  400. jaclang/compiler/passes/main/sub_node_tab_pass.py +0 -36
  401. jaclang/compiler/passes/main/tests/fixtures/registry.jac +0 -36
  402. jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +0 -114
  403. jaclang/compiler/passes/main/tests/test_registry_pass.py +0 -31
  404. jaclang/compiler/passes/main/tests/test_type_check_pass.py +0 -91
  405. jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +0 -29
  406. jaclang/compiler/passes/main/type_check_pass.py +0 -128
  407. jaclang/compiler/passes/tool/schedules.py +0 -18
  408. jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +0 -36
  409. jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +0 -17
  410. jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +0 -32
  411. jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +0 -27
  412. jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +0 -35
  413. jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +0 -25
  414. jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +0 -13
  415. jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +0 -63
  416. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/architype_test.jac +0 -13
  417. jaclang/compiler/passes/utils/mypy_ast_build.py +0 -940
  418. jaclang/compiler/py_info.py +0 -22
  419. jaclang/compiler/semtable.py +0 -159
  420. jaclang/compiler/symtable.py +0 -297
  421. jaclang/langserve/engine.py +0 -541
  422. jaclang/langserve/sem_manager.py +0 -379
  423. jaclang/langserve/server.py +0 -176
  424. jaclang/langserve/tests/session.py +0 -255
  425. jaclang/langserve/utils.py +0 -458
  426. jaclang/plugin/__init__.py +0 -7
  427. jaclang/plugin/builtin.py +0 -57
  428. jaclang/plugin/default.py +0 -1443
  429. jaclang/plugin/feature.py +0 -574
  430. jaclang/plugin/plugin.md +0 -471
  431. jaclang/plugin/spec.py +0 -536
  432. jaclang/plugin/tests/fixtures/impl_match_impl.jac +0 -3
  433. jaclang/plugin/tests/test_features.py +0 -56
  434. jaclang/runtimelib/context.py +0 -191
  435. jaclang/tests/fixtures/builtin_dotgen.jac +0 -42
  436. jaclang/tests/fixtures/create_dynamic_architype.jac +0 -35
  437. jaclang/tests/fixtures/dynamic_architype.jac +0 -34
  438. jaclang/tests/fixtures/impl_grab.impl.jac +0 -5
  439. jaclang/tests/fixtures/mtest.impl.jac +0 -6
  440. jaclang/tests/fixtures/registry.jac +0 -58
  441. jaclang/tests/fixtures/semstr.jac +0 -30
  442. jaclang/tests/main.jac +0 -2
  443. jaclang/utils/profiler.py +0 -62
  444. jaclang/vendor/attrs-23.2.0.dist-info/RECORD +0 -35
  445. jaclang/vendor/cattrs-23.2.3.dist-info/METADATA +0 -221
  446. jaclang/vendor/cattrs-23.2.3.dist-info/RECORD +0 -48
  447. jaclang/vendor/lark-1.1.9.dist-info/RECORD +0 -46
  448. jaclang/vendor/lark-1.1.9.dist-info/WHEEL +0 -5
  449. jaclang/vendor/mypy/__init__.py +0 -1
  450. jaclang/vendor/mypy/__main__.py +0 -37
  451. jaclang/vendor/mypy/api.py +0 -94
  452. jaclang/vendor/mypy/applytype.py +0 -172
  453. jaclang/vendor/mypy/argmap.py +0 -268
  454. jaclang/vendor/mypy/binder.py +0 -538
  455. jaclang/vendor/mypy/bogus_type.py +0 -27
  456. jaclang/vendor/mypy/build.py +0 -3562
  457. jaclang/vendor/mypy/checker.py +0 -8445
  458. jaclang/vendor/mypy/checkexpr.py +0 -6623
  459. jaclang/vendor/mypy/checkmember.py +0 -1363
  460. jaclang/vendor/mypy/checkpattern.py +0 -801
  461. jaclang/vendor/mypy/checkstrformat.py +0 -1109
  462. jaclang/vendor/mypy/config_parser.py +0 -670
  463. jaclang/vendor/mypy/constant_fold.py +0 -187
  464. jaclang/vendor/mypy/constraints.py +0 -1636
  465. jaclang/vendor/mypy/copytype.py +0 -133
  466. jaclang/vendor/mypy/defaults.py +0 -46
  467. jaclang/vendor/mypy/dmypy/__main__.py +0 -6
  468. jaclang/vendor/mypy/dmypy/client.py +0 -749
  469. jaclang/vendor/mypy/dmypy_os.py +0 -42
  470. jaclang/vendor/mypy/dmypy_server.py +0 -1107
  471. jaclang/vendor/mypy/dmypy_util.py +0 -117
  472. jaclang/vendor/mypy/erasetype.py +0 -278
  473. jaclang/vendor/mypy/errorcodes.py +0 -291
  474. jaclang/vendor/mypy/errors.py +0 -1280
  475. jaclang/vendor/mypy/evalexpr.py +0 -205
  476. jaclang/vendor/mypy/expandtype.py +0 -524
  477. jaclang/vendor/mypy/exprtotype.py +0 -209
  478. jaclang/vendor/mypy/fastparse.py +0 -2147
  479. jaclang/vendor/mypy/find_sources.py +0 -243
  480. jaclang/vendor/mypy/fixup.py +0 -428
  481. jaclang/vendor/mypy/freetree.py +0 -23
  482. jaclang/vendor/mypy/fscache.py +0 -309
  483. jaclang/vendor/mypy/fswatcher.py +0 -106
  484. jaclang/vendor/mypy/gclogger.py +0 -47
  485. jaclang/vendor/mypy/git.py +0 -34
  486. jaclang/vendor/mypy/graph_utils.py +0 -112
  487. jaclang/vendor/mypy/indirection.py +0 -121
  488. jaclang/vendor/mypy/infer.py +0 -75
  489. jaclang/vendor/mypy/inspections.py +0 -627
  490. jaclang/vendor/mypy/ipc.py +0 -310
  491. jaclang/vendor/mypy/join.py +0 -871
  492. jaclang/vendor/mypy/literals.py +0 -306
  493. jaclang/vendor/mypy/lookup.py +0 -61
  494. jaclang/vendor/mypy/main.py +0 -1574
  495. jaclang/vendor/mypy/maptype.py +0 -106
  496. jaclang/vendor/mypy/meet.py +0 -1140
  497. jaclang/vendor/mypy/memprofile.py +0 -121
  498. jaclang/vendor/mypy/message_registry.py +0 -329
  499. jaclang/vendor/mypy/messages.py +0 -3186
  500. jaclang/vendor/mypy/metastore.py +0 -225
  501. jaclang/vendor/mypy/mixedtraverser.py +0 -112
  502. jaclang/vendor/mypy/modulefinder.py +0 -875
  503. jaclang/vendor/mypy/moduleinspect.py +0 -184
  504. jaclang/vendor/mypy/mro.py +0 -62
  505. jaclang/vendor/mypy/nodes.py +0 -4115
  506. jaclang/vendor/mypy/operators.py +0 -126
  507. jaclang/vendor/mypy/options.py +0 -556
  508. jaclang/vendor/mypy/parse.py +0 -30
  509. jaclang/vendor/mypy/partially_defined.py +0 -675
  510. jaclang/vendor/mypy/patterns.py +0 -150
  511. jaclang/vendor/mypy/plugin.py +0 -901
  512. jaclang/vendor/mypy/plugins/attrs.py +0 -1166
  513. jaclang/vendor/mypy/plugins/common.py +0 -440
  514. jaclang/vendor/mypy/plugins/ctypes.py +0 -245
  515. jaclang/vendor/mypy/plugins/dataclasses.py +0 -1108
  516. jaclang/vendor/mypy/plugins/default.py +0 -531
  517. jaclang/vendor/mypy/plugins/enums.py +0 -259
  518. jaclang/vendor/mypy/plugins/functools.py +0 -104
  519. jaclang/vendor/mypy/plugins/proper_plugin.py +0 -175
  520. jaclang/vendor/mypy/plugins/singledispatch.py +0 -224
  521. jaclang/vendor/mypy/py.typed +0 -1
  522. jaclang/vendor/mypy/pyinfo.py +0 -78
  523. jaclang/vendor/mypy/reachability.py +0 -362
  524. jaclang/vendor/mypy/refinfo.py +0 -92
  525. jaclang/vendor/mypy/renaming.py +0 -568
  526. jaclang/vendor/mypy/report.py +0 -924
  527. jaclang/vendor/mypy/scope.py +0 -125
  528. jaclang/vendor/mypy/semanal.py +0 -7187
  529. jaclang/vendor/mypy/semanal_classprop.py +0 -187
  530. jaclang/vendor/mypy/semanal_enum.py +0 -253
  531. jaclang/vendor/mypy/semanal_infer.py +0 -128
  532. jaclang/vendor/mypy/semanal_main.py +0 -511
  533. jaclang/vendor/mypy/semanal_namedtuple.py +0 -670
  534. jaclang/vendor/mypy/semanal_newtype.py +0 -273
  535. jaclang/vendor/mypy/semanal_pass1.py +0 -156
  536. jaclang/vendor/mypy/semanal_shared.py +0 -490
  537. jaclang/vendor/mypy/semanal_typeargs.py +0 -265
  538. jaclang/vendor/mypy/semanal_typeddict.py +0 -575
  539. jaclang/vendor/mypy/server/astdiff.py +0 -518
  540. jaclang/vendor/mypy/server/astmerge.py +0 -562
  541. jaclang/vendor/mypy/server/aststrip.py +0 -281
  542. jaclang/vendor/mypy/server/deps.py +0 -1137
  543. jaclang/vendor/mypy/server/mergecheck.py +0 -83
  544. jaclang/vendor/mypy/server/objgraph.py +0 -101
  545. jaclang/vendor/mypy/server/subexpr.py +0 -198
  546. jaclang/vendor/mypy/server/target.py +0 -11
  547. jaclang/vendor/mypy/server/trigger.py +0 -26
  548. jaclang/vendor/mypy/server/update.py +0 -1339
  549. jaclang/vendor/mypy/sharedparse.py +0 -112
  550. jaclang/vendor/mypy/solve.py +0 -562
  551. jaclang/vendor/mypy/split_namespace.py +0 -35
  552. jaclang/vendor/mypy/state.py +0 -28
  553. jaclang/vendor/mypy/stats.py +0 -489
  554. jaclang/vendor/mypy/strconv.py +0 -641
  555. jaclang/vendor/mypy/stubdoc.py +0 -491
  556. jaclang/vendor/mypy/stubgen.py +0 -1886
  557. jaclang/vendor/mypy/stubgenc.py +0 -993
  558. jaclang/vendor/mypy/stubinfo.py +0 -173
  559. jaclang/vendor/mypy/stubtest.py +0 -2079
  560. jaclang/vendor/mypy/stubutil.py +0 -834
  561. jaclang/vendor/mypy/subtypes.py +0 -1980
  562. jaclang/vendor/mypy/suggestions.py +0 -1046
  563. jaclang/vendor/mypy/test/config.py +0 -28
  564. jaclang/vendor/mypy/test/data.py +0 -821
  565. jaclang/vendor/mypy/test/helpers.py +0 -476
  566. jaclang/vendor/mypy/test/meta/_pytest.py +0 -72
  567. jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -47
  568. jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -73
  569. jaclang/vendor/mypy/test/meta/test_update_data.py +0 -135
  570. jaclang/vendor/mypy/test/test_find_sources.py +0 -376
  571. jaclang/vendor/mypy/test/test_ref_info.py +0 -45
  572. jaclang/vendor/mypy/test/testapi.py +0 -45
  573. jaclang/vendor/mypy/test/testargs.py +0 -77
  574. jaclang/vendor/mypy/test/testcheck.py +0 -322
  575. jaclang/vendor/mypy/test/testcmdline.py +0 -152
  576. jaclang/vendor/mypy/test/testconstraints.py +0 -134
  577. jaclang/vendor/mypy/test/testdaemon.py +0 -132
  578. jaclang/vendor/mypy/test/testdeps.py +0 -77
  579. jaclang/vendor/mypy/test/testdiff.py +0 -67
  580. jaclang/vendor/mypy/test/testerrorstream.py +0 -46
  581. jaclang/vendor/mypy/test/testfinegrained.py +0 -438
  582. jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -18
  583. jaclang/vendor/mypy/test/testformatter.py +0 -85
  584. jaclang/vendor/mypy/test/testfscache.py +0 -101
  585. jaclang/vendor/mypy/test/testgraph.py +0 -83
  586. jaclang/vendor/mypy/test/testinfer.py +0 -373
  587. jaclang/vendor/mypy/test/testipc.py +0 -119
  588. jaclang/vendor/mypy/test/testmerge.py +0 -238
  589. jaclang/vendor/mypy/test/testmodulefinder.py +0 -278
  590. jaclang/vendor/mypy/test/testmypyc.py +0 -14
  591. jaclang/vendor/mypy/test/testparse.py +0 -107
  592. jaclang/vendor/mypy/test/testpep561.py +0 -211
  593. jaclang/vendor/mypy/test/testpythoneval.py +0 -117
  594. jaclang/vendor/mypy/test/testreports.py +0 -55
  595. jaclang/vendor/mypy/test/testsemanal.py +0 -209
  596. jaclang/vendor/mypy/test/testsolve.py +0 -285
  597. jaclang/vendor/mypy/test/teststubgen.py +0 -1412
  598. jaclang/vendor/mypy/test/teststubinfo.py +0 -12
  599. jaclang/vendor/mypy/test/teststubtest.py +0 -2492
  600. jaclang/vendor/mypy/test/testsubtypes.py +0 -303
  601. jaclang/vendor/mypy/test/testtransform.py +0 -64
  602. jaclang/vendor/mypy/test/testtypegen.py +0 -83
  603. jaclang/vendor/mypy/test/testtypes.py +0 -1551
  604. jaclang/vendor/mypy/test/testutil.py +0 -111
  605. jaclang/vendor/mypy/test/typefixture.py +0 -415
  606. jaclang/vendor/mypy/test/update_data.py +0 -87
  607. jaclang/vendor/mypy/test/visitors.py +0 -63
  608. jaclang/vendor/mypy/traverser.py +0 -961
  609. jaclang/vendor/mypy/treetransform.py +0 -800
  610. jaclang/vendor/mypy/tvar_scope.py +0 -169
  611. jaclang/vendor/mypy/type_visitor.py +0 -564
  612. jaclang/vendor/mypy/typeanal.py +0 -2596
  613. jaclang/vendor/mypy/typeops.py +0 -1082
  614. jaclang/vendor/mypy/types.py +0 -3708
  615. jaclang/vendor/mypy/types_utils.py +0 -166
  616. jaclang/vendor/mypy/typeshed/LICENSE +0 -237
  617. jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +0 -309
  618. jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +0 -36
  619. jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +0 -3
  620. jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +0 -591
  621. jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +0 -84
  622. jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +0 -1
  623. jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +0 -133
  624. jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +0 -94
  625. jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +0 -8
  626. jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +0 -25
  627. jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +0 -90
  628. jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +0 -207
  629. jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +0 -566
  630. jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +0 -281
  631. jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +0 -33
  632. jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +0 -164
  633. jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +0 -11
  634. jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +0 -28
  635. jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +0 -49
  636. jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +0 -100
  637. jaclang/vendor/mypy/typeshed/stdlib/_lsprof.pyi +0 -35
  638. jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +0 -16
  639. jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +0 -92
  640. jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +0 -147
  641. jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +0 -34
  642. jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +0 -33
  643. jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +0 -14
  644. jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +0 -43
  645. jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +0 -12
  646. jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +0 -16
  647. jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +0 -803
  648. jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +0 -103
  649. jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +0 -59
  650. jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +0 -17
  651. jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +0 -121
  652. jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +0 -17
  653. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +0 -347
  654. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +0 -37
  655. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +0 -44
  656. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +0 -9
  657. jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +0 -55
  658. jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +0 -41
  659. jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +0 -51
  660. jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +0 -255
  661. jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +0 -51
  662. jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +0 -91
  663. jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +0 -3
  664. jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +0 -595
  665. jaclang/vendor/mypy/typeshed/stdlib/array.pyi +0 -92
  666. jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +0 -277
  667. jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +0 -21
  668. jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +0 -41
  669. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +0 -440
  670. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +0 -19
  671. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +0 -63
  672. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +0 -9
  673. jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +0 -20
  674. jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +0 -26
  675. jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +0 -580
  676. jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +0 -43
  677. jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +0 -20
  678. jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +0 -57
  679. jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +0 -121
  680. jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +0 -3
  681. jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +0 -9
  682. jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +0 -64
  683. jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +0 -34
  684. jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +0 -47
  685. jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +0 -32
  686. jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +0 -8
  687. jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +0 -165
  688. jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +0 -10
  689. jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +0 -153
  690. jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +0 -229
  691. jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +0 -25
  692. jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +0 -497
  693. jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +0 -9
  694. jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +0 -19
  695. jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +0 -47
  696. jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +0 -94
  697. jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +0 -196
  698. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +0 -85
  699. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +0 -49
  700. jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +0 -90
  701. jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +0 -12
  702. jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +0 -43
  703. jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +0 -59
  704. jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +0 -102
  705. jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +0 -36
  706. jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +0 -45
  707. jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +0 -4
  708. jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +0 -1936
  709. jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +0 -146
  710. jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +0 -31
  711. jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +0 -208
  712. jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +0 -118
  713. jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +0 -32
  714. jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +0 -20
  715. jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +0 -36
  716. jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +0 -45
  717. jaclang/vendor/mypy/typeshed/stdlib/code.pyi +0 -33
  718. jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +0 -285
  719. jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +0 -13
  720. jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +0 -485
  721. jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +0 -2
  722. jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +0 -13
  723. jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +0 -111
  724. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +0 -32
  725. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +0 -126
  726. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +0 -233
  727. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +0 -80
  728. jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +0 -313
  729. jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +0 -208
  730. jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +0 -63
  731. jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +0 -16
  732. jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +0 -21
  733. jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +0 -12
  734. jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +0 -147
  735. jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +0 -187
  736. jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +0 -19
  737. jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +0 -6
  738. jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +0 -298
  739. jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +0 -22
  740. jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +0 -62
  741. jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +0 -1
  742. jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +0 -22
  743. jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +0 -11
  744. jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +0 -315
  745. jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +0 -295
  746. jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +0 -95
  747. jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +0 -31
  748. jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +0 -41
  749. jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +0 -37
  750. jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +0 -2
  751. jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +0 -140
  752. jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +0 -144
  753. jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +0 -5
  754. jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +0 -20
  755. jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +0 -3
  756. jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +0 -152
  757. jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +0 -66
  758. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +0 -25
  759. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +0 -21
  760. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +0 -45
  761. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +0 -52
  762. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +0 -16
  763. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +0 -31
  764. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +0 -27
  765. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +0 -50
  766. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +0 -44
  767. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +0 -24
  768. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +0 -39
  769. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +0 -17
  770. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +0 -83
  771. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +0 -63
  772. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +0 -19
  773. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +0 -18
  774. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +0 -16
  775. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +0 -25
  776. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +0 -18
  777. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +0 -18
  778. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +0 -42
  779. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +0 -17
  780. jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +0 -17
  781. jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +0 -57
  782. jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +0 -20
  783. jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +0 -1
  784. jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +0 -3
  785. jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +0 -13
  786. jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +0 -146
  787. jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +0 -19
  788. jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +0 -36
  789. jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +0 -34
  790. jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +0 -14
  791. jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +0 -50
  792. jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +0 -25
  793. jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +0 -3
  794. jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +0 -2
  795. jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +0 -31
  796. jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +0 -21
  797. jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +0 -3
  798. jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +0 -46
  799. jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +0 -36
  800. jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +0 -248
  801. jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +0 -2
  802. jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +0 -29
  803. jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +0 -392
  804. jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +0 -51
  805. jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +0 -13
  806. jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +0 -34
  807. jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +0 -11
  808. jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +0 -8
  809. jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +0 -39
  810. jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +0 -23
  811. jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +0 -40
  812. jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +0 -31
  813. jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +0 -178
  814. jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +0 -12
  815. jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +0 -165
  816. jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +0 -17
  817. jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +0 -17
  818. jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +0 -8
  819. jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +0 -17
  820. jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +0 -8
  821. jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +0 -18
  822. jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +0 -5
  823. jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +0 -9
  824. jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +0 -26
  825. jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +0 -38
  826. jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +0 -28
  827. jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +0 -70
  828. jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +0 -10
  829. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +0 -21
  830. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +0 -22
  831. jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +0 -12
  832. jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +0 -320
  833. jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +0 -222
  834. jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +0 -13
  835. jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +0 -127
  836. jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +0 -57
  837. jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +0 -213
  838. jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +0 -9
  839. jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +0 -88
  840. jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +0 -150
  841. jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +0 -178
  842. jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +0 -213
  843. jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +0 -37
  844. jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +0 -52
  845. jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +0 -11
  846. jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +0 -8
  847. jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +0 -169
  848. jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +0 -42
  849. jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +0 -28
  850. jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +0 -22
  851. jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +0 -160
  852. jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +0 -167
  853. jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +0 -17
  854. jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +0 -38
  855. jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +0 -6
  856. jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +0 -6
  857. jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +0 -34
  858. jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +0 -105
  859. jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +0 -259
  860. jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +0 -159
  861. jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +0 -60
  862. jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +0 -83
  863. jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +0 -168
  864. jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +0 -17
  865. jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +0 -62
  866. jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +0 -24
  867. jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +0 -15
  868. jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +0 -172
  869. jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +0 -179
  870. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +0 -285
  871. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +0 -49
  872. jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +0 -68
  873. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +0 -46
  874. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +0 -12
  875. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +0 -14
  876. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +0 -56
  877. jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +0 -11
  878. jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +0 -43
  879. jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +0 -632
  880. jaclang/vendor/mypy/typeshed/stdlib/io.pyi +0 -238
  881. jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +0 -208
  882. jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +0 -273
  883. jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +0 -61
  884. jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +0 -32
  885. jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +0 -40
  886. jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +0 -1
  887. jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +0 -21
  888. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +0 -28
  889. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +0 -42
  890. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +0 -8
  891. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +0 -10
  892. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +0 -8
  893. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +0 -8
  894. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +0 -16
  895. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +0 -14
  896. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +0 -8
  897. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +0 -8
  898. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +0 -13
  899. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +0 -9
  900. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +0 -8
  901. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +0 -8
  902. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +0 -8
  903. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +0 -8
  904. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +0 -15
  905. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +0 -16
  906. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +0 -21
  907. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +0 -6
  908. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +0 -11
  909. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +0 -9
  910. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +0 -8
  911. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +0 -9
  912. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +0 -7
  913. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +0 -7
  914. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +0 -9
  915. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +0 -17
  916. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +0 -10
  917. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +0 -8
  918. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +0 -19
  919. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +0 -8
  920. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +0 -8
  921. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +0 -12
  922. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +0 -8
  923. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +0 -12
  924. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +0 -8
  925. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +0 -8
  926. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +0 -8
  927. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +0 -9
  928. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +0 -17
  929. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +0 -8
  930. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +0 -7
  931. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +0 -8
  932. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +0 -9
  933. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +0 -8
  934. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +0 -17
  935. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +0 -8
  936. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +0 -12
  937. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +0 -15
  938. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +0 -12
  939. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +0 -20
  940. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +0 -8
  941. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +0 -9
  942. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +0 -42
  943. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +0 -9
  944. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +0 -27
  945. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +0 -24
  946. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +0 -7
  947. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +0 -30
  948. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +0 -50
  949. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +0 -67
  950. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +0 -96
  951. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +0 -114
  952. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +0 -117
  953. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +0 -82
  954. jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +0 -23
  955. jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +0 -152
  956. jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +0 -658
  957. jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +0 -134
  958. jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +0 -275
  959. jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +0 -197
  960. jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +0 -256
  961. jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +0 -11
  962. jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +0 -33
  963. jaclang/vendor/mypy/typeshed/stdlib/math.pyi +0 -125
  964. jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +0 -46
  965. jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +0 -113
  966. jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +0 -66
  967. jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +0 -177
  968. jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +0 -94
  969. jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +0 -13
  970. jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +0 -7
  971. jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +0 -32
  972. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +0 -90
  973. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +0 -75
  974. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +0 -189
  975. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +0 -77
  976. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +0 -39
  977. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +0 -31
  978. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +0 -36
  979. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +0 -212
  980. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +0 -103
  981. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +0 -23
  982. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +0 -16
  983. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +0 -20
  984. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +0 -30
  985. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +0 -39
  986. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +0 -41
  987. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +0 -90
  988. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +0 -20
  989. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +0 -18
  990. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +0 -40
  991. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +0 -107
  992. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +0 -32
  993. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +0 -54
  994. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +0 -98
  995. jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +0 -23
  996. jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +0 -9
  997. jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +0 -125
  998. jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +0 -111
  999. jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +0 -119
  1000. jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +0 -2
  1001. jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +0 -209
  1002. jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +0 -59
  1003. jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +0 -110
  1004. jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +0 -255
  1005. jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +0 -1157
  1006. jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +0 -8
  1007. jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +0 -131
  1008. jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +0 -24
  1009. jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +0 -232
  1010. jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +0 -181
  1011. jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +0 -271
  1012. jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +0 -167
  1013. jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +0 -16
  1014. jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +0 -53
  1015. jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +0 -42
  1016. jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +0 -113
  1017. jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +0 -71
  1018. jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +0 -361
  1019. jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +0 -161
  1020. jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +0 -112
  1021. jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +0 -31
  1022. jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +0 -80
  1023. jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +0 -19
  1024. jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +0 -28
  1025. jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +0 -34
  1026. jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +0 -74
  1027. jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +0 -261
  1028. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  1029. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +0 -1
  1030. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +0 -85
  1031. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +0 -49
  1032. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +0 -11
  1033. jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +0 -66
  1034. jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +0 -11
  1035. jaclang/vendor/mypy/typeshed/stdlib/random.pyi +0 -138
  1036. jaclang/vendor/mypy/typeshed/stdlib/re.pyi +0 -290
  1037. jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +0 -36
  1038. jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +0 -65
  1039. jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +0 -94
  1040. jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +0 -9
  1041. jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +0 -24
  1042. jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +0 -42
  1043. jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +0 -15
  1044. jaclang/vendor/mypy/typeshed/stdlib/select.pyi +0 -155
  1045. jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +0 -67
  1046. jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +0 -46
  1047. jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +0 -63
  1048. jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +0 -185
  1049. jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +0 -188
  1050. jaclang/vendor/mypy/typeshed/stdlib/site.pyi +0 -27
  1051. jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +0 -91
  1052. jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +0 -204
  1053. jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +0 -14
  1054. jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +0 -825
  1055. jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +0 -168
  1056. jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +0 -41
  1057. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +0 -1
  1058. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +0 -551
  1059. jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +0 -11
  1060. jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +0 -130
  1061. jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +0 -104
  1062. jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +0 -537
  1063. jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +0 -1
  1064. jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +0 -132
  1065. jaclang/vendor/mypy/typeshed/stdlib/string.pyi +0 -83
  1066. jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +0 -27
  1067. jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +0 -26
  1068. jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +0 -2615
  1069. jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +0 -86
  1070. jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +0 -93
  1071. jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +0 -58
  1072. jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +0 -373
  1073. jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +0 -52
  1074. jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +0 -48
  1075. jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +0 -46
  1076. jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +0 -16
  1077. jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +0 -441
  1078. jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +0 -122
  1079. jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +0 -477
  1080. jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +0 -267
  1081. jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +0 -103
  1082. jaclang/vendor/mypy/typeshed/stdlib/this.pyi +0 -2
  1083. jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +0 -187
  1084. jaclang/vendor/mypy/typeshed/stdlib/time.pyi +0 -108
  1085. jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +0 -32
  1086. jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +0 -3654
  1087. jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +0 -20
  1088. jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +0 -14
  1089. jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +0 -80
  1090. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +0 -16
  1091. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +0 -20
  1092. jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +0 -151
  1093. jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +0 -116
  1094. jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +0 -44
  1095. jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +0 -9
  1096. jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +0 -54
  1097. jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +0 -299
  1098. jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +0 -1204
  1099. jaclang/vendor/mypy/typeshed/stdlib/token.pyi +0 -159
  1100. jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +0 -177
  1101. jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +0 -10
  1102. jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +0 -79
  1103. jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +0 -262
  1104. jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +0 -124
  1105. jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +0 -30
  1106. jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +0 -713
  1107. jaclang/vendor/mypy/typeshed/stdlib/types.pyi +0 -614
  1108. jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +0 -976
  1109. jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +0 -509
  1110. jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +0 -73
  1111. jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +0 -67
  1112. jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +0 -27
  1113. jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +0 -21
  1114. jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +0 -342
  1115. jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +0 -51
  1116. jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +0 -69
  1117. jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +0 -430
  1118. jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +0 -47
  1119. jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +0 -72
  1120. jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +0 -15
  1121. jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +0 -22
  1122. jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +0 -23
  1123. jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  1124. jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +0 -23
  1125. jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +0 -210
  1126. jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +0 -400
  1127. jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +0 -43
  1128. jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +0 -20
  1129. jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +0 -13
  1130. jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +0 -100
  1131. jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +0 -112
  1132. jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +0 -85
  1133. jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +0 -149
  1134. jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +0 -74
  1135. jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +0 -132
  1136. jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +0 -28
  1137. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  1138. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +0 -91
  1139. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +0 -26
  1140. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +0 -37
  1141. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +0 -32
  1142. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +0 -24
  1143. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +0 -50
  1144. jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +0 -57
  1145. jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +0 -1
  1146. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +0 -19
  1147. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +0 -69
  1148. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +0 -8
  1149. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +0 -100
  1150. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +0 -22
  1151. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +0 -404
  1152. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +0 -94
  1153. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +0 -108
  1154. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +0 -28
  1155. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +0 -34
  1156. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +0 -327
  1157. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  1158. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +0 -1
  1159. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +0 -1
  1160. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +0 -1
  1161. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +0 -1
  1162. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +0 -1
  1163. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +0 -25
  1164. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +0 -19
  1165. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +0 -55
  1166. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +0 -60
  1167. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +0 -87
  1168. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  1169. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +0 -296
  1170. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +0 -143
  1171. jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +0 -22
  1172. jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +0 -20
  1173. jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +0 -306
  1174. jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +0 -95
  1175. jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +0 -32
  1176. jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +0 -56
  1177. jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +0 -38
  1178. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +0 -218
  1179. jaclang/vendor/mypy/typestate.py +0 -323
  1180. jaclang/vendor/mypy/typetraverser.py +0 -148
  1181. jaclang/vendor/mypy/typevars.py +0 -93
  1182. jaclang/vendor/mypy/typevartuples.py +0 -32
  1183. jaclang/vendor/mypy/util.py +0 -869
  1184. jaclang/vendor/mypy/version.py +0 -1
  1185. jaclang/vendor/mypy/visitor.py +0 -621
  1186. jaclang/vendor/mypy/xml/mypy-html.css +0 -104
  1187. jaclang/vendor/mypy/xml/mypy-html.xslt +0 -81
  1188. jaclang/vendor/mypy/xml/mypy-txt.xslt +0 -100
  1189. jaclang/vendor/mypy/xml/mypy.xsd +0 -50
  1190. jaclang/vendor/mypy-1.10.0.dist-info/LICENSE +0 -229
  1191. jaclang/vendor/mypy-1.10.0.dist-info/METADATA +0 -48
  1192. jaclang/vendor/mypy-1.10.0.dist-info/RECORD +0 -1241
  1193. jaclang/vendor/mypy-1.10.0.dist-info/WHEEL +0 -6
  1194. jaclang/vendor/mypy-1.10.0.dist-info/entry_points.txt +0 -6
  1195. jaclang/vendor/mypy-1.10.0.dist-info/top_level.txt +0 -3
  1196. jaclang/vendor/mypy_extensions-1.0.0.dist-info/LICENSE +0 -27
  1197. jaclang/vendor/mypy_extensions-1.0.0.dist-info/METADATA +0 -29
  1198. jaclang/vendor/mypy_extensions-1.0.0.dist-info/RECORD +0 -6
  1199. jaclang/vendor/mypy_extensions-1.0.0.dist-info/top_level.txt +0 -1
  1200. jaclang/vendor/mypy_extensions.py +0 -213
  1201. jaclang/vendor/mypyc/README.md +0 -133
  1202. jaclang/vendor/mypyc/__init__.py +0 -0
  1203. jaclang/vendor/mypyc/__main__.py +0 -57
  1204. jaclang/vendor/mypyc/analysis/__init__.py +0 -0
  1205. jaclang/vendor/mypyc/analysis/attrdefined.py +0 -436
  1206. jaclang/vendor/mypyc/analysis/blockfreq.py +0 -32
  1207. jaclang/vendor/mypyc/analysis/dataflow.py +0 -628
  1208. jaclang/vendor/mypyc/analysis/ircheck.py +0 -433
  1209. jaclang/vendor/mypyc/analysis/selfleaks.py +0 -211
  1210. jaclang/vendor/mypyc/build.py +0 -616
  1211. jaclang/vendor/mypyc/codegen/__init__.py +0 -0
  1212. jaclang/vendor/mypyc/codegen/cstring.py +0 -54
  1213. jaclang/vendor/mypyc/codegen/emit.py +0 -1193
  1214. jaclang/vendor/mypyc/codegen/emitclass.py +0 -1060
  1215. jaclang/vendor/mypyc/codegen/emitfunc.py +0 -852
  1216. jaclang/vendor/mypyc/codegen/emitmodule.py +0 -1136
  1217. jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -979
  1218. jaclang/vendor/mypyc/codegen/literals.py +0 -302
  1219. jaclang/vendor/mypyc/common.py +0 -136
  1220. jaclang/vendor/mypyc/crash.py +0 -31
  1221. jaclang/vendor/mypyc/doc/Makefile +0 -20
  1222. jaclang/vendor/mypyc/doc/bool_operations.rst +0 -27
  1223. jaclang/vendor/mypyc/doc/compilation_units.rst +0 -20
  1224. jaclang/vendor/mypyc/doc/conf.py +0 -59
  1225. jaclang/vendor/mypyc/doc/cpython-timings.md +0 -25
  1226. jaclang/vendor/mypyc/doc/dev-intro.md +0 -548
  1227. jaclang/vendor/mypyc/doc/dict_operations.rst +0 -59
  1228. jaclang/vendor/mypyc/doc/differences_from_python.rst +0 -332
  1229. jaclang/vendor/mypyc/doc/float_operations.rst +0 -50
  1230. jaclang/vendor/mypyc/doc/future.md +0 -42
  1231. jaclang/vendor/mypyc/doc/getting_started.rst +0 -240
  1232. jaclang/vendor/mypyc/doc/index.rst +0 -61
  1233. jaclang/vendor/mypyc/doc/int_operations.rst +0 -162
  1234. jaclang/vendor/mypyc/doc/introduction.rst +0 -150
  1235. jaclang/vendor/mypyc/doc/list_operations.rst +0 -65
  1236. jaclang/vendor/mypyc/doc/make.bat +0 -35
  1237. jaclang/vendor/mypyc/doc/native_classes.rst +0 -206
  1238. jaclang/vendor/mypyc/doc/native_operations.rst +0 -55
  1239. jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +0 -244
  1240. jaclang/vendor/mypyc/doc/set_operations.rst +0 -47
  1241. jaclang/vendor/mypyc/doc/str_operations.rst +0 -35
  1242. jaclang/vendor/mypyc/doc/tuple_operations.rst +0 -33
  1243. jaclang/vendor/mypyc/doc/using_type_annotations.rst +0 -398
  1244. jaclang/vendor/mypyc/errors.py +0 -29
  1245. jaclang/vendor/mypyc/external/googletest/LICENSE +0 -28
  1246. jaclang/vendor/mypyc/external/googletest/README.md +0 -280
  1247. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +0 -294
  1248. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +0 -250
  1249. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +0 -1444
  1250. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +0 -510
  1251. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +0 -993
  1252. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +0 -232
  1253. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +0 -179
  1254. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +0 -263
  1255. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +0 -2236
  1256. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +0 -358
  1257. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +0 -58
  1258. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +0 -69
  1259. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  1260. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +0 -41
  1261. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -319
  1262. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +0 -206
  1263. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +0 -1238
  1264. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  1265. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
  1266. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
  1267. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +0 -731
  1268. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +0 -93
  1269. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +0 -2560
  1270. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +0 -167
  1271. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  1272. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  1273. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +0 -3331
  1274. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -297
  1275. jaclang/vendor/mypyc/external/googletest/make/Makefile +0 -61
  1276. jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +0 -48
  1277. jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +0 -1342
  1278. jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +0 -387
  1279. jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +0 -1183
  1280. jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +0 -1259
  1281. jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +0 -373
  1282. jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +0 -110
  1283. jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +0 -118
  1284. jaclang/vendor/mypyc/external/googletest/src/gtest.cc +0 -5388
  1285. jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +0 -38
  1286. jaclang/vendor/mypyc/ir/__init__.py +0 -0
  1287. jaclang/vendor/mypyc/ir/class_ir.py +0 -499
  1288. jaclang/vendor/mypyc/ir/func_ir.py +0 -370
  1289. jaclang/vendor/mypyc/ir/module_ir.py +0 -88
  1290. jaclang/vendor/mypyc/ir/ops.py +0 -1727
  1291. jaclang/vendor/mypyc/ir/pprint.py +0 -516
  1292. jaclang/vendor/mypyc/ir/rtypes.py +0 -1038
  1293. jaclang/vendor/mypyc/irbuild/__init__.py +0 -0
  1294. jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -123
  1295. jaclang/vendor/mypyc/irbuild/builder.py +0 -1394
  1296. jaclang/vendor/mypyc/irbuild/callable_class.py +0 -173
  1297. jaclang/vendor/mypyc/irbuild/classdef.py +0 -850
  1298. jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -95
  1299. jaclang/vendor/mypyc/irbuild/context.py +0 -186
  1300. jaclang/vendor/mypyc/irbuild/env_class.py +0 -223
  1301. jaclang/vendor/mypyc/irbuild/expression.py +0 -1070
  1302. jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -1075
  1303. jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -250
  1304. jaclang/vendor/mypyc/irbuild/function.py +0 -1088
  1305. jaclang/vendor/mypyc/irbuild/generator.py +0 -346
  1306. jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -2389
  1307. jaclang/vendor/mypyc/irbuild/main.py +0 -153
  1308. jaclang/vendor/mypyc/irbuild/mapper.py +0 -221
  1309. jaclang/vendor/mypyc/irbuild/match.py +0 -355
  1310. jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -197
  1311. jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +0 -203
  1312. jaclang/vendor/mypyc/irbuild/prepare.py +0 -609
  1313. jaclang/vendor/mypyc/irbuild/specialize.py +0 -822
  1314. jaclang/vendor/mypyc/irbuild/statement.py +0 -1017
  1315. jaclang/vendor/mypyc/irbuild/targets.py +0 -57
  1316. jaclang/vendor/mypyc/irbuild/util.py +0 -189
  1317. jaclang/vendor/mypyc/irbuild/visitor.py +0 -401
  1318. jaclang/vendor/mypyc/irbuild/vtable.py +0 -82
  1319. jaclang/vendor/mypyc/lib-rt/CPy.h +0 -638
  1320. jaclang/vendor/mypyc/lib-rt/bytes_ops.c +0 -143
  1321. jaclang/vendor/mypyc/lib-rt/dict_ops.c +0 -446
  1322. jaclang/vendor/mypyc/lib-rt/exc_ops.c +0 -259
  1323. jaclang/vendor/mypyc/lib-rt/float_ops.c +0 -192
  1324. jaclang/vendor/mypyc/lib-rt/generic_ops.c +0 -64
  1325. jaclang/vendor/mypyc/lib-rt/getargs.c +0 -450
  1326. jaclang/vendor/mypyc/lib-rt/getargsfast.c +0 -569
  1327. jaclang/vendor/mypyc/lib-rt/init.c +0 -13
  1328. jaclang/vendor/mypyc/lib-rt/int_ops.c +0 -803
  1329. jaclang/vendor/mypyc/lib-rt/list_ops.c +0 -335
  1330. jaclang/vendor/mypyc/lib-rt/misc_ops.c +0 -942
  1331. jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +0 -18
  1332. jaclang/vendor/mypyc/lib-rt/mypyc_util.h +0 -118
  1333. jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +0 -497
  1334. jaclang/vendor/mypyc/lib-rt/pythonsupport.h +0 -533
  1335. jaclang/vendor/mypyc/lib-rt/set_ops.c +0 -17
  1336. jaclang/vendor/mypyc/lib-rt/setup.py +0 -70
  1337. jaclang/vendor/mypyc/lib-rt/str_ops.c +0 -241
  1338. jaclang/vendor/mypyc/lib-rt/test_capi.cc +0 -585
  1339. jaclang/vendor/mypyc/lib-rt/tuple_ops.c +0 -61
  1340. jaclang/vendor/mypyc/lower/__init__.py +0 -0
  1341. jaclang/vendor/mypyc/lower/int_ops.py +0 -113
  1342. jaclang/vendor/mypyc/lower/list_ops.py +0 -45
  1343. jaclang/vendor/mypyc/lower/misc_ops.py +0 -12
  1344. jaclang/vendor/mypyc/lower/registry.py +0 -26
  1345. jaclang/vendor/mypyc/namegen.py +0 -115
  1346. jaclang/vendor/mypyc/options.py +0 -32
  1347. jaclang/vendor/mypyc/primitives/__init__.py +0 -0
  1348. jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -101
  1349. jaclang/vendor/mypyc/primitives/dict_ops.py +0 -325
  1350. jaclang/vendor/mypyc/primitives/exc_ops.py +0 -101
  1351. jaclang/vendor/mypyc/primitives/float_ops.py +0 -168
  1352. jaclang/vendor/mypyc/primitives/generic_ops.py +0 -384
  1353. jaclang/vendor/mypyc/primitives/int_ops.py +0 -303
  1354. jaclang/vendor/mypyc/primitives/list_ops.py +0 -310
  1355. jaclang/vendor/mypyc/primitives/misc_ops.py +0 -267
  1356. jaclang/vendor/mypyc/primitives/registry.py +0 -360
  1357. jaclang/vendor/mypyc/primitives/set_ops.py +0 -121
  1358. jaclang/vendor/mypyc/primitives/str_ops.py +0 -229
  1359. jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -83
  1360. jaclang/vendor/mypyc/rt_subtype.py +0 -77
  1361. jaclang/vendor/mypyc/sametype.py +0 -83
  1362. jaclang/vendor/mypyc/subtype.py +0 -88
  1363. jaclang/vendor/mypyc/test/__init__.py +0 -0
  1364. jaclang/vendor/mypyc/test/config.py +0 -13
  1365. jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -46
  1366. jaclang/vendor/mypyc/test/test_analysis.py +0 -77
  1367. jaclang/vendor/mypyc/test/test_cheader.py +0 -53
  1368. jaclang/vendor/mypyc/test/test_commandline.py +0 -82
  1369. jaclang/vendor/mypyc/test/test_emit.py +0 -69
  1370. jaclang/vendor/mypyc/test/test_emitclass.py +0 -35
  1371. jaclang/vendor/mypyc/test/test_emitfunc.py +0 -928
  1372. jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -60
  1373. jaclang/vendor/mypyc/test/test_exceptions.py +0 -56
  1374. jaclang/vendor/mypyc/test/test_external.py +0 -49
  1375. jaclang/vendor/mypyc/test/test_irbuild.py +0 -87
  1376. jaclang/vendor/mypyc/test/test_ircheck.py +0 -199
  1377. jaclang/vendor/mypyc/test/test_literals.py +0 -90
  1378. jaclang/vendor/mypyc/test/test_lowering.py +0 -56
  1379. jaclang/vendor/mypyc/test/test_namegen.py +0 -48
  1380. jaclang/vendor/mypyc/test/test_optimizations.py +0 -68
  1381. jaclang/vendor/mypyc/test/test_pprint.py +0 -42
  1382. jaclang/vendor/mypyc/test/test_rarray.py +0 -48
  1383. jaclang/vendor/mypyc/test/test_refcount.py +0 -59
  1384. jaclang/vendor/mypyc/test/test_run.py +0 -426
  1385. jaclang/vendor/mypyc/test/test_serialization.py +0 -108
  1386. jaclang/vendor/mypyc/test/test_struct.py +0 -112
  1387. jaclang/vendor/mypyc/test/test_tuplename.py +0 -33
  1388. jaclang/vendor/mypyc/test/test_typeops.py +0 -97
  1389. jaclang/vendor/mypyc/test/testutil.py +0 -283
  1390. jaclang/vendor/mypyc/test-data/alwaysdefined.test +0 -732
  1391. jaclang/vendor/mypyc/test-data/analysis.test +0 -470
  1392. jaclang/vendor/mypyc/test-data/commandline.test +0 -245
  1393. jaclang/vendor/mypyc/test-data/driver/driver.py +0 -48
  1394. jaclang/vendor/mypyc/test-data/exceptions-freq.test +0 -125
  1395. jaclang/vendor/mypyc/test-data/exceptions.test +0 -699
  1396. jaclang/vendor/mypyc/test-data/fixtures/ir.py +0 -373
  1397. jaclang/vendor/mypyc/test-data/fixtures/testutil.py +0 -103
  1398. jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +0 -169
  1399. jaclang/vendor/mypyc/test-data/irbuild-any.test +0 -236
  1400. jaclang/vendor/mypyc/test-data/irbuild-basic.test +0 -3399
  1401. jaclang/vendor/mypyc/test-data/irbuild-bool.test +0 -424
  1402. jaclang/vendor/mypyc/test-data/irbuild-bytes.test +0 -181
  1403. jaclang/vendor/mypyc/test-data/irbuild-classes.test +0 -1302
  1404. jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +0 -480
  1405. jaclang/vendor/mypyc/test-data/irbuild-dict.test +0 -584
  1406. jaclang/vendor/mypyc/test-data/irbuild-dunders.test +0 -215
  1407. jaclang/vendor/mypyc/test-data/irbuild-float.test +0 -497
  1408. jaclang/vendor/mypyc/test-data/irbuild-generics.test +0 -150
  1409. jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +0 -437
  1410. jaclang/vendor/mypyc/test-data/irbuild-i16.test +0 -526
  1411. jaclang/vendor/mypyc/test-data/irbuild-i32.test +0 -598
  1412. jaclang/vendor/mypyc/test-data/irbuild-i64.test +0 -2144
  1413. jaclang/vendor/mypyc/test-data/irbuild-int.test +0 -194
  1414. jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +0 -109
  1415. jaclang/vendor/mypyc/test-data/irbuild-lists.test +0 -513
  1416. jaclang/vendor/mypyc/test-data/irbuild-match.test +0 -1717
  1417. jaclang/vendor/mypyc/test-data/irbuild-math.test +0 -64
  1418. jaclang/vendor/mypyc/test-data/irbuild-nested.test +0 -807
  1419. jaclang/vendor/mypyc/test-data/irbuild-optional.test +0 -536
  1420. jaclang/vendor/mypyc/test-data/irbuild-set.test +0 -806
  1421. jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +0 -257
  1422. jaclang/vendor/mypyc/test-data/irbuild-statements.test +0 -1060
  1423. jaclang/vendor/mypyc/test-data/irbuild-str.test +0 -312
  1424. jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +0 -12
  1425. jaclang/vendor/mypyc/test-data/irbuild-try.test +0 -523
  1426. jaclang/vendor/mypyc/test-data/irbuild-tuple.test +0 -386
  1427. jaclang/vendor/mypyc/test-data/irbuild-u8.test +0 -543
  1428. jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +0 -241
  1429. jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +0 -153
  1430. jaclang/vendor/mypyc/test-data/lowering-int.test +0 -377
  1431. jaclang/vendor/mypyc/test-data/lowering-list.test +0 -33
  1432. jaclang/vendor/mypyc/test-data/opt-copy-propagation.test +0 -400
  1433. jaclang/vendor/mypyc/test-data/opt-flag-elimination.test +0 -296
  1434. jaclang/vendor/mypyc/test-data/refcount.test +0 -1482
  1435. jaclang/vendor/mypyc/test-data/run-async.test +0 -173
  1436. jaclang/vendor/mypyc/test-data/run-attrs.test +0 -318
  1437. jaclang/vendor/mypyc/test-data/run-bench.test +0 -196
  1438. jaclang/vendor/mypyc/test-data/run-bools.test +0 -229
  1439. jaclang/vendor/mypyc/test-data/run-bytes.test +0 -302
  1440. jaclang/vendor/mypyc/test-data/run-classes.test +0 -2505
  1441. jaclang/vendor/mypyc/test-data/run-dicts.test +0 -334
  1442. jaclang/vendor/mypyc/test-data/run-dunders.test +0 -945
  1443. jaclang/vendor/mypyc/test-data/run-exceptions.test +0 -448
  1444. jaclang/vendor/mypyc/test-data/run-floats.test +0 -516
  1445. jaclang/vendor/mypyc/test-data/run-functions.test +0 -1310
  1446. jaclang/vendor/mypyc/test-data/run-generators.test +0 -682
  1447. jaclang/vendor/mypyc/test-data/run-i16.test +0 -338
  1448. jaclang/vendor/mypyc/test-data/run-i32.test +0 -336
  1449. jaclang/vendor/mypyc/test-data/run-i64.test +0 -1519
  1450. jaclang/vendor/mypyc/test-data/run-imports.test +0 -265
  1451. jaclang/vendor/mypyc/test-data/run-integers.test +0 -540
  1452. jaclang/vendor/mypyc/test-data/run-lists.test +0 -411
  1453. jaclang/vendor/mypyc/test-data/run-loops.test +0 -485
  1454. jaclang/vendor/mypyc/test-data/run-match.test +0 -283
  1455. jaclang/vendor/mypyc/test-data/run-math.test +0 -106
  1456. jaclang/vendor/mypyc/test-data/run-misc.test +0 -1170
  1457. jaclang/vendor/mypyc/test-data/run-multimodule.test +0 -887
  1458. jaclang/vendor/mypyc/test-data/run-mypy-sim.test +0 -138
  1459. jaclang/vendor/mypyc/test-data/run-primitives.test +0 -375
  1460. jaclang/vendor/mypyc/test-data/run-python37.test +0 -159
  1461. jaclang/vendor/mypyc/test-data/run-python38.test +0 -88
  1462. jaclang/vendor/mypyc/test-data/run-sets.test +0 -150
  1463. jaclang/vendor/mypyc/test-data/run-singledispatch.test +0 -698
  1464. jaclang/vendor/mypyc/test-data/run-strings.test +0 -641
  1465. jaclang/vendor/mypyc/test-data/run-traits.test +0 -411
  1466. jaclang/vendor/mypyc/test-data/run-tuples.test +0 -258
  1467. jaclang/vendor/mypyc/test-data/run-u8.test +0 -303
  1468. jaclang/vendor/mypyc/transform/__init__.py +0 -0
  1469. jaclang/vendor/mypyc/transform/copy_propagation.py +0 -94
  1470. jaclang/vendor/mypyc/transform/exceptions.py +0 -182
  1471. jaclang/vendor/mypyc/transform/flag_elimination.py +0 -108
  1472. jaclang/vendor/mypyc/transform/ir_transform.py +0 -368
  1473. jaclang/vendor/mypyc/transform/lower.py +0 -33
  1474. jaclang/vendor/mypyc/transform/refcount.py +0 -294
  1475. jaclang/vendor/mypyc/transform/uninit.py +0 -190
  1476. jaclang/vendor/typing_extensions-4.12.2.dist-info/LICENSE +0 -279
  1477. jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA +0 -67
  1478. jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD +0 -5
  1479. jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL +0 -4
  1480. jaclang/vendor/typing_extensions.py +0 -3641
  1481. jaclang-0.7.34.dist-info/RECORD +0 -1563
  1482. /jaclang/{vendor/mypy/dmypy → compiler/larkparse}/__init__.py +0 -0
  1483. /jaclang/{tests → compiler/passes/main/tests}/fixtures/access_checker.jac +0 -0
  1484. /jaclang/langserve/{__init__.py → __init__.jac} +0 -0
  1485. /jaclang/{vendor/mypy/plugins/__init__.py → langserve/tests/fixtures/deep_check_crash.jac} +0 -0
  1486. /jaclang/{vendor/mypy/server/__init__.py → langserve/tests/server_test/code_test.py} +0 -0
  1487. /jaclang/{plugin → runtimelib}/tests/__init__.py +0 -0
  1488. /jaclang/{vendor/mypy/test → tests}/__init__.py +0 -0
  1489. /jaclang/{vendor/mypy/test/meta → tests/fixtures}/__init__.py +0 -0
  1490. /jaclang/tests/fixtures/{architype_def_bug.jac → archetype_def_bug.jac} +0 -0
  1491. /jaclang/vendor/{mypy/typeshed/stdlib/concurrent/__init__.pyi → attrs-25.3.0.dist-info/REQUESTED} +0 -0
  1492. /jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/licenses/LICENSE +0 -0
  1493. /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/__init__.pyi → cattrs-24.1.3.dist-info/REQUESTED} +0 -0
  1494. /jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/licenses/LICENSE +0 -0
  1495. /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi → lark-1.2.2.dist-info/REQUESTED} +0 -0
  1496. /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/entry_points.txt +0 -0
  1497. /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/top_level.txt +0 -0
  1498. /jaclang/vendor/{mypy/typeshed/stdlib/email/mime/__init__.pyi → lsprotocol-2023.0.1.dist-info/REQUESTED} +0 -0
  1499. /jaclang/vendor/lsprotocol-2023.0.1.dist-info/{LICENSE → licenses/LICENSE} +0 -0
  1500. /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/__init__.pyi → pluggy-1.5.0.dist-info/REQUESTED} +0 -0
  1501. /jaclang/vendor/pluggy-1.5.0.dist-info/{LICENSE → licenses/LICENSE} +0 -0
  1502. /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi → pygls-1.3.1.dist-info/REQUESTED} +0 -0
  1503. {jaclang-0.7.34.dist-info → jaclang-0.8.1.dist-info}/entry_points.txt +0 -0
@@ -1,1727 +0,0 @@
1
- """Low-level opcodes for compiler intermediate representation (IR).
2
-
3
- Opcodes operate on abstract values (Value) in a register machine. Each
4
- value has a type (RType). A value can hold various things, such as:
5
-
6
- - local variables (Register)
7
- - intermediate values of expressions (RegisterOp subclasses)
8
- - condition flags (true/false)
9
- - literals (integer literals, True, False, etc.)
10
- """
11
-
12
- from __future__ import annotations
13
-
14
- from abc import abstractmethod
15
- from typing import TYPE_CHECKING, Final, Generic, List, NamedTuple, Sequence, TypeVar, Union
16
-
17
- from mypy_extensions import trait
18
-
19
- from mypyc.ir.rtypes import (
20
- RArray,
21
- RInstance,
22
- RTuple,
23
- RType,
24
- RVoid,
25
- bit_rprimitive,
26
- bool_rprimitive,
27
- float_rprimitive,
28
- int_rprimitive,
29
- is_bit_rprimitive,
30
- is_bool_rprimitive,
31
- is_int_rprimitive,
32
- is_none_rprimitive,
33
- is_pointer_rprimitive,
34
- is_short_int_rprimitive,
35
- object_rprimitive,
36
- pointer_rprimitive,
37
- short_int_rprimitive,
38
- void_rtype,
39
- )
40
-
41
- if TYPE_CHECKING:
42
- from mypyc.codegen.literals import LiteralValue
43
- from mypyc.ir.class_ir import ClassIR
44
- from mypyc.ir.func_ir import FuncDecl, FuncIR
45
-
46
- T = TypeVar("T")
47
-
48
-
49
- class BasicBlock:
50
- """IR basic block.
51
-
52
- Contains a sequence of Ops and ends with a ControlOp (Goto,
53
- Branch, Return or Unreachable). Only the last op can be a
54
- ControlOp.
55
-
56
- All generated Ops live in basic blocks. Basic blocks determine the
57
- order of evaluation and control flow within a function. A basic
58
- block is always associated with a single function/method (FuncIR).
59
-
60
- When building the IR, ops that raise exceptions can be included in
61
- the middle of a basic block, but the exceptions aren't checked.
62
- Afterwards we perform a transform that inserts explicit checks for
63
- all error conditions and splits basic blocks accordingly to preserve
64
- the invariant that a jump, branch or return can only ever appear
65
- as the final op in a block. Manually inserting error checking ops
66
- would be boring and error-prone.
67
-
68
- BasicBlocks have an error_handler attribute that determines where
69
- to jump if an error occurs. If none is specified, an error will
70
- propagate up out of the function. This is compiled away by the
71
- `exceptions` module.
72
-
73
- Block labels are used for pretty printing and emitting C code, and
74
- get filled in by those passes.
75
-
76
- Ops that may terminate the program aren't treated as exits.
77
- """
78
-
79
- def __init__(self, label: int = -1) -> None:
80
- self.label = label
81
- self.ops: list[Op] = []
82
- self.error_handler: BasicBlock | None = None
83
- self.referenced = False
84
-
85
- @property
86
- def terminated(self) -> bool:
87
- """Does the block end with a jump, branch or return?
88
-
89
- This should always be true after the basic block has been fully built, but
90
- this is false during construction.
91
- """
92
- return bool(self.ops) and isinstance(self.ops[-1], ControlOp)
93
-
94
- @property
95
- def terminator(self) -> ControlOp:
96
- """The terminator operation of the block."""
97
- assert bool(self.ops) and isinstance(self.ops[-1], ControlOp)
98
- return self.ops[-1]
99
-
100
-
101
- # Never generates an exception
102
- ERR_NEVER: Final = 0
103
- # Generates magic value (c_error_value) based on target RType on exception
104
- ERR_MAGIC: Final = 1
105
- # Generates false (bool) on exception
106
- ERR_FALSE: Final = 2
107
- # Always fails
108
- ERR_ALWAYS: Final = 3
109
- # Like ERR_MAGIC, but the magic return overlaps with a possible return value, and
110
- # an extra PyErr_Occurred() check is also required
111
- ERR_MAGIC_OVERLAPPING: Final = 4
112
-
113
- # Hack: using this line number for an op will suppress it in tracebacks
114
- NO_TRACEBACK_LINE_NO = -10000
115
-
116
-
117
- class Value:
118
- """Abstract base class for all IR values.
119
-
120
- These include references to registers, literals, and all
121
- operations (Ops), such as assignments, calls and branches.
122
-
123
- Values are often used as inputs of Ops. Register can be used as an
124
- assignment target.
125
-
126
- A Value is part of the IR being compiled if it's included in a BasicBlock
127
- that is reachable from a FuncIR (i.e., is part of a function).
128
-
129
- See also: Op is a subclass of Value that is the base class of all
130
- operations.
131
- """
132
-
133
- # Source line number (-1 for no/unknown line)
134
- line = -1
135
- # Type of the value or the result of the operation
136
- type: RType = void_rtype
137
- is_borrowed = False
138
-
139
- @property
140
- def is_void(self) -> bool:
141
- return isinstance(self.type, RVoid)
142
-
143
-
144
- class Register(Value):
145
- """A Register holds a value of a specific type, and it can be read and mutated.
146
-
147
- A Register is always local to a function. Each local variable maps
148
- to a Register, and they are also used for some (but not all)
149
- temporary values.
150
-
151
- Note that the term 'register' is overloaded and is sometimes used
152
- to refer to arbitrary Values (for example, in RegisterOp).
153
- """
154
-
155
- def __init__(self, type: RType, name: str = "", is_arg: bool = False, line: int = -1) -> None:
156
- self.type = type
157
- self.name = name
158
- self.is_arg = is_arg
159
- self.is_borrowed = is_arg
160
- self.line = line
161
-
162
- @property
163
- def is_void(self) -> bool:
164
- return False
165
-
166
- def __repr__(self) -> str:
167
- return f"<Register {self.name!r} at {hex(id(self))}>"
168
-
169
-
170
- class Integer(Value):
171
- """Short integer literal.
172
-
173
- Integer literals are treated as constant values and are generally
174
- not included in data flow analyses and such, unlike Register and
175
- Op subclasses.
176
-
177
- Integer can represent multiple types:
178
-
179
- * Short tagged integers (short_int_primitive type; the tag bit is clear)
180
- * Ordinary fixed-width integers (e.g., int32_rprimitive)
181
- * Values of other unboxed primitive types that are represented as integers
182
- (none_rprimitive, bool_rprimitive)
183
- * Null pointers (value 0) of various types, including object_rprimitive
184
- """
185
-
186
- def __init__(self, value: int, rtype: RType = short_int_rprimitive, line: int = -1) -> None:
187
- if is_short_int_rprimitive(rtype) or is_int_rprimitive(rtype):
188
- self.value = value * 2
189
- else:
190
- self.value = value
191
- self.type = rtype
192
- self.line = line
193
-
194
- def numeric_value(self) -> int:
195
- if is_short_int_rprimitive(self.type) or is_int_rprimitive(self.type):
196
- return self.value // 2
197
- return self.value
198
-
199
-
200
- class Float(Value):
201
- """Float literal.
202
-
203
- Floating point literals are treated as constant values and are generally
204
- not included in data flow analyses and such, unlike Register and
205
- Op subclasses.
206
- """
207
-
208
- def __init__(self, value: float, line: int = -1) -> None:
209
- self.value = value
210
- self.type = float_rprimitive
211
- self.line = line
212
-
213
-
214
- class Op(Value):
215
- """Abstract base class for all IR operations.
216
-
217
- Each operation must be stored in a BasicBlock (in 'ops') to be
218
- active in the IR. This is different from non-Op values, including
219
- Register and Integer, where a reference from an active Op is
220
- sufficient to be considered active.
221
-
222
- In well-formed IR an active Op has no references to inactive ops
223
- or ops used in another function.
224
- """
225
-
226
- def __init__(self, line: int) -> None:
227
- self.line = line
228
-
229
- def can_raise(self) -> bool:
230
- # Override this is if Op may raise an exception. Note that currently the fact that
231
- # only RegisterOps may raise an exception in hard coded in some places.
232
- return False
233
-
234
- @abstractmethod
235
- def sources(self) -> list[Value]:
236
- """All the values the op may read."""
237
-
238
- def stolen(self) -> list[Value]:
239
- """Return arguments that have a reference count stolen by this op"""
240
- return []
241
-
242
- def unique_sources(self) -> list[Value]:
243
- result: list[Value] = []
244
- for reg in self.sources():
245
- if reg not in result:
246
- result.append(reg)
247
- return result
248
-
249
- @abstractmethod
250
- def accept(self, visitor: OpVisitor[T]) -> T:
251
- pass
252
-
253
-
254
- class BaseAssign(Op):
255
- """Base class for ops that assign to a register."""
256
-
257
- def __init__(self, dest: Register, line: int = -1) -> None:
258
- super().__init__(line)
259
- self.dest = dest
260
-
261
-
262
- class Assign(BaseAssign):
263
- """Assign a value to a Register (dest = src)."""
264
-
265
- error_kind = ERR_NEVER
266
-
267
- def __init__(self, dest: Register, src: Value, line: int = -1) -> None:
268
- super().__init__(dest, line)
269
- self.src = src
270
-
271
- def sources(self) -> list[Value]:
272
- return [self.src]
273
-
274
- def stolen(self) -> list[Value]:
275
- return [self.src]
276
-
277
- def accept(self, visitor: OpVisitor[T]) -> T:
278
- return visitor.visit_assign(self)
279
-
280
-
281
- class AssignMulti(BaseAssign):
282
- """Assign multiple values to a Register (dest = src1, src2, ...).
283
-
284
- This is used to initialize RArray values. It's provided to avoid
285
- very verbose IR for common vectorcall operations.
286
-
287
- Note that this interacts atypically with reference counting. We
288
- assume that each RArray register is initialized exactly once
289
- with this op.
290
- """
291
-
292
- error_kind = ERR_NEVER
293
-
294
- def __init__(self, dest: Register, src: list[Value], line: int = -1) -> None:
295
- super().__init__(dest, line)
296
- assert src
297
- assert isinstance(dest.type, RArray)
298
- assert dest.type.length == len(src)
299
- self.src = src
300
-
301
- def sources(self) -> list[Value]:
302
- return self.src.copy()
303
-
304
- def stolen(self) -> list[Value]:
305
- return []
306
-
307
- def accept(self, visitor: OpVisitor[T]) -> T:
308
- return visitor.visit_assign_multi(self)
309
-
310
-
311
- class ControlOp(Op):
312
- """Control flow operation."""
313
-
314
- def targets(self) -> Sequence[BasicBlock]:
315
- """Get all basic block targets of the control operation."""
316
- return ()
317
-
318
- def set_target(self, i: int, new: BasicBlock) -> None:
319
- """Update a basic block target."""
320
- raise AssertionError(f"Invalid set_target({self}, {i})")
321
-
322
-
323
- class Goto(ControlOp):
324
- """Unconditional jump."""
325
-
326
- error_kind = ERR_NEVER
327
-
328
- def __init__(self, label: BasicBlock, line: int = -1) -> None:
329
- super().__init__(line)
330
- self.label = label
331
-
332
- def targets(self) -> Sequence[BasicBlock]:
333
- return (self.label,)
334
-
335
- def set_target(self, i: int, new: BasicBlock) -> None:
336
- assert i == 0
337
- self.label = new
338
-
339
- def __repr__(self) -> str:
340
- return "<Goto %s>" % self.label.label
341
-
342
- def sources(self) -> list[Value]:
343
- return []
344
-
345
- def accept(self, visitor: OpVisitor[T]) -> T:
346
- return visitor.visit_goto(self)
347
-
348
-
349
- class Branch(ControlOp):
350
- """Branch based on a value.
351
-
352
- If op is BOOL, branch based on a bit/bool value:
353
- if [not] r1 goto L1 else goto L2
354
-
355
- If op is IS_ERROR, branch based on whether there is an error value:
356
- if [not] is_error(r1) goto L1 else goto L2
357
- """
358
-
359
- # Branch ops never raise an exception.
360
- error_kind = ERR_NEVER
361
-
362
- BOOL: Final = 100
363
- IS_ERROR: Final = 101
364
-
365
- def __init__(
366
- self,
367
- value: Value,
368
- true_label: BasicBlock,
369
- false_label: BasicBlock,
370
- op: int,
371
- line: int = -1,
372
- *,
373
- rare: bool = False,
374
- ) -> None:
375
- super().__init__(line)
376
- # Target value being checked
377
- self.value = value
378
- # Branch here if the condition is true
379
- self.true = true_label
380
- # Branch here if the condition is false
381
- self.false = false_label
382
- # Branch.BOOL (boolean check) or Branch.IS_ERROR (error value check)
383
- self.op = op
384
- # If True, the condition is negated
385
- self.negated = False
386
- # If not None, the true label should generate a traceback entry (func name, line number)
387
- self.traceback_entry: tuple[str, int] | None = None
388
- # If True, we expect to usually take the false branch (for optimization purposes);
389
- # this is implicitly treated as true if there is a traceback entry
390
- self.rare = rare
391
-
392
- def targets(self) -> Sequence[BasicBlock]:
393
- return (self.true, self.false)
394
-
395
- def set_target(self, i: int, new: BasicBlock) -> None:
396
- assert i == 0 or i == 1
397
- if i == 0:
398
- self.true = new
399
- else:
400
- self.false = new
401
-
402
- def sources(self) -> list[Value]:
403
- return [self.value]
404
-
405
- def invert(self) -> None:
406
- self.negated = not self.negated
407
-
408
- def accept(self, visitor: OpVisitor[T]) -> T:
409
- return visitor.visit_branch(self)
410
-
411
-
412
- class Return(ControlOp):
413
- """Return a value from a function."""
414
-
415
- error_kind = ERR_NEVER
416
-
417
- def __init__(self, value: Value, line: int = -1) -> None:
418
- super().__init__(line)
419
- self.value = value
420
-
421
- def sources(self) -> list[Value]:
422
- return [self.value]
423
-
424
- def stolen(self) -> list[Value]:
425
- return [self.value]
426
-
427
- def accept(self, visitor: OpVisitor[T]) -> T:
428
- return visitor.visit_return(self)
429
-
430
-
431
- class Unreachable(ControlOp):
432
- """Mark the end of basic block as unreachable.
433
-
434
- This is sometimes necessary when the end of a basic block is never
435
- reached. This can also be explicitly added to the end of non-None
436
- returning functions (in None-returning function we can just return
437
- None).
438
-
439
- Mypy statically guarantees that the end of the function is not
440
- unreachable if there is not a return statement.
441
-
442
- This prevents the block formatter from being confused due to lack
443
- of a leave and also leaves a nifty note in the IR. It is not
444
- generally processed by visitors.
445
- """
446
-
447
- error_kind = ERR_NEVER
448
-
449
- def __init__(self, line: int = -1) -> None:
450
- super().__init__(line)
451
-
452
- def sources(self) -> list[Value]:
453
- return []
454
-
455
- def accept(self, visitor: OpVisitor[T]) -> T:
456
- return visitor.visit_unreachable(self)
457
-
458
-
459
- class RegisterOp(Op):
460
- """Abstract base class for operations that can be written as r1 = f(r2, ..., rn).
461
-
462
- Takes some values, performs an operation, and generates an output
463
- (unless the 'type' attribute is void_rtype, which is the default).
464
- Other ops can refer to the result of the Op by referring to the Op
465
- instance. This doesn't do any explicit control flow, but can raise an
466
- error.
467
-
468
- Note that the operands can be arbitrary Values, not just Register
469
- instances, even though the naming may suggest otherwise.
470
- """
471
-
472
- error_kind = -1 # Can this raise exception and how is it signalled; one of ERR_*
473
-
474
- _type: RType | None = None
475
-
476
- def __init__(self, line: int) -> None:
477
- super().__init__(line)
478
- assert self.error_kind != -1, "error_kind not defined"
479
-
480
- def can_raise(self) -> bool:
481
- return self.error_kind != ERR_NEVER
482
-
483
-
484
- class IncRef(RegisterOp):
485
- """Increase reference count (inc_ref src)."""
486
-
487
- error_kind = ERR_NEVER
488
-
489
- def __init__(self, src: Value, line: int = -1) -> None:
490
- assert src.type.is_refcounted
491
- super().__init__(line)
492
- self.src = src
493
-
494
- def sources(self) -> list[Value]:
495
- return [self.src]
496
-
497
- def accept(self, visitor: OpVisitor[T]) -> T:
498
- return visitor.visit_inc_ref(self)
499
-
500
-
501
- class DecRef(RegisterOp):
502
- """Decrease reference count and free object if zero (dec_ref src).
503
-
504
- The is_xdec flag says to use an XDECREF, which checks if the
505
- pointer is NULL first.
506
- """
507
-
508
- error_kind = ERR_NEVER
509
-
510
- def __init__(self, src: Value, is_xdec: bool = False, line: int = -1) -> None:
511
- assert src.type.is_refcounted
512
- super().__init__(line)
513
- self.src = src
514
- self.is_xdec = is_xdec
515
-
516
- def __repr__(self) -> str:
517
- return "<{}DecRef {!r}>".format("X" if self.is_xdec else "", self.src)
518
-
519
- def sources(self) -> list[Value]:
520
- return [self.src]
521
-
522
- def accept(self, visitor: OpVisitor[T]) -> T:
523
- return visitor.visit_dec_ref(self)
524
-
525
-
526
- class Call(RegisterOp):
527
- """Native call f(arg, ...).
528
-
529
- The call target can be a module-level function or a class.
530
- """
531
-
532
- def __init__(self, fn: FuncDecl, args: Sequence[Value], line: int) -> None:
533
- self.fn = fn
534
- self.args = list(args)
535
- assert len(self.args) == len(fn.sig.args)
536
- self.type = fn.sig.ret_type
537
- ret_type = fn.sig.ret_type
538
- if not ret_type.error_overlap:
539
- self.error_kind = ERR_MAGIC
540
- else:
541
- self.error_kind = ERR_MAGIC_OVERLAPPING
542
- super().__init__(line)
543
-
544
- def sources(self) -> list[Value]:
545
- return list(self.args.copy())
546
-
547
- def accept(self, visitor: OpVisitor[T]) -> T:
548
- return visitor.visit_call(self)
549
-
550
-
551
- class MethodCall(RegisterOp):
552
- """Native method call obj.method(arg, ...)"""
553
-
554
- def __init__(self, obj: Value, method: str, args: list[Value], line: int = -1) -> None:
555
- self.obj = obj
556
- self.method = method
557
- self.args = args
558
- assert isinstance(obj.type, RInstance), "Methods can only be called on instances"
559
- self.receiver_type = obj.type
560
- method_ir = self.receiver_type.class_ir.method_sig(method)
561
- assert method_ir is not None, "{} doesn't have method {}".format(
562
- self.receiver_type.name, method
563
- )
564
- ret_type = method_ir.ret_type
565
- self.type = ret_type
566
- if not ret_type.error_overlap:
567
- self.error_kind = ERR_MAGIC
568
- else:
569
- self.error_kind = ERR_MAGIC_OVERLAPPING
570
- super().__init__(line)
571
-
572
- def sources(self) -> list[Value]:
573
- return self.args.copy() + [self.obj]
574
-
575
- def accept(self, visitor: OpVisitor[T]) -> T:
576
- return visitor.visit_method_call(self)
577
-
578
-
579
- class PrimitiveDescription:
580
- """Description of a primitive op.
581
-
582
- Primitives get lowered into lower-level ops before code generation.
583
-
584
- If c_function_name is provided, a primitive will be lowered into a CallC op.
585
- Otherwise custom logic will need to be implemented to transform the
586
- primitive into lower-level ops.
587
- """
588
-
589
- def __init__(
590
- self,
591
- name: str,
592
- arg_types: list[RType],
593
- return_type: RType, # TODO: What about generic?
594
- var_arg_type: RType | None,
595
- truncated_type: RType | None,
596
- c_function_name: str | None,
597
- error_kind: int,
598
- steals: StealsDescription,
599
- is_borrowed: bool,
600
- ordering: list[int] | None,
601
- extra_int_constants: list[tuple[int, RType]],
602
- priority: int,
603
- ) -> None:
604
- # Each primitive much have a distinct name, but otherwise they are arbitrary.
605
- self.name: Final = name
606
- self.arg_types: Final = arg_types
607
- self.return_type: Final = return_type
608
- self.var_arg_type: Final = var_arg_type
609
- self.truncated_type: Final = truncated_type
610
- # If non-None, this will map to a call of a C helper function; if None,
611
- # there must be a custom handler function that gets invoked during the lowering
612
- # pass to generate low-level IR for the primitive (in the mypyc.lower package)
613
- self.c_function_name: Final = c_function_name
614
- self.error_kind: Final = error_kind
615
- self.steals: Final = steals
616
- self.is_borrowed: Final = is_borrowed
617
- self.ordering: Final = ordering
618
- self.extra_int_constants: Final = extra_int_constants
619
- self.priority: Final = priority
620
-
621
- def __repr__(self) -> str:
622
- return f"<PrimitiveDescription {self.name}>"
623
-
624
-
625
- class PrimitiveOp(RegisterOp):
626
- """A higher-level primitive operation.
627
-
628
- Some of these have special compiler support. These will be lowered
629
- (transformed) into lower-level IR ops before code generation, and after
630
- reference counting op insertion. Others will be transformed into CallC
631
- ops.
632
-
633
- Tagged integer equality is a typical primitive op with non-trivial
634
- lowering. It gets transformed into a tag check, followed by different
635
- code paths for short and long representations.
636
- """
637
-
638
- def __init__(self, args: list[Value], desc: PrimitiveDescription, line: int = -1) -> None:
639
- self.args = args
640
- self.type = desc.return_type
641
- self.error_kind = desc.error_kind
642
- self.desc = desc
643
-
644
- def sources(self) -> list[Value]:
645
- return self.args
646
-
647
- def stolen(self) -> list[Value]:
648
- steals = self.desc.steals
649
- if isinstance(steals, list):
650
- assert len(steals) == len(self.args)
651
- return [arg for arg, steal in zip(self.args, steals) if steal]
652
- else:
653
- return [] if not steals else self.sources()
654
-
655
- def accept(self, visitor: OpVisitor[T]) -> T:
656
- return visitor.visit_primitive_op(self)
657
-
658
-
659
- class LoadErrorValue(RegisterOp):
660
- """Load an error value.
661
-
662
- Each type has one reserved value that signals an error (exception). This
663
- loads the error value for a specific type.
664
- """
665
-
666
- error_kind = ERR_NEVER
667
-
668
- def __init__(
669
- self, rtype: RType, line: int = -1, is_borrowed: bool = False, undefines: bool = False
670
- ) -> None:
671
- super().__init__(line)
672
- self.type = rtype
673
- self.is_borrowed = is_borrowed
674
- # Undefines is true if this should viewed by the definedness
675
- # analysis pass as making the register it is assigned to
676
- # undefined (and thus checks should be added on uses).
677
- self.undefines = undefines
678
-
679
- def sources(self) -> list[Value]:
680
- return []
681
-
682
- def accept(self, visitor: OpVisitor[T]) -> T:
683
- return visitor.visit_load_error_value(self)
684
-
685
-
686
- class LoadLiteral(RegisterOp):
687
- """Load a Python literal object (dest = 'foo' / b'foo' / ...).
688
-
689
- This is used to load a static PyObject * value corresponding to
690
- a literal of one of the supported types.
691
-
692
- Tuple / frozenset literals must contain only valid literal values as items.
693
-
694
- NOTE: You can use this to load boxed (Python) int objects. Use
695
- Integer to load unboxed, tagged integers or fixed-width,
696
- low-level integers.
697
-
698
- For int literals, both int_rprimitive (CPyTagged) and
699
- object_primitive (PyObject *) are supported as rtype. However,
700
- when using int_rprimitive, the value must *not* be small enough
701
- to fit in an unboxed integer.
702
- """
703
-
704
- error_kind = ERR_NEVER
705
- is_borrowed = True
706
-
707
- def __init__(self, value: LiteralValue, rtype: RType) -> None:
708
- self.value = value
709
- self.type = rtype
710
-
711
- def sources(self) -> list[Value]:
712
- return []
713
-
714
- def accept(self, visitor: OpVisitor[T]) -> T:
715
- return visitor.visit_load_literal(self)
716
-
717
-
718
- class GetAttr(RegisterOp):
719
- """obj.attr (for a native object)"""
720
-
721
- error_kind = ERR_MAGIC
722
-
723
- def __init__(self, obj: Value, attr: str, line: int, *, borrow: bool = False) -> None:
724
- super().__init__(line)
725
- self.obj = obj
726
- self.attr = attr
727
- assert isinstance(obj.type, RInstance), "Attribute access not supported: %s" % obj.type
728
- self.class_type = obj.type
729
- attr_type = obj.type.attr_type(attr)
730
- self.type = attr_type
731
- if attr_type.error_overlap:
732
- self.error_kind = ERR_MAGIC_OVERLAPPING
733
- self.is_borrowed = borrow and attr_type.is_refcounted
734
-
735
- def sources(self) -> list[Value]:
736
- return [self.obj]
737
-
738
- def accept(self, visitor: OpVisitor[T]) -> T:
739
- return visitor.visit_get_attr(self)
740
-
741
-
742
- class SetAttr(RegisterOp):
743
- """obj.attr = src (for a native object)
744
-
745
- Steals the reference to src.
746
- """
747
-
748
- error_kind = ERR_FALSE
749
-
750
- def __init__(self, obj: Value, attr: str, src: Value, line: int) -> None:
751
- super().__init__(line)
752
- self.obj = obj
753
- self.attr = attr
754
- self.src = src
755
- assert isinstance(obj.type, RInstance), "Attribute access not supported: %s" % obj.type
756
- self.class_type = obj.type
757
- self.type = bool_rprimitive
758
- # If True, we can safely assume that the attribute is previously undefined
759
- # and we don't use a setter
760
- self.is_init = False
761
-
762
- def mark_as_initializer(self) -> None:
763
- self.is_init = True
764
- self.error_kind = ERR_NEVER
765
- self.type = void_rtype
766
-
767
- def sources(self) -> list[Value]:
768
- return [self.obj, self.src]
769
-
770
- def stolen(self) -> list[Value]:
771
- return [self.src]
772
-
773
- def accept(self, visitor: OpVisitor[T]) -> T:
774
- return visitor.visit_set_attr(self)
775
-
776
-
777
- # Default name space for statics, variables
778
- NAMESPACE_STATIC: Final = "static"
779
-
780
- # Static namespace for pointers to native type objects
781
- NAMESPACE_TYPE: Final = "type"
782
-
783
- # Namespace for modules
784
- NAMESPACE_MODULE: Final = "module"
785
-
786
-
787
- class LoadStatic(RegisterOp):
788
- """Load a static name (name :: static).
789
-
790
- Load a C static variable/pointer. The namespace for statics is shared
791
- for the entire compilation group. You can optionally provide a module
792
- name and a sub-namespace identifier for additional namespacing to avoid
793
- name conflicts. The static namespace does not overlap with other C names,
794
- since the final C name will get a prefix, so conflicts only must be
795
- avoided with other statics.
796
- """
797
-
798
- error_kind = ERR_NEVER
799
- is_borrowed = True
800
-
801
- def __init__(
802
- self,
803
- type: RType,
804
- identifier: str,
805
- module_name: str | None = None,
806
- namespace: str = NAMESPACE_STATIC,
807
- line: int = -1,
808
- ann: object = None,
809
- ) -> None:
810
- super().__init__(line)
811
- self.identifier = identifier
812
- self.module_name = module_name
813
- self.namespace = namespace
814
- self.type = type
815
- self.ann = ann # An object to pretty print with the load
816
-
817
- def sources(self) -> list[Value]:
818
- return []
819
-
820
- def accept(self, visitor: OpVisitor[T]) -> T:
821
- return visitor.visit_load_static(self)
822
-
823
-
824
- class InitStatic(RegisterOp):
825
- """static = value :: static
826
-
827
- Initialize a C static variable/pointer. See everything in LoadStatic.
828
- """
829
-
830
- error_kind = ERR_NEVER
831
-
832
- def __init__(
833
- self,
834
- value: Value,
835
- identifier: str,
836
- module_name: str | None = None,
837
- namespace: str = NAMESPACE_STATIC,
838
- line: int = -1,
839
- ) -> None:
840
- super().__init__(line)
841
- self.identifier = identifier
842
- self.module_name = module_name
843
- self.namespace = namespace
844
- self.value = value
845
-
846
- def sources(self) -> list[Value]:
847
- return [self.value]
848
-
849
- def accept(self, visitor: OpVisitor[T]) -> T:
850
- return visitor.visit_init_static(self)
851
-
852
-
853
- class TupleSet(RegisterOp):
854
- """dest = (reg, ...) (for fixed-length tuple)"""
855
-
856
- error_kind = ERR_NEVER
857
-
858
- def __init__(self, items: list[Value], line: int) -> None:
859
- super().__init__(line)
860
- self.items = items
861
- # Don't keep track of the fact that an int is short after it
862
- # is put into a tuple, since we don't properly implement
863
- # runtime subtyping for tuples.
864
- self.tuple_type = RTuple(
865
- [
866
- arg.type if not is_short_int_rprimitive(arg.type) else int_rprimitive
867
- for arg in items
868
- ]
869
- )
870
- self.type = self.tuple_type
871
-
872
- def sources(self) -> list[Value]:
873
- return self.items.copy()
874
-
875
- def stolen(self) -> list[Value]:
876
- return self.items.copy()
877
-
878
- def accept(self, visitor: OpVisitor[T]) -> T:
879
- return visitor.visit_tuple_set(self)
880
-
881
-
882
- class TupleGet(RegisterOp):
883
- """Get item of a fixed-length tuple (src[index])."""
884
-
885
- error_kind = ERR_NEVER
886
-
887
- def __init__(self, src: Value, index: int, line: int = -1, *, borrow: bool = False) -> None:
888
- super().__init__(line)
889
- self.src = src
890
- self.index = index
891
- assert isinstance(src.type, RTuple), "TupleGet only operates on tuples"
892
- assert index >= 0
893
- self.type = src.type.types[index]
894
- self.is_borrowed = borrow
895
-
896
- def sources(self) -> list[Value]:
897
- return [self.src]
898
-
899
- def accept(self, visitor: OpVisitor[T]) -> T:
900
- return visitor.visit_tuple_get(self)
901
-
902
-
903
- class Cast(RegisterOp):
904
- """cast(type, src)
905
-
906
- Perform a runtime type check (no representation or value conversion).
907
-
908
- DO NOT increment reference counts.
909
- """
910
-
911
- error_kind = ERR_MAGIC
912
-
913
- def __init__(self, src: Value, typ: RType, line: int, *, borrow: bool = False) -> None:
914
- super().__init__(line)
915
- self.src = src
916
- self.type = typ
917
- self.is_borrowed = borrow
918
-
919
- def sources(self) -> list[Value]:
920
- return [self.src]
921
-
922
- def stolen(self) -> list[Value]:
923
- if self.is_borrowed:
924
- return []
925
- return [self.src]
926
-
927
- def accept(self, visitor: OpVisitor[T]) -> T:
928
- return visitor.visit_cast(self)
929
-
930
-
931
- class Box(RegisterOp):
932
- """box(type, src)
933
-
934
- This converts from a potentially unboxed representation to a straight Python object.
935
- Only supported for types with an unboxed representation.
936
- """
937
-
938
- error_kind = ERR_NEVER
939
-
940
- def __init__(self, src: Value, line: int = -1) -> None:
941
- super().__init__(line)
942
- self.src = src
943
- self.type = object_rprimitive
944
- # When we box None and bool values, we produce a borrowed result
945
- if (
946
- is_none_rprimitive(self.src.type)
947
- or is_bool_rprimitive(self.src.type)
948
- or is_bit_rprimitive(self.src.type)
949
- ):
950
- self.is_borrowed = True
951
-
952
- def sources(self) -> list[Value]:
953
- return [self.src]
954
-
955
- def stolen(self) -> list[Value]:
956
- return [self.src]
957
-
958
- def accept(self, visitor: OpVisitor[T]) -> T:
959
- return visitor.visit_box(self)
960
-
961
-
962
- class Unbox(RegisterOp):
963
- """unbox(type, src)
964
-
965
- This is similar to a cast, but it also changes to a (potentially) unboxed runtime
966
- representation. Only supported for types with an unboxed representation.
967
- """
968
-
969
- def __init__(self, src: Value, typ: RType, line: int) -> None:
970
- self.src = src
971
- self.type = typ
972
- if not typ.error_overlap:
973
- self.error_kind = ERR_MAGIC
974
- else:
975
- self.error_kind = ERR_MAGIC_OVERLAPPING
976
- super().__init__(line)
977
-
978
- def sources(self) -> list[Value]:
979
- return [self.src]
980
-
981
- def accept(self, visitor: OpVisitor[T]) -> T:
982
- return visitor.visit_unbox(self)
983
-
984
-
985
- class RaiseStandardError(RegisterOp):
986
- """Raise built-in exception with an optional error string.
987
-
988
- We have a separate opcode for this for convenience and to
989
- generate smaller, more idiomatic C code.
990
- """
991
-
992
- # TODO: Make it more explicit at IR level that this always raises
993
-
994
- error_kind = ERR_FALSE
995
-
996
- VALUE_ERROR: Final = "ValueError"
997
- ASSERTION_ERROR: Final = "AssertionError"
998
- STOP_ITERATION: Final = "StopIteration"
999
- UNBOUND_LOCAL_ERROR: Final = "UnboundLocalError"
1000
- RUNTIME_ERROR: Final = "RuntimeError"
1001
- NAME_ERROR: Final = "NameError"
1002
- ZERO_DIVISION_ERROR: Final = "ZeroDivisionError"
1003
-
1004
- def __init__(self, class_name: str, value: str | Value | None, line: int) -> None:
1005
- super().__init__(line)
1006
- self.class_name = class_name
1007
- self.value = value
1008
- self.type = bool_rprimitive
1009
-
1010
- def sources(self) -> list[Value]:
1011
- return []
1012
-
1013
- def accept(self, visitor: OpVisitor[T]) -> T:
1014
- return visitor.visit_raise_standard_error(self)
1015
-
1016
-
1017
- # True steals all arguments, False steals none, a list steals those in matching positions
1018
- StealsDescription = Union[bool, List[bool]]
1019
-
1020
-
1021
- class CallC(RegisterOp):
1022
- """result = function(arg0, arg1, ...)
1023
-
1024
- Call a C function that is not a compiled/native function (for
1025
- example, a Python C API function). Use Call to call native
1026
- functions.
1027
- """
1028
-
1029
- def __init__(
1030
- self,
1031
- function_name: str,
1032
- args: list[Value],
1033
- ret_type: RType,
1034
- steals: StealsDescription,
1035
- is_borrowed: bool,
1036
- error_kind: int,
1037
- line: int,
1038
- var_arg_idx: int = -1,
1039
- ) -> None:
1040
- self.error_kind = error_kind
1041
- super().__init__(line)
1042
- self.function_name = function_name
1043
- self.args = args
1044
- self.type = ret_type
1045
- self.steals = steals
1046
- self.is_borrowed = is_borrowed
1047
- # The position of the first variable argument in args (if >= 0)
1048
- self.var_arg_idx = var_arg_idx
1049
-
1050
- def sources(self) -> list[Value]:
1051
- return self.args
1052
-
1053
- def stolen(self) -> list[Value]:
1054
- if isinstance(self.steals, list):
1055
- assert len(self.steals) == len(self.args)
1056
- return [arg for arg, steal in zip(self.args, self.steals) if steal]
1057
- else:
1058
- return [] if not self.steals else self.sources()
1059
-
1060
- def accept(self, visitor: OpVisitor[T]) -> T:
1061
- return visitor.visit_call_c(self)
1062
-
1063
-
1064
- class Truncate(RegisterOp):
1065
- """result = truncate src from src_type to dst_type
1066
-
1067
- Truncate a value from type with more bits to type with less bits.
1068
-
1069
- dst_type and src_type can be native integer types, bools or tagged
1070
- integers. Tagged integers should have the tag bit unset.
1071
- """
1072
-
1073
- error_kind = ERR_NEVER
1074
-
1075
- def __init__(self, src: Value, dst_type: RType, line: int = -1) -> None:
1076
- super().__init__(line)
1077
- self.src = src
1078
- self.type = dst_type
1079
- self.src_type = src.type
1080
-
1081
- def sources(self) -> list[Value]:
1082
- return [self.src]
1083
-
1084
- def stolen(self) -> list[Value]:
1085
- return []
1086
-
1087
- def accept(self, visitor: OpVisitor[T]) -> T:
1088
- return visitor.visit_truncate(self)
1089
-
1090
-
1091
- class Extend(RegisterOp):
1092
- """result = extend src from src_type to dst_type
1093
-
1094
- Extend a value from a type with fewer bits to a type with more bits.
1095
-
1096
- dst_type and src_type can be native integer types, bools or tagged
1097
- integers. Tagged integers should have the tag bit unset.
1098
-
1099
- If 'signed' is true, perform sign extension. Otherwise, the result will be
1100
- zero extended.
1101
- """
1102
-
1103
- error_kind = ERR_NEVER
1104
-
1105
- def __init__(self, src: Value, dst_type: RType, signed: bool, line: int = -1) -> None:
1106
- super().__init__(line)
1107
- self.src = src
1108
- self.type = dst_type
1109
- self.src_type = src.type
1110
- self.signed = signed
1111
-
1112
- def sources(self) -> list[Value]:
1113
- return [self.src]
1114
-
1115
- def stolen(self) -> list[Value]:
1116
- return []
1117
-
1118
- def accept(self, visitor: OpVisitor[T]) -> T:
1119
- return visitor.visit_extend(self)
1120
-
1121
-
1122
- class LoadGlobal(RegisterOp):
1123
- """Load a low-level global variable/pointer.
1124
-
1125
- Note that can't be used to directly load Python module-level
1126
- global variable, since they are stored in a globals dictionary
1127
- and accessed using dictionary operations.
1128
- """
1129
-
1130
- error_kind = ERR_NEVER
1131
- is_borrowed = True
1132
-
1133
- def __init__(self, type: RType, identifier: str, line: int = -1, ann: object = None) -> None:
1134
- super().__init__(line)
1135
- self.identifier = identifier
1136
- self.type = type
1137
- self.ann = ann # An object to pretty print with the load
1138
-
1139
- def sources(self) -> list[Value]:
1140
- return []
1141
-
1142
- def accept(self, visitor: OpVisitor[T]) -> T:
1143
- return visitor.visit_load_global(self)
1144
-
1145
-
1146
- class IntOp(RegisterOp):
1147
- """Binary arithmetic or bitwise op on integer operands (e.g., r1 = r2 + r3).
1148
-
1149
- These ops are low-level and are similar to the corresponding C
1150
- operations.
1151
-
1152
- The left and right values must have low-level integer types with
1153
- compatible representations. Fixed-width integers, short_int_rprimitive,
1154
- bool_rprimitive and bit_rprimitive are supported.
1155
-
1156
- For tagged (arbitrary-precision) integer ops look at mypyc.primitives.int_ops.
1157
- """
1158
-
1159
- error_kind = ERR_NEVER
1160
-
1161
- # Arithmetic ops
1162
- ADD: Final = 0
1163
- SUB: Final = 1
1164
- MUL: Final = 2
1165
- DIV: Final = 3
1166
- MOD: Final = 4
1167
-
1168
- # Bitwise ops
1169
- AND: Final = 200
1170
- OR: Final = 201
1171
- XOR: Final = 202
1172
- LEFT_SHIFT: Final = 203
1173
- RIGHT_SHIFT: Final = 204
1174
-
1175
- op_str: Final = {
1176
- ADD: "+",
1177
- SUB: "-",
1178
- MUL: "*",
1179
- DIV: "/",
1180
- MOD: "%",
1181
- AND: "&",
1182
- OR: "|",
1183
- XOR: "^",
1184
- LEFT_SHIFT: "<<",
1185
- RIGHT_SHIFT: ">>",
1186
- }
1187
-
1188
- def __init__(self, type: RType, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
1189
- super().__init__(line)
1190
- self.type = type
1191
- self.lhs = lhs
1192
- self.rhs = rhs
1193
- self.op = op
1194
-
1195
- def sources(self) -> list[Value]:
1196
- return [self.lhs, self.rhs]
1197
-
1198
- def accept(self, visitor: OpVisitor[T]) -> T:
1199
- return visitor.visit_int_op(self)
1200
-
1201
-
1202
- # We can't have this in the IntOp class body, because of
1203
- # https://github.com/mypyc/mypyc/issues/932.
1204
- int_op_to_id: Final = {op: op_id for op_id, op in IntOp.op_str.items()}
1205
-
1206
-
1207
- class ComparisonOp(RegisterOp):
1208
- """Low-level comparison op for integers and pointers.
1209
-
1210
- Both unsigned and signed comparisons are supported. Supports
1211
- comparisons between fixed-width integer types and pointer types.
1212
- The operands should have matching sizes.
1213
-
1214
- The result is always a bit (representing a boolean).
1215
-
1216
- Python semantics, such as calling __eq__, are not supported.
1217
- """
1218
-
1219
- # Must be ERR_NEVER or ERR_FALSE. ERR_FALSE means that a false result
1220
- # indicates that an exception has been raised and should be propagated.
1221
- error_kind = ERR_NEVER
1222
-
1223
- # S for signed and U for unsigned
1224
- EQ: Final = 100
1225
- NEQ: Final = 101
1226
- SLT: Final = 102
1227
- SGT: Final = 103
1228
- SLE: Final = 104
1229
- SGE: Final = 105
1230
- ULT: Final = 106
1231
- UGT: Final = 107
1232
- ULE: Final = 108
1233
- UGE: Final = 109
1234
-
1235
- op_str: Final = {
1236
- EQ: "==",
1237
- NEQ: "!=",
1238
- SLT: "<",
1239
- SGT: ">",
1240
- SLE: "<=",
1241
- SGE: ">=",
1242
- ULT: "<",
1243
- UGT: ">",
1244
- ULE: "<=",
1245
- UGE: ">=",
1246
- }
1247
-
1248
- signed_ops: Final = {"==": EQ, "!=": NEQ, "<": SLT, ">": SGT, "<=": SLE, ">=": SGE}
1249
- unsigned_ops: Final = {"==": EQ, "!=": NEQ, "<": ULT, ">": UGT, "<=": ULE, ">=": UGE}
1250
-
1251
- def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
1252
- super().__init__(line)
1253
- self.type = bit_rprimitive
1254
- self.lhs = lhs
1255
- self.rhs = rhs
1256
- self.op = op
1257
-
1258
- def sources(self) -> list[Value]:
1259
- return [self.lhs, self.rhs]
1260
-
1261
- def accept(self, visitor: OpVisitor[T]) -> T:
1262
- return visitor.visit_comparison_op(self)
1263
-
1264
-
1265
- class FloatOp(RegisterOp):
1266
- """Binary float arithmetic op (e.g., r1 = r2 + r3).
1267
-
1268
- These ops are low-level and are similar to the corresponding C
1269
- operations (and somewhat different from Python operations).
1270
-
1271
- The left and right values must be floats.
1272
- """
1273
-
1274
- error_kind = ERR_NEVER
1275
-
1276
- ADD: Final = 0
1277
- SUB: Final = 1
1278
- MUL: Final = 2
1279
- DIV: Final = 3
1280
- MOD: Final = 4
1281
-
1282
- op_str: Final = {ADD: "+", SUB: "-", MUL: "*", DIV: "/", MOD: "%"}
1283
-
1284
- def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
1285
- super().__init__(line)
1286
- self.type = float_rprimitive
1287
- self.lhs = lhs
1288
- self.rhs = rhs
1289
- self.op = op
1290
-
1291
- def sources(self) -> list[Value]:
1292
- return [self.lhs, self.rhs]
1293
-
1294
- def accept(self, visitor: OpVisitor[T]) -> T:
1295
- return visitor.visit_float_op(self)
1296
-
1297
-
1298
- # We can't have this in the FloatOp class body, because of
1299
- # https://github.com/mypyc/mypyc/issues/932.
1300
- float_op_to_id: Final = {op: op_id for op_id, op in FloatOp.op_str.items()}
1301
-
1302
-
1303
- class FloatNeg(RegisterOp):
1304
- """Float negation op (r1 = -r2)."""
1305
-
1306
- error_kind = ERR_NEVER
1307
-
1308
- def __init__(self, src: Value, line: int = -1) -> None:
1309
- super().__init__(line)
1310
- self.type = float_rprimitive
1311
- self.src = src
1312
-
1313
- def sources(self) -> list[Value]:
1314
- return [self.src]
1315
-
1316
- def accept(self, visitor: OpVisitor[T]) -> T:
1317
- return visitor.visit_float_neg(self)
1318
-
1319
-
1320
- class FloatComparisonOp(RegisterOp):
1321
- """Low-level comparison op for floats."""
1322
-
1323
- error_kind = ERR_NEVER
1324
-
1325
- EQ: Final = 200
1326
- NEQ: Final = 201
1327
- LT: Final = 202
1328
- GT: Final = 203
1329
- LE: Final = 204
1330
- GE: Final = 205
1331
-
1332
- op_str: Final = {EQ: "==", NEQ: "!=", LT: "<", GT: ">", LE: "<=", GE: ">="}
1333
-
1334
- def __init__(self, lhs: Value, rhs: Value, op: int, line: int = -1) -> None:
1335
- super().__init__(line)
1336
- self.type = bit_rprimitive
1337
- self.lhs = lhs
1338
- self.rhs = rhs
1339
- self.op = op
1340
-
1341
- def sources(self) -> list[Value]:
1342
- return [self.lhs, self.rhs]
1343
-
1344
- def accept(self, visitor: OpVisitor[T]) -> T:
1345
- return visitor.visit_float_comparison_op(self)
1346
-
1347
-
1348
- # We can't have this in the FloatOp class body, because of
1349
- # https://github.com/mypyc/mypyc/issues/932.
1350
- float_comparison_op_to_id: Final = {op: op_id for op_id, op in FloatComparisonOp.op_str.items()}
1351
-
1352
-
1353
- class LoadMem(RegisterOp):
1354
- """Read a memory location: result = *(type *)src.
1355
-
1356
- Attributes:
1357
- type: Type of the read value
1358
- src: Pointer to memory to read
1359
- """
1360
-
1361
- error_kind = ERR_NEVER
1362
-
1363
- def __init__(self, type: RType, src: Value, line: int = -1) -> None:
1364
- super().__init__(line)
1365
- self.type = type
1366
- # TODO: for now we enforce that the src memory address should be Py_ssize_t
1367
- # later we should also support same width unsigned int
1368
- assert is_pointer_rprimitive(src.type)
1369
- self.src = src
1370
- self.is_borrowed = True
1371
-
1372
- def sources(self) -> list[Value]:
1373
- return [self.src]
1374
-
1375
- def accept(self, visitor: OpVisitor[T]) -> T:
1376
- return visitor.visit_load_mem(self)
1377
-
1378
-
1379
- class SetMem(Op):
1380
- """Write to a memory location: *(type *)dest = src
1381
-
1382
- Attributes:
1383
- type: Type of the written value
1384
- dest: Pointer to memory to write
1385
- src: Source value
1386
- """
1387
-
1388
- error_kind = ERR_NEVER
1389
-
1390
- def __init__(self, type: RType, dest: Value, src: Value, line: int = -1) -> None:
1391
- super().__init__(line)
1392
- self.type = void_rtype
1393
- self.dest_type = type
1394
- self.src = src
1395
- self.dest = dest
1396
-
1397
- def sources(self) -> list[Value]:
1398
- return [self.src, self.dest]
1399
-
1400
- def stolen(self) -> list[Value]:
1401
- return [self.src]
1402
-
1403
- def accept(self, visitor: OpVisitor[T]) -> T:
1404
- return visitor.visit_set_mem(self)
1405
-
1406
-
1407
- class GetElementPtr(RegisterOp):
1408
- """Get the address of a struct element.
1409
-
1410
- Note that you may need to use KeepAlive to avoid the struct
1411
- being freed, if it's reference counted, such as PyObject *.
1412
- """
1413
-
1414
- error_kind = ERR_NEVER
1415
-
1416
- def __init__(self, src: Value, src_type: RType, field: str, line: int = -1) -> None:
1417
- super().__init__(line)
1418
- self.type = pointer_rprimitive
1419
- self.src = src
1420
- self.src_type = src_type
1421
- self.field = field
1422
-
1423
- def sources(self) -> list[Value]:
1424
- return [self.src]
1425
-
1426
- def accept(self, visitor: OpVisitor[T]) -> T:
1427
- return visitor.visit_get_element_ptr(self)
1428
-
1429
-
1430
- class LoadAddress(RegisterOp):
1431
- """Get the address of a value: result = (type)&src
1432
-
1433
- Attributes:
1434
- type: Type of the loaded address(e.g. ptr/object_ptr)
1435
- src: Source value (str for globals like 'PyList_Type',
1436
- Register for temporary values or locals, LoadStatic
1437
- for statics.)
1438
- """
1439
-
1440
- error_kind = ERR_NEVER
1441
- is_borrowed = True
1442
-
1443
- def __init__(self, type: RType, src: str | Register | LoadStatic, line: int = -1) -> None:
1444
- super().__init__(line)
1445
- self.type = type
1446
- self.src = src
1447
-
1448
- def sources(self) -> list[Value]:
1449
- if isinstance(self.src, Register):
1450
- return [self.src]
1451
- else:
1452
- return []
1453
-
1454
- def accept(self, visitor: OpVisitor[T]) -> T:
1455
- return visitor.visit_load_address(self)
1456
-
1457
-
1458
- class KeepAlive(RegisterOp):
1459
- """A no-op operation that ensures source values aren't freed.
1460
-
1461
- This is sometimes useful to avoid decref when a reference is still
1462
- being held but not seen by the compiler.
1463
-
1464
- A typical use case is like this (C-like pseudocode):
1465
-
1466
- ptr = &x.item
1467
- r = *ptr
1468
- keep_alive x # x must not be freed here
1469
- # x may be freed here
1470
-
1471
- If we didn't have "keep_alive x", x could be freed immediately
1472
- after taking the address of 'item', resulting in a read after free
1473
- on the second line.
1474
-
1475
- If 'steal' is true, the value is considered to be stolen at
1476
- this op, i.e. it won't be decref'd. You need to ensure that
1477
- the value is freed otherwise, perhaps by using borrowing
1478
- followed by Unborrow.
1479
-
1480
- Be careful with steal=True -- this can cause memory leaks.
1481
- """
1482
-
1483
- error_kind = ERR_NEVER
1484
-
1485
- def __init__(self, src: list[Value], *, steal: bool = False) -> None:
1486
- assert src
1487
- self.src = src
1488
- self.steal = steal
1489
-
1490
- def sources(self) -> list[Value]:
1491
- return self.src.copy()
1492
-
1493
- def stolen(self) -> list[Value]:
1494
- if self.steal:
1495
- return self.src.copy()
1496
- return []
1497
-
1498
- def accept(self, visitor: OpVisitor[T]) -> T:
1499
- return visitor.visit_keep_alive(self)
1500
-
1501
-
1502
- class Unborrow(RegisterOp):
1503
- """A no-op op to create a regular reference from a borrowed one.
1504
-
1505
- Borrowed references can only be used temporarily and the reference
1506
- counts won't be managed. This value will be refcounted normally.
1507
-
1508
- This is mainly useful if you split an aggregate value, such as
1509
- a tuple, into components using borrowed values (to avoid increfs),
1510
- and want to treat the components as sharing the original managed
1511
- reference. You'll also need to use KeepAlive with steal=True to
1512
- "consume" the original tuple reference:
1513
-
1514
- # t is a 2-tuple
1515
- r0 = borrow t[0]
1516
- r1 = borrow t[1]
1517
- r2 = unborrow r0
1518
- r3 = unborrow r1
1519
- # now (r2, r3) represent the tuple as separate items, and the
1520
- # original tuple can be considered dead and available to be
1521
- # stolen
1522
- keep_alive steal t
1523
-
1524
- Be careful with this -- this can easily cause double freeing.
1525
- """
1526
-
1527
- error_kind = ERR_NEVER
1528
-
1529
- def __init__(self, src: Value, line: int = -1) -> None:
1530
- super().__init__(line)
1531
- assert src.is_borrowed
1532
- self.src = src
1533
- self.type = src.type
1534
-
1535
- def sources(self) -> list[Value]:
1536
- return [self.src]
1537
-
1538
- def stolen(self) -> list[Value]:
1539
- return []
1540
-
1541
- def accept(self, visitor: OpVisitor[T]) -> T:
1542
- return visitor.visit_unborrow(self)
1543
-
1544
-
1545
- @trait
1546
- class OpVisitor(Generic[T]):
1547
- """Generic visitor over ops (uses the visitor design pattern)."""
1548
-
1549
- @abstractmethod
1550
- def visit_goto(self, op: Goto) -> T:
1551
- raise NotImplementedError
1552
-
1553
- @abstractmethod
1554
- def visit_branch(self, op: Branch) -> T:
1555
- raise NotImplementedError
1556
-
1557
- @abstractmethod
1558
- def visit_return(self, op: Return) -> T:
1559
- raise NotImplementedError
1560
-
1561
- @abstractmethod
1562
- def visit_unreachable(self, op: Unreachable) -> T:
1563
- raise NotImplementedError
1564
-
1565
- @abstractmethod
1566
- def visit_assign(self, op: Assign) -> T:
1567
- raise NotImplementedError
1568
-
1569
- @abstractmethod
1570
- def visit_assign_multi(self, op: AssignMulti) -> T:
1571
- raise NotImplementedError
1572
-
1573
- @abstractmethod
1574
- def visit_load_error_value(self, op: LoadErrorValue) -> T:
1575
- raise NotImplementedError
1576
-
1577
- @abstractmethod
1578
- def visit_load_literal(self, op: LoadLiteral) -> T:
1579
- raise NotImplementedError
1580
-
1581
- @abstractmethod
1582
- def visit_get_attr(self, op: GetAttr) -> T:
1583
- raise NotImplementedError
1584
-
1585
- @abstractmethod
1586
- def visit_set_attr(self, op: SetAttr) -> T:
1587
- raise NotImplementedError
1588
-
1589
- @abstractmethod
1590
- def visit_load_static(self, op: LoadStatic) -> T:
1591
- raise NotImplementedError
1592
-
1593
- @abstractmethod
1594
- def visit_init_static(self, op: InitStatic) -> T:
1595
- raise NotImplementedError
1596
-
1597
- @abstractmethod
1598
- def visit_tuple_get(self, op: TupleGet) -> T:
1599
- raise NotImplementedError
1600
-
1601
- @abstractmethod
1602
- def visit_tuple_set(self, op: TupleSet) -> T:
1603
- raise NotImplementedError
1604
-
1605
- def visit_inc_ref(self, op: IncRef) -> T:
1606
- raise NotImplementedError
1607
-
1608
- def visit_dec_ref(self, op: DecRef) -> T:
1609
- raise NotImplementedError
1610
-
1611
- @abstractmethod
1612
- def visit_call(self, op: Call) -> T:
1613
- raise NotImplementedError
1614
-
1615
- @abstractmethod
1616
- def visit_method_call(self, op: MethodCall) -> T:
1617
- raise NotImplementedError
1618
-
1619
- @abstractmethod
1620
- def visit_cast(self, op: Cast) -> T:
1621
- raise NotImplementedError
1622
-
1623
- @abstractmethod
1624
- def visit_box(self, op: Box) -> T:
1625
- raise NotImplementedError
1626
-
1627
- @abstractmethod
1628
- def visit_unbox(self, op: Unbox) -> T:
1629
- raise NotImplementedError
1630
-
1631
- @abstractmethod
1632
- def visit_raise_standard_error(self, op: RaiseStandardError) -> T:
1633
- raise NotImplementedError
1634
-
1635
- @abstractmethod
1636
- def visit_call_c(self, op: CallC) -> T:
1637
- raise NotImplementedError
1638
-
1639
- @abstractmethod
1640
- def visit_primitive_op(self, op: PrimitiveOp) -> T:
1641
- raise NotImplementedError
1642
-
1643
- @abstractmethod
1644
- def visit_truncate(self, op: Truncate) -> T:
1645
- raise NotImplementedError
1646
-
1647
- @abstractmethod
1648
- def visit_extend(self, op: Extend) -> T:
1649
- raise NotImplementedError
1650
-
1651
- @abstractmethod
1652
- def visit_load_global(self, op: LoadGlobal) -> T:
1653
- raise NotImplementedError
1654
-
1655
- @abstractmethod
1656
- def visit_int_op(self, op: IntOp) -> T:
1657
- raise NotImplementedError
1658
-
1659
- @abstractmethod
1660
- def visit_comparison_op(self, op: ComparisonOp) -> T:
1661
- raise NotImplementedError
1662
-
1663
- @abstractmethod
1664
- def visit_float_op(self, op: FloatOp) -> T:
1665
- raise NotImplementedError
1666
-
1667
- @abstractmethod
1668
- def visit_float_neg(self, op: FloatNeg) -> T:
1669
- raise NotImplementedError
1670
-
1671
- @abstractmethod
1672
- def visit_float_comparison_op(self, op: FloatComparisonOp) -> T:
1673
- raise NotImplementedError
1674
-
1675
- @abstractmethod
1676
- def visit_load_mem(self, op: LoadMem) -> T:
1677
- raise NotImplementedError
1678
-
1679
- @abstractmethod
1680
- def visit_set_mem(self, op: SetMem) -> T:
1681
- raise NotImplementedError
1682
-
1683
- @abstractmethod
1684
- def visit_get_element_ptr(self, op: GetElementPtr) -> T:
1685
- raise NotImplementedError
1686
-
1687
- @abstractmethod
1688
- def visit_load_address(self, op: LoadAddress) -> T:
1689
- raise NotImplementedError
1690
-
1691
- @abstractmethod
1692
- def visit_keep_alive(self, op: KeepAlive) -> T:
1693
- raise NotImplementedError
1694
-
1695
- @abstractmethod
1696
- def visit_unborrow(self, op: Unborrow) -> T:
1697
- raise NotImplementedError
1698
-
1699
-
1700
- # TODO: Should the following definition live somewhere else?
1701
-
1702
-
1703
- # We do a three-pass deserialization scheme in order to resolve name
1704
- # references.
1705
- # 1. Create an empty ClassIR for each class in an SCC.
1706
- # 2. Deserialize all of the functions, which can contain references
1707
- # to ClassIRs in their types
1708
- # 3. Deserialize all of the classes, which contain lots of references
1709
- # to the functions they contain. (And to other classes.)
1710
- #
1711
- # Note that this approach differs from how we deserialize ASTs in mypy itself,
1712
- # where everything is deserialized in one pass then a second pass cleans up
1713
- # 'cross_refs'. We don't follow that approach here because it seems to be more
1714
- # code for not a lot of gain since it is easy in mypyc to identify all the objects
1715
- # we might need to reference.
1716
- #
1717
- # Because of these references, we need to maintain maps from class
1718
- # names to ClassIRs and func IDs to FuncIRs.
1719
- #
1720
- # These are tracked in a DeserMaps which is passed to every
1721
- # deserialization function.
1722
- #
1723
- # (Serialization and deserialization *will* be used for incremental
1724
- # compilation but so far it is not hooked up to anything.)
1725
- class DeserMaps(NamedTuple):
1726
- classes: dict[str, ClassIR]
1727
- functions: dict[str, FuncIR]