jaclang 0.7.33__py3-none-any.whl → 0.8.0__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 (1481) hide show
  1. jaclang/__init__.py +7 -414
  2. jaclang/cli/cli.md +5 -5
  3. jaclang/cli/cli.py +311 -214
  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 +61 -92
  9. jaclang/compiler/larkparse/jac_parser.py +3444 -0
  10. jaclang/compiler/parser.py +1054 -1341
  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 +146 -102
  16. jaclang/compiler/passes/main/def_use_pass.py +64 -269
  17. jaclang/compiler/passes/main/import_pass.py +175 -360
  18. jaclang/compiler/passes/main/inheritance_pass.py +107 -105
  19. jaclang/compiler/passes/main/pyast_gen_pass.py +1129 -1600
  20. jaclang/compiler/passes/main/pyast_load_pass.py +540 -584
  21. jaclang/compiler/passes/main/pybc_gen_pass.py +38 -35
  22. jaclang/compiler/passes/main/pyjac_ast_link_pass.py +46 -160
  23. jaclang/compiler/passes/main/sym_tab_build_pass.py +113 -1202
  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 +23 -0
  66. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/main.jac +14 -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 +99 -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 +1210 -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 +205 -0
  107. jaclang/compiler/tests/fixtures/codegentext.jac +31 -0
  108. jaclang/compiler/tests/fixtures/fam.jac +10 -10
  109. jaclang/compiler/tests/fixtures/hello_world.jac +1 -1
  110. jaclang/compiler/tests/fixtures/staticcheck.jac +2 -2
  111. jaclang/compiler/tests/test_importer.py +21 -16
  112. jaclang/compiler/tests/test_parser.py +38 -17
  113. jaclang/compiler/{absyntree.py → unitree.py} +1120 -1012
  114. jaclang/langserve/engine.py +183 -171
  115. jaclang/langserve/sem_manager.py +26 -22
  116. jaclang/langserve/server.py +6 -15
  117. jaclang/langserve/tests/fixtures/base_module_structure.jac +7 -7
  118. jaclang/langserve/tests/fixtures/circle.jac +6 -6
  119. jaclang/langserve/tests/fixtures/circle_err.jac +6 -6
  120. jaclang/langserve/tests/fixtures/circle_pure.impl.jac +5 -5
  121. jaclang/langserve/tests/fixtures/circle_pure.jac +7 -7
  122. jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac +2 -2
  123. jaclang/langserve/tests/fixtures/circle_pure_err.jac +7 -7
  124. jaclang/langserve/tests/fixtures/import_include_statements.jac +6 -6
  125. jaclang/langserve/tests/fixtures/rename.jac +6 -6
  126. jaclang/langserve/tests/server_test/test_lang_serve.py +262 -0
  127. jaclang/langserve/tests/server_test/utils.py +115 -0
  128. jaclang/langserve/tests/test_sem_tokens.py +2 -2
  129. jaclang/langserve/tests/test_server.py +41 -23
  130. jaclang/langserve/utils.jac +438 -0
  131. jaclang/runtimelib/{architype.py → archetype.py} +85 -61
  132. jaclang/runtimelib/builtin.py +92 -0
  133. jaclang/runtimelib/constructs.py +11 -13
  134. jaclang/runtimelib/importer.py +63 -51
  135. jaclang/runtimelib/machine.py +1551 -144
  136. jaclang/runtimelib/memory.py +6 -6
  137. jaclang/{plugin → runtimelib}/tests/fixtures/graph_purger.jac +1 -1
  138. jaclang/{plugin → runtimelib}/tests/fixtures/impl_match.jac +2 -2
  139. jaclang/runtimelib/tests/fixtures/impl_match_impl.jac +3 -0
  140. jaclang/{plugin → runtimelib}/tests/fixtures/other_root_access.jac +7 -7
  141. jaclang/{plugin → runtimelib}/tests/fixtures/savable_object.jac +3 -5
  142. jaclang/{plugin → runtimelib}/tests/fixtures/simple_node_connection.jac +6 -6
  143. jaclang/{plugin → runtimelib}/tests/fixtures/simple_persistent.jac +1 -1
  144. jaclang/runtimelib/tests/test_features.py +72 -0
  145. jaclang/{plugin → runtimelib}/tests/test_jaseci.py +6 -5
  146. jaclang/runtimelib/utils.py +31 -63
  147. jaclang/settings.py +1 -6
  148. jaclang/tests/fixtures/{abc.jac → abc_check.jac} +6 -6
  149. jaclang/tests/fixtures/arch_rel_import_creation.jac +4 -4
  150. jaclang/tests/fixtures/async_ability.jac +18 -0
  151. jaclang/tests/fixtures/async_walker.jac +23 -0
  152. jaclang/tests/fixtures/baddy.jac +1 -1
  153. jaclang/tests/fixtures/base_class1.jac +2 -2
  154. jaclang/tests/fixtures/base_class2.jac +2 -2
  155. jaclang/tests/fixtures/base_class_complex_expr.jac +3 -3
  156. jaclang/tests/fixtures/builtin_dotgen.jac +1 -1
  157. jaclang/tests/fixtures/builtin_dotgen_json.jac +21 -0
  158. jaclang/tests/fixtures/byllmissue.jac +1 -1
  159. jaclang/tests/fixtures/chandra_bugs.jac +1 -1
  160. jaclang/tests/fixtures/chandra_bugs2.jac +1 -1
  161. jaclang/tests/fixtures/cls_method.jac +6 -6
  162. jaclang/tests/fixtures/concurrency.jac +39 -0
  163. jaclang/tests/fixtures/connect_traverse_syntax.jac +18 -0
  164. jaclang/tests/fixtures/create_dynamic_archetype.jac +35 -0
  165. jaclang/tests/fixtures/decl_defn_param_name.jac +4 -4
  166. jaclang/tests/fixtures/deep/deeper/__init__.jac +1 -0
  167. jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +2 -3
  168. jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +3 -3
  169. jaclang/tests/fixtures/deep/deeper/snd_lev.jac +2 -2
  170. jaclang/tests/fixtures/deep/mycode.jac +1 -1
  171. jaclang/tests/fixtures/deep/one_lev.jac +3 -4
  172. jaclang/tests/fixtures/deep/one_lev_dup.jac +2 -2
  173. jaclang/tests/fixtures/deep_convert.jac +1 -1
  174. jaclang/tests/fixtures/deep_import.jac +2 -2
  175. jaclang/tests/fixtures/deep_import_interp.jac +8 -0
  176. jaclang/tests/fixtures/deep_import_mods.jac +3 -3
  177. jaclang/tests/fixtures/deferred_field.jac +1 -1
  178. jaclang/tests/fixtures/del_clean.jac +7 -0
  179. jaclang/tests/fixtures/disconn.jac +3 -3
  180. jaclang/tests/fixtures/dynamic_archetype.jac +34 -0
  181. jaclang/tests/fixtures/edge_node_walk.jac +12 -12
  182. jaclang/tests/fixtures/edge_ops.jac +7 -7
  183. jaclang/tests/fixtures/edges_walk.jac +10 -10
  184. jaclang/tests/fixtures/edgetypeissue.jac +1 -1
  185. jaclang/tests/fixtures/enum_inside_archtype.jac +4 -4
  186. jaclang/tests/fixtures/err.impl.jac +1 -1
  187. jaclang/tests/fixtures/err.jac +2 -2
  188. jaclang/tests/fixtures/err_runtime.jac +2 -2
  189. jaclang/tests/fixtures/foo.jac +7 -7
  190. jaclang/tests/fixtures/game1.jac +4 -4
  191. jaclang/tests/fixtures/gendot_bubble_sort.jac +4 -4
  192. jaclang/tests/fixtures/glob_multivar_statement.jac +1 -1
  193. jaclang/tests/fixtures/guess_game.jac +5 -5
  194. jaclang/tests/fixtures/has_goodness.jac +1 -1
  195. jaclang/tests/fixtures/hash_init_check.jac +3 -3
  196. jaclang/tests/fixtures/hello.jac +1 -1
  197. jaclang/tests/fixtures/ignore.jac +3 -3
  198. jaclang/tests/fixtures/ignore_dup.jac +3 -3
  199. jaclang/tests/fixtures/impl_match_confused.impl.jac +1 -1
  200. jaclang/tests/fixtures/import.jac +9 -9
  201. jaclang/tests/fixtures/import_all.jac +1 -1
  202. jaclang/tests/fixtures/index_slice.jac +1 -1
  203. jaclang/tests/fixtures/inherit_check.jac +3 -3
  204. jaclang/tests/fixtures/jac_from_py.py +4 -0
  205. jaclang/tests/fixtures/jacsamp.jac +1 -1
  206. jaclang/tests/fixtures/jactest_main.jac +1 -1
  207. jaclang/tests/fixtures/jp_importer.jac +7 -8
  208. jaclang/tests/fixtures/jp_importer_auto.jac +3 -3
  209. jaclang/tests/fixtures/lambda.jac +2 -2
  210. jaclang/tests/fixtures/needs_import.jac +6 -6
  211. jaclang/tests/fixtures/needs_import_1.jac +1 -1
  212. jaclang/tests/fixtures/needs_import_2.jac +1 -1
  213. jaclang/tests/fixtures/needs_import_3.jac +1 -1
  214. jaclang/tests/fixtures/needs_import_dup.jac +6 -6
  215. jaclang/tests/fixtures/node_del.jac +60 -0
  216. jaclang/tests/fixtures/nosigself.jac +3 -3
  217. jaclang/tests/fixtures/py2jac.py +30 -0
  218. jaclang/tests/fixtures/py_bool_expr.py +7 -0
  219. jaclang/tests/fixtures/py_namedexpr.py +7 -0
  220. jaclang/tests/fixtures/pyfunc_3.py +0 -2
  221. jaclang/tests/fixtures/random_check.jac +5 -5
  222. jaclang/tests/fixtures/refs_target.jac +17 -0
  223. jaclang/tests/fixtures/simple_archs.jac +2 -2
  224. jaclang/tests/fixtures/simple_walk.jac +52 -0
  225. jaclang/tests/fixtures/slice_vals.jac +3 -3
  226. jaclang/tests/fixtures/sub_abil_sep.jac +3 -3
  227. jaclang/tests/fixtures/sub_abil_sep_multilev.jac +3 -3
  228. jaclang/tests/fixtures/trailing_comma.jac +4 -4
  229. jaclang/tests/fixtures/type_info.jac +5 -5
  230. jaclang/{compiler/passes/main/tests → tests}/fixtures/uninitialized_hasvars.jac +1 -1
  231. jaclang/tests/fixtures/visit_order.jac +4 -4
  232. jaclang/tests/fixtures/walker_override.jac +2 -2
  233. jaclang/tests/fixtures/walker_update.jac +5 -5
  234. jaclang/tests/fixtures/with_context.jac +4 -4
  235. jaclang/tests/test_bugs.py +2 -2
  236. jaclang/tests/test_cli.py +118 -223
  237. jaclang/tests/test_language.py +474 -468
  238. jaclang/tests/test_man_code.py +2 -2
  239. jaclang/tests/test_reference.py +4 -4
  240. jaclang/tests/test_settings.py +16 -16
  241. jaclang/tests/test_typecheck.py +555 -0
  242. jaclang/utils/__init__.py +4 -0
  243. jaclang/utils/helpers.py +12 -27
  244. jaclang/utils/lang_tools.py +84 -74
  245. jaclang/utils/module_resolver.py +69 -0
  246. jaclang/utils/test.py +8 -5
  247. jaclang/utils/tests/test_lang_tools.py +38 -13
  248. jaclang/utils/treeprinter.py +177 -40
  249. jaclang/vendor/__init__.py +1 -2
  250. jaclang/vendor/attr/__init__.py +14 -44
  251. jaclang/vendor/attr/__init__.pyi +155 -321
  252. jaclang/vendor/attr/_cmp.py +25 -15
  253. jaclang/vendor/attr/_cmp.pyi +7 -7
  254. jaclang/vendor/attr/_compat.py +15 -8
  255. jaclang/vendor/attr/_config.py +1 -1
  256. jaclang/vendor/attr/_funcs.py +148 -163
  257. jaclang/vendor/attr/_make.py +859 -855
  258. jaclang/vendor/attr/_next_gen.py +426 -32
  259. jaclang/vendor/attr/converters.py +67 -49
  260. jaclang/vendor/attr/converters.pyi +13 -7
  261. jaclang/vendor/attr/filters.py +17 -11
  262. jaclang/vendor/attr/filters.pyi +3 -3
  263. jaclang/vendor/attr/setters.py +11 -5
  264. jaclang/vendor/attr/setters.pyi +2 -1
  265. jaclang/vendor/attr/validators.py +191 -162
  266. jaclang/vendor/attr/validators.pyi +25 -27
  267. jaclang/vendor/attrs/__init__.py +9 -5
  268. jaclang/vendor/attrs/__init__.pyi +225 -29
  269. jaclang/vendor/attrs-25.3.0.dist-info/INSTALLER +1 -0
  270. jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/METADATA +83 -53
  271. jaclang/vendor/attrs-25.3.0.dist-info/RECORD +56 -0
  272. jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/WHEEL +1 -1
  273. jaclang/vendor/bin/dmypy +8 -0
  274. jaclang/vendor/bin/mypy +8 -0
  275. jaclang/vendor/bin/mypyc +8 -0
  276. jaclang/vendor/bin/stubgen +8 -0
  277. jaclang/vendor/bin/stubtest +8 -0
  278. jaclang/vendor/cattr/gen.py +2 -2
  279. jaclang/vendor/cattr/preconf/bson.py +1 -0
  280. jaclang/vendor/cattr/preconf/json.py +1 -0
  281. jaclang/vendor/cattr/preconf/msgpack.py +1 -0
  282. jaclang/vendor/cattr/preconf/orjson.py +1 -0
  283. jaclang/vendor/cattr/preconf/pyyaml.py +1 -0
  284. jaclang/vendor/cattr/preconf/tomlkit.py +1 -0
  285. jaclang/vendor/cattr/preconf/ujson.py +1 -0
  286. jaclang/vendor/cattrs/__init__.py +21 -21
  287. jaclang/vendor/cattrs/_compat.py +176 -62
  288. jaclang/vendor/cattrs/_generics.py +5 -3
  289. jaclang/vendor/cattrs/cols.py +289 -0
  290. jaclang/vendor/cattrs/converters.py +505 -187
  291. jaclang/vendor/cattrs/disambiguators.py +118 -45
  292. jaclang/vendor/cattrs/dispatch.py +66 -36
  293. jaclang/vendor/cattrs/fns.py +6 -1
  294. jaclang/vendor/cattrs/gen/__init__.py +365 -202
  295. jaclang/vendor/cattrs/gen/_generics.py +41 -5
  296. jaclang/vendor/cattrs/gen/_lc.py +3 -2
  297. jaclang/vendor/cattrs/gen/_shared.py +39 -32
  298. jaclang/vendor/cattrs/gen/typeddicts.py +75 -88
  299. jaclang/vendor/cattrs/preconf/__init__.py +20 -0
  300. jaclang/vendor/cattrs/preconf/bson.py +7 -8
  301. jaclang/vendor/cattrs/preconf/cbor2.py +3 -0
  302. jaclang/vendor/cattrs/preconf/json.py +8 -4
  303. jaclang/vendor/cattrs/preconf/msgpack.py +3 -0
  304. jaclang/vendor/cattrs/preconf/msgspec.py +185 -0
  305. jaclang/vendor/cattrs/preconf/orjson.py +20 -7
  306. jaclang/vendor/cattrs/preconf/pyyaml.py +15 -3
  307. jaclang/vendor/cattrs/preconf/tomlkit.py +3 -1
  308. jaclang/vendor/cattrs/preconf/ujson.py +3 -0
  309. jaclang/vendor/cattrs/strategies/__init__.py +1 -0
  310. jaclang/vendor/cattrs/strategies/_class_methods.py +1 -1
  311. jaclang/vendor/cattrs/strategies/_subclasses.py +43 -29
  312. jaclang/vendor/cattrs/strategies/_unions.py +47 -24
  313. jaclang/vendor/cattrs/v.py +1 -0
  314. jaclang/vendor/cattrs-24.1.3.dist-info/INSTALLER +1 -0
  315. jaclang/vendor/cattrs-24.1.3.dist-info/METADATA +161 -0
  316. jaclang/vendor/cattrs-24.1.3.dist-info/RECORD +96 -0
  317. jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/WHEEL +1 -1
  318. jaclang/vendor/lark/__init__.py +38 -38
  319. jaclang/vendor/lark/__pyinstaller/__init__.py +6 -6
  320. jaclang/vendor/lark/__pyinstaller/hook-lark.py +14 -14
  321. jaclang/vendor/lark/ast_utils.py +59 -59
  322. jaclang/vendor/lark/common.py +86 -89
  323. jaclang/vendor/lark/exceptions.py +292 -292
  324. jaclang/vendor/lark/grammar.py +130 -130
  325. jaclang/vendor/lark/grammars/common.lark +59 -59
  326. jaclang/vendor/lark/grammars/lark.lark +62 -62
  327. jaclang/vendor/lark/grammars/python.lark +302 -302
  328. jaclang/vendor/lark/grammars/unicode.lark +7 -7
  329. jaclang/vendor/lark/indenter.py +143 -112
  330. jaclang/vendor/lark/lark.py +658 -661
  331. jaclang/vendor/lark/lexer.py +678 -678
  332. jaclang/vendor/lark/load_grammar.py +1428 -1428
  333. jaclang/vendor/lark/parse_tree_builder.py +391 -391
  334. jaclang/vendor/lark/parser_frontends.py +257 -257
  335. jaclang/vendor/lark/parsers/cyk.py +340 -340
  336. jaclang/vendor/lark/parsers/earley.py +317 -308
  337. jaclang/vendor/lark/parsers/earley_common.py +42 -42
  338. jaclang/vendor/lark/parsers/earley_forest.py +802 -810
  339. jaclang/vendor/lark/parsers/grammar_analysis.py +203 -203
  340. jaclang/vendor/lark/parsers/lalr_analysis.py +332 -332
  341. jaclang/vendor/lark/parsers/lalr_interactive_parser.py +158 -157
  342. jaclang/vendor/lark/parsers/lalr_parser.py +122 -122
  343. jaclang/vendor/lark/parsers/lalr_parser_state.py +110 -110
  344. jaclang/vendor/lark/parsers/xearley.py +165 -165
  345. jaclang/vendor/lark/reconstruct.py +107 -107
  346. jaclang/vendor/lark/tools/__init__.py +70 -71
  347. jaclang/vendor/lark/tools/nearley.py +202 -202
  348. jaclang/vendor/lark/tools/serialize.py +32 -32
  349. jaclang/vendor/lark/tools/standalone.py +196 -196
  350. jaclang/vendor/lark/tree.py +267 -272
  351. jaclang/vendor/lark/tree_matcher.py +186 -186
  352. jaclang/vendor/lark/utils.py +346 -361
  353. jaclang/vendor/lark/visitors.py +596 -593
  354. jaclang/vendor/lark-1.2.2.dist-info/INSTALLER +1 -0
  355. jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/METADATA +48 -47
  356. jaclang/vendor/lark-1.2.2.dist-info/RECORD +83 -0
  357. jaclang/vendor/{mypy_extensions-1.0.0.dist-info → lark-1.2.2.dist-info}/WHEEL +1 -1
  358. jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info/licenses}/LICENSE +18 -18
  359. jaclang/vendor/lsprotocol-2023.0.1.dist-info/INSTALLER +1 -0
  360. jaclang/vendor/lsprotocol-2023.0.1.dist-info/METADATA +2 -1
  361. jaclang/vendor/lsprotocol-2023.0.1.dist-info/RECORD +17 -10
  362. jaclang/vendor/lsprotocol-2023.0.1.dist-info/WHEEL +1 -1
  363. jaclang/vendor/pluggy/_version.py +7 -2
  364. jaclang/vendor/pluggy-1.5.0.dist-info/INSTALLER +1 -0
  365. jaclang/vendor/pluggy-1.5.0.dist-info/METADATA +6 -5
  366. jaclang/vendor/pluggy-1.5.0.dist-info/RECORD +24 -14
  367. jaclang/vendor/pluggy-1.5.0.dist-info/WHEEL +1 -1
  368. jaclang/vendor/pygls-1.3.1.dist-info/INSTALLER +1 -0
  369. jaclang/vendor/pygls-1.3.1.dist-info/METADATA +2 -2
  370. jaclang/vendor/pygls-1.3.1.dist-info/RECORD +45 -24
  371. jaclang/vendor/pygls-1.3.1.dist-info/WHEEL +1 -1
  372. {jaclang-0.7.33.dist-info → jaclang-0.8.0.dist-info}/METADATA +4 -4
  373. jaclang-0.8.0.dist-info/RECORD +552 -0
  374. {jaclang-0.7.33.dist-info → jaclang-0.8.0.dist-info}/WHEEL +1 -1
  375. jaclang/compiler/.gitignore +0 -1
  376. jaclang/compiler/compile.py +0 -119
  377. jaclang/compiler/passes/main/access_modifier_pass.py +0 -130
  378. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +0 -656
  379. jaclang/compiler/passes/main/py_collect_dep_pass.py +0 -78
  380. jaclang/compiler/passes/main/pyout_pass.py +0 -86
  381. jaclang/compiler/passes/main/registry_pass.py +0 -156
  382. jaclang/compiler/passes/main/schedules.py +0 -47
  383. jaclang/compiler/passes/main/sub_node_tab_pass.py +0 -36
  384. jaclang/compiler/passes/main/tests/fixtures/registry.jac +0 -36
  385. jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +0 -114
  386. jaclang/compiler/passes/main/tests/test_registry_pass.py +0 -31
  387. jaclang/compiler/passes/main/tests/test_type_check_pass.py +0 -91
  388. jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +0 -29
  389. jaclang/compiler/passes/main/type_check_pass.py +0 -128
  390. jaclang/compiler/passes/tool/schedules.py +0 -18
  391. jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +0 -36
  392. jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +0 -17
  393. jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +0 -32
  394. jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +0 -27
  395. jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +0 -35
  396. jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +0 -25
  397. jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +0 -13
  398. jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +0 -63
  399. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/architype_test.jac +0 -13
  400. jaclang/compiler/passes/utils/mypy_ast_build.py +0 -940
  401. jaclang/compiler/py_info.py +0 -22
  402. jaclang/compiler/semtable.py +0 -159
  403. jaclang/compiler/symtable.py +0 -297
  404. jaclang/langserve/utils.py +0 -458
  405. jaclang/plugin/__init__.py +0 -7
  406. jaclang/plugin/builtin.py +0 -57
  407. jaclang/plugin/default.py +0 -1443
  408. jaclang/plugin/feature.py +0 -574
  409. jaclang/plugin/plugin.md +0 -471
  410. jaclang/plugin/spec.py +0 -536
  411. jaclang/plugin/tests/fixtures/impl_match_impl.jac +0 -3
  412. jaclang/plugin/tests/test_features.py +0 -56
  413. jaclang/runtimelib/context.py +0 -191
  414. jaclang/tests/fixtures/create_dynamic_architype.jac +0 -35
  415. jaclang/tests/fixtures/dynamic_architype.jac +0 -34
  416. jaclang/tests/fixtures/impl_grab.impl.jac +0 -5
  417. jaclang/tests/fixtures/mtest.impl.jac +0 -6
  418. jaclang/tests/fixtures/registry.jac +0 -58
  419. jaclang/tests/fixtures/semstr.jac +0 -30
  420. jaclang/tests/main.jac +0 -2
  421. jaclang/utils/profiler.py +0 -62
  422. jaclang/vendor/attrs-23.2.0.dist-info/RECORD +0 -35
  423. jaclang/vendor/cattrs-23.2.3.dist-info/METADATA +0 -221
  424. jaclang/vendor/cattrs-23.2.3.dist-info/RECORD +0 -48
  425. jaclang/vendor/lark-1.1.9.dist-info/RECORD +0 -46
  426. jaclang/vendor/lark-1.1.9.dist-info/WHEEL +0 -5
  427. jaclang/vendor/mypy/__init__.py +0 -1
  428. jaclang/vendor/mypy/__main__.py +0 -37
  429. jaclang/vendor/mypy/api.py +0 -94
  430. jaclang/vendor/mypy/applytype.py +0 -172
  431. jaclang/vendor/mypy/argmap.py +0 -268
  432. jaclang/vendor/mypy/binder.py +0 -538
  433. jaclang/vendor/mypy/bogus_type.py +0 -27
  434. jaclang/vendor/mypy/build.py +0 -3562
  435. jaclang/vendor/mypy/checker.py +0 -8445
  436. jaclang/vendor/mypy/checkexpr.py +0 -6623
  437. jaclang/vendor/mypy/checkmember.py +0 -1363
  438. jaclang/vendor/mypy/checkpattern.py +0 -801
  439. jaclang/vendor/mypy/checkstrformat.py +0 -1109
  440. jaclang/vendor/mypy/config_parser.py +0 -670
  441. jaclang/vendor/mypy/constant_fold.py +0 -187
  442. jaclang/vendor/mypy/constraints.py +0 -1636
  443. jaclang/vendor/mypy/copytype.py +0 -133
  444. jaclang/vendor/mypy/defaults.py +0 -46
  445. jaclang/vendor/mypy/dmypy/__main__.py +0 -6
  446. jaclang/vendor/mypy/dmypy/client.py +0 -749
  447. jaclang/vendor/mypy/dmypy_os.py +0 -42
  448. jaclang/vendor/mypy/dmypy_server.py +0 -1107
  449. jaclang/vendor/mypy/dmypy_util.py +0 -117
  450. jaclang/vendor/mypy/erasetype.py +0 -278
  451. jaclang/vendor/mypy/errorcodes.py +0 -291
  452. jaclang/vendor/mypy/errors.py +0 -1280
  453. jaclang/vendor/mypy/evalexpr.py +0 -205
  454. jaclang/vendor/mypy/expandtype.py +0 -524
  455. jaclang/vendor/mypy/exprtotype.py +0 -209
  456. jaclang/vendor/mypy/fastparse.py +0 -2147
  457. jaclang/vendor/mypy/find_sources.py +0 -243
  458. jaclang/vendor/mypy/fixup.py +0 -428
  459. jaclang/vendor/mypy/freetree.py +0 -23
  460. jaclang/vendor/mypy/fscache.py +0 -309
  461. jaclang/vendor/mypy/fswatcher.py +0 -106
  462. jaclang/vendor/mypy/gclogger.py +0 -47
  463. jaclang/vendor/mypy/git.py +0 -34
  464. jaclang/vendor/mypy/graph_utils.py +0 -112
  465. jaclang/vendor/mypy/indirection.py +0 -121
  466. jaclang/vendor/mypy/infer.py +0 -75
  467. jaclang/vendor/mypy/inspections.py +0 -627
  468. jaclang/vendor/mypy/ipc.py +0 -310
  469. jaclang/vendor/mypy/join.py +0 -871
  470. jaclang/vendor/mypy/literals.py +0 -306
  471. jaclang/vendor/mypy/lookup.py +0 -61
  472. jaclang/vendor/mypy/main.py +0 -1574
  473. jaclang/vendor/mypy/maptype.py +0 -106
  474. jaclang/vendor/mypy/meet.py +0 -1140
  475. jaclang/vendor/mypy/memprofile.py +0 -121
  476. jaclang/vendor/mypy/message_registry.py +0 -329
  477. jaclang/vendor/mypy/messages.py +0 -3186
  478. jaclang/vendor/mypy/metastore.py +0 -225
  479. jaclang/vendor/mypy/mixedtraverser.py +0 -112
  480. jaclang/vendor/mypy/modulefinder.py +0 -875
  481. jaclang/vendor/mypy/moduleinspect.py +0 -184
  482. jaclang/vendor/mypy/mro.py +0 -62
  483. jaclang/vendor/mypy/nodes.py +0 -4115
  484. jaclang/vendor/mypy/operators.py +0 -126
  485. jaclang/vendor/mypy/options.py +0 -556
  486. jaclang/vendor/mypy/parse.py +0 -30
  487. jaclang/vendor/mypy/partially_defined.py +0 -675
  488. jaclang/vendor/mypy/patterns.py +0 -150
  489. jaclang/vendor/mypy/plugin.py +0 -901
  490. jaclang/vendor/mypy/plugins/attrs.py +0 -1166
  491. jaclang/vendor/mypy/plugins/common.py +0 -440
  492. jaclang/vendor/mypy/plugins/ctypes.py +0 -245
  493. jaclang/vendor/mypy/plugins/dataclasses.py +0 -1108
  494. jaclang/vendor/mypy/plugins/default.py +0 -531
  495. jaclang/vendor/mypy/plugins/enums.py +0 -259
  496. jaclang/vendor/mypy/plugins/functools.py +0 -104
  497. jaclang/vendor/mypy/plugins/proper_plugin.py +0 -175
  498. jaclang/vendor/mypy/plugins/singledispatch.py +0 -224
  499. jaclang/vendor/mypy/py.typed +0 -1
  500. jaclang/vendor/mypy/pyinfo.py +0 -78
  501. jaclang/vendor/mypy/reachability.py +0 -362
  502. jaclang/vendor/mypy/refinfo.py +0 -92
  503. jaclang/vendor/mypy/renaming.py +0 -568
  504. jaclang/vendor/mypy/report.py +0 -924
  505. jaclang/vendor/mypy/scope.py +0 -125
  506. jaclang/vendor/mypy/semanal.py +0 -7187
  507. jaclang/vendor/mypy/semanal_classprop.py +0 -187
  508. jaclang/vendor/mypy/semanal_enum.py +0 -253
  509. jaclang/vendor/mypy/semanal_infer.py +0 -128
  510. jaclang/vendor/mypy/semanal_main.py +0 -511
  511. jaclang/vendor/mypy/semanal_namedtuple.py +0 -670
  512. jaclang/vendor/mypy/semanal_newtype.py +0 -273
  513. jaclang/vendor/mypy/semanal_pass1.py +0 -156
  514. jaclang/vendor/mypy/semanal_shared.py +0 -490
  515. jaclang/vendor/mypy/semanal_typeargs.py +0 -265
  516. jaclang/vendor/mypy/semanal_typeddict.py +0 -575
  517. jaclang/vendor/mypy/server/astdiff.py +0 -518
  518. jaclang/vendor/mypy/server/astmerge.py +0 -562
  519. jaclang/vendor/mypy/server/aststrip.py +0 -281
  520. jaclang/vendor/mypy/server/deps.py +0 -1137
  521. jaclang/vendor/mypy/server/mergecheck.py +0 -83
  522. jaclang/vendor/mypy/server/objgraph.py +0 -101
  523. jaclang/vendor/mypy/server/subexpr.py +0 -198
  524. jaclang/vendor/mypy/server/target.py +0 -11
  525. jaclang/vendor/mypy/server/trigger.py +0 -26
  526. jaclang/vendor/mypy/server/update.py +0 -1339
  527. jaclang/vendor/mypy/sharedparse.py +0 -112
  528. jaclang/vendor/mypy/solve.py +0 -562
  529. jaclang/vendor/mypy/split_namespace.py +0 -35
  530. jaclang/vendor/mypy/state.py +0 -28
  531. jaclang/vendor/mypy/stats.py +0 -489
  532. jaclang/vendor/mypy/strconv.py +0 -641
  533. jaclang/vendor/mypy/stubdoc.py +0 -491
  534. jaclang/vendor/mypy/stubgen.py +0 -1886
  535. jaclang/vendor/mypy/stubgenc.py +0 -993
  536. jaclang/vendor/mypy/stubinfo.py +0 -173
  537. jaclang/vendor/mypy/stubtest.py +0 -2079
  538. jaclang/vendor/mypy/stubutil.py +0 -834
  539. jaclang/vendor/mypy/subtypes.py +0 -1980
  540. jaclang/vendor/mypy/suggestions.py +0 -1046
  541. jaclang/vendor/mypy/test/config.py +0 -28
  542. jaclang/vendor/mypy/test/data.py +0 -821
  543. jaclang/vendor/mypy/test/helpers.py +0 -476
  544. jaclang/vendor/mypy/test/meta/_pytest.py +0 -72
  545. jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -47
  546. jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -73
  547. jaclang/vendor/mypy/test/meta/test_update_data.py +0 -135
  548. jaclang/vendor/mypy/test/test_find_sources.py +0 -376
  549. jaclang/vendor/mypy/test/test_ref_info.py +0 -45
  550. jaclang/vendor/mypy/test/testapi.py +0 -45
  551. jaclang/vendor/mypy/test/testargs.py +0 -77
  552. jaclang/vendor/mypy/test/testcheck.py +0 -322
  553. jaclang/vendor/mypy/test/testcmdline.py +0 -152
  554. jaclang/vendor/mypy/test/testconstraints.py +0 -134
  555. jaclang/vendor/mypy/test/testdaemon.py +0 -132
  556. jaclang/vendor/mypy/test/testdeps.py +0 -77
  557. jaclang/vendor/mypy/test/testdiff.py +0 -67
  558. jaclang/vendor/mypy/test/testerrorstream.py +0 -46
  559. jaclang/vendor/mypy/test/testfinegrained.py +0 -438
  560. jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -18
  561. jaclang/vendor/mypy/test/testformatter.py +0 -85
  562. jaclang/vendor/mypy/test/testfscache.py +0 -101
  563. jaclang/vendor/mypy/test/testgraph.py +0 -83
  564. jaclang/vendor/mypy/test/testinfer.py +0 -373
  565. jaclang/vendor/mypy/test/testipc.py +0 -119
  566. jaclang/vendor/mypy/test/testmerge.py +0 -238
  567. jaclang/vendor/mypy/test/testmodulefinder.py +0 -278
  568. jaclang/vendor/mypy/test/testmypyc.py +0 -14
  569. jaclang/vendor/mypy/test/testparse.py +0 -107
  570. jaclang/vendor/mypy/test/testpep561.py +0 -211
  571. jaclang/vendor/mypy/test/testpythoneval.py +0 -117
  572. jaclang/vendor/mypy/test/testreports.py +0 -55
  573. jaclang/vendor/mypy/test/testsemanal.py +0 -209
  574. jaclang/vendor/mypy/test/testsolve.py +0 -285
  575. jaclang/vendor/mypy/test/teststubgen.py +0 -1412
  576. jaclang/vendor/mypy/test/teststubinfo.py +0 -12
  577. jaclang/vendor/mypy/test/teststubtest.py +0 -2492
  578. jaclang/vendor/mypy/test/testsubtypes.py +0 -303
  579. jaclang/vendor/mypy/test/testtransform.py +0 -64
  580. jaclang/vendor/mypy/test/testtypegen.py +0 -83
  581. jaclang/vendor/mypy/test/testtypes.py +0 -1551
  582. jaclang/vendor/mypy/test/testutil.py +0 -111
  583. jaclang/vendor/mypy/test/typefixture.py +0 -415
  584. jaclang/vendor/mypy/test/update_data.py +0 -87
  585. jaclang/vendor/mypy/test/visitors.py +0 -63
  586. jaclang/vendor/mypy/traverser.py +0 -961
  587. jaclang/vendor/mypy/treetransform.py +0 -800
  588. jaclang/vendor/mypy/tvar_scope.py +0 -169
  589. jaclang/vendor/mypy/type_visitor.py +0 -564
  590. jaclang/vendor/mypy/typeanal.py +0 -2596
  591. jaclang/vendor/mypy/typeops.py +0 -1082
  592. jaclang/vendor/mypy/types.py +0 -3708
  593. jaclang/vendor/mypy/types_utils.py +0 -166
  594. jaclang/vendor/mypy/typeshed/LICENSE +0 -237
  595. jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +0 -309
  596. jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +0 -36
  597. jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +0 -3
  598. jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +0 -591
  599. jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +0 -84
  600. jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +0 -1
  601. jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +0 -133
  602. jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +0 -94
  603. jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +0 -8
  604. jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +0 -25
  605. jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +0 -90
  606. jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +0 -207
  607. jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +0 -566
  608. jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +0 -281
  609. jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +0 -33
  610. jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +0 -164
  611. jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +0 -11
  612. jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +0 -28
  613. jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +0 -49
  614. jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +0 -100
  615. jaclang/vendor/mypy/typeshed/stdlib/_lsprof.pyi +0 -35
  616. jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +0 -16
  617. jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +0 -92
  618. jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +0 -147
  619. jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +0 -34
  620. jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +0 -33
  621. jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +0 -14
  622. jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +0 -43
  623. jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +0 -12
  624. jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +0 -16
  625. jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +0 -803
  626. jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +0 -103
  627. jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +0 -59
  628. jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +0 -17
  629. jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +0 -121
  630. jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +0 -17
  631. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +0 -347
  632. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +0 -37
  633. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +0 -44
  634. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +0 -9
  635. jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +0 -55
  636. jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +0 -41
  637. jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +0 -51
  638. jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +0 -255
  639. jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +0 -51
  640. jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +0 -91
  641. jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +0 -3
  642. jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +0 -595
  643. jaclang/vendor/mypy/typeshed/stdlib/array.pyi +0 -92
  644. jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +0 -277
  645. jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +0 -21
  646. jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +0 -41
  647. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +0 -440
  648. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +0 -19
  649. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +0 -63
  650. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +0 -9
  651. jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +0 -20
  652. jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +0 -26
  653. jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +0 -580
  654. jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +0 -43
  655. jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +0 -20
  656. jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +0 -57
  657. jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +0 -121
  658. jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +0 -3
  659. jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +0 -9
  660. jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +0 -64
  661. jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +0 -34
  662. jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +0 -47
  663. jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +0 -32
  664. jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +0 -8
  665. jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +0 -165
  666. jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +0 -10
  667. jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +0 -153
  668. jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +0 -229
  669. jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +0 -25
  670. jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +0 -497
  671. jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +0 -9
  672. jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +0 -19
  673. jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +0 -47
  674. jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +0 -94
  675. jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +0 -196
  676. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +0 -85
  677. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +0 -49
  678. jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +0 -90
  679. jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +0 -12
  680. jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +0 -43
  681. jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +0 -59
  682. jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +0 -102
  683. jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +0 -36
  684. jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +0 -45
  685. jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +0 -4
  686. jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +0 -1936
  687. jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +0 -146
  688. jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +0 -31
  689. jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +0 -208
  690. jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +0 -118
  691. jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +0 -32
  692. jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +0 -20
  693. jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +0 -36
  694. jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +0 -45
  695. jaclang/vendor/mypy/typeshed/stdlib/code.pyi +0 -33
  696. jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +0 -285
  697. jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +0 -13
  698. jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +0 -485
  699. jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +0 -2
  700. jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +0 -13
  701. jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +0 -111
  702. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +0 -32
  703. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +0 -126
  704. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +0 -233
  705. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +0 -80
  706. jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +0 -313
  707. jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +0 -208
  708. jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +0 -63
  709. jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +0 -16
  710. jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +0 -21
  711. jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +0 -12
  712. jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +0 -147
  713. jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +0 -187
  714. jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +0 -19
  715. jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +0 -6
  716. jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +0 -298
  717. jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +0 -22
  718. jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +0 -62
  719. jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +0 -1
  720. jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +0 -22
  721. jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +0 -11
  722. jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +0 -315
  723. jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +0 -295
  724. jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +0 -95
  725. jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +0 -31
  726. jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +0 -41
  727. jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +0 -37
  728. jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +0 -2
  729. jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +0 -140
  730. jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +0 -144
  731. jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +0 -5
  732. jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +0 -20
  733. jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +0 -3
  734. jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +0 -152
  735. jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +0 -66
  736. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +0 -25
  737. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +0 -21
  738. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +0 -45
  739. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +0 -52
  740. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +0 -16
  741. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +0 -31
  742. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +0 -27
  743. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +0 -50
  744. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +0 -44
  745. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +0 -24
  746. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +0 -39
  747. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +0 -17
  748. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +0 -83
  749. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +0 -63
  750. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +0 -19
  751. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +0 -18
  752. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +0 -16
  753. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +0 -25
  754. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +0 -18
  755. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +0 -18
  756. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +0 -42
  757. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +0 -17
  758. jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +0 -17
  759. jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +0 -57
  760. jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +0 -20
  761. jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +0 -1
  762. jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +0 -3
  763. jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +0 -13
  764. jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +0 -146
  765. jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +0 -19
  766. jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +0 -36
  767. jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +0 -34
  768. jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +0 -14
  769. jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +0 -50
  770. jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +0 -25
  771. jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +0 -3
  772. jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +0 -2
  773. jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +0 -31
  774. jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +0 -21
  775. jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +0 -3
  776. jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +0 -46
  777. jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +0 -36
  778. jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +0 -248
  779. jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +0 -2
  780. jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +0 -29
  781. jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +0 -392
  782. jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +0 -51
  783. jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +0 -13
  784. jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +0 -34
  785. jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +0 -11
  786. jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +0 -8
  787. jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +0 -39
  788. jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +0 -23
  789. jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +0 -40
  790. jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +0 -31
  791. jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +0 -178
  792. jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +0 -12
  793. jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +0 -165
  794. jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +0 -17
  795. jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +0 -17
  796. jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +0 -8
  797. jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +0 -17
  798. jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +0 -8
  799. jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +0 -18
  800. jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +0 -5
  801. jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +0 -9
  802. jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +0 -26
  803. jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +0 -38
  804. jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +0 -28
  805. jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +0 -70
  806. jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +0 -10
  807. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +0 -21
  808. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +0 -22
  809. jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +0 -12
  810. jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +0 -320
  811. jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +0 -222
  812. jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +0 -13
  813. jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +0 -127
  814. jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +0 -57
  815. jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +0 -213
  816. jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +0 -9
  817. jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +0 -88
  818. jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +0 -150
  819. jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +0 -178
  820. jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +0 -213
  821. jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +0 -37
  822. jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +0 -52
  823. jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +0 -11
  824. jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +0 -8
  825. jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +0 -169
  826. jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +0 -42
  827. jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +0 -28
  828. jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +0 -22
  829. jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +0 -160
  830. jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +0 -167
  831. jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +0 -17
  832. jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +0 -38
  833. jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +0 -6
  834. jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +0 -6
  835. jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +0 -34
  836. jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +0 -105
  837. jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +0 -259
  838. jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +0 -159
  839. jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +0 -60
  840. jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +0 -83
  841. jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +0 -168
  842. jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +0 -17
  843. jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +0 -62
  844. jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +0 -24
  845. jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +0 -15
  846. jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +0 -172
  847. jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +0 -179
  848. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +0 -285
  849. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +0 -49
  850. jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +0 -68
  851. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +0 -46
  852. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +0 -12
  853. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +0 -14
  854. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +0 -56
  855. jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +0 -11
  856. jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +0 -43
  857. jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +0 -632
  858. jaclang/vendor/mypy/typeshed/stdlib/io.pyi +0 -238
  859. jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +0 -208
  860. jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +0 -273
  861. jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +0 -61
  862. jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +0 -32
  863. jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +0 -40
  864. jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +0 -1
  865. jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +0 -21
  866. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +0 -28
  867. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +0 -42
  868. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +0 -8
  869. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +0 -10
  870. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +0 -8
  871. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +0 -8
  872. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +0 -16
  873. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +0 -14
  874. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +0 -8
  875. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +0 -8
  876. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +0 -13
  877. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +0 -9
  878. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +0 -8
  879. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +0 -8
  880. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +0 -8
  881. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +0 -8
  882. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +0 -15
  883. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +0 -16
  884. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +0 -21
  885. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +0 -6
  886. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +0 -11
  887. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +0 -9
  888. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +0 -8
  889. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +0 -9
  890. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +0 -7
  891. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +0 -7
  892. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +0 -9
  893. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +0 -17
  894. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +0 -10
  895. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +0 -8
  896. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +0 -19
  897. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +0 -8
  898. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +0 -8
  899. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +0 -12
  900. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +0 -8
  901. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +0 -12
  902. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +0 -8
  903. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +0 -8
  904. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +0 -8
  905. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +0 -9
  906. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +0 -17
  907. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +0 -8
  908. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +0 -7
  909. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +0 -8
  910. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +0 -9
  911. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +0 -8
  912. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +0 -17
  913. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +0 -8
  914. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +0 -12
  915. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +0 -15
  916. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +0 -12
  917. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +0 -20
  918. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +0 -8
  919. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +0 -9
  920. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +0 -42
  921. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +0 -9
  922. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +0 -27
  923. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +0 -24
  924. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +0 -7
  925. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +0 -30
  926. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +0 -50
  927. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +0 -67
  928. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +0 -96
  929. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +0 -114
  930. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +0 -117
  931. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +0 -82
  932. jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +0 -23
  933. jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +0 -152
  934. jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +0 -658
  935. jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +0 -134
  936. jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +0 -275
  937. jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +0 -197
  938. jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +0 -256
  939. jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +0 -11
  940. jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +0 -33
  941. jaclang/vendor/mypy/typeshed/stdlib/math.pyi +0 -125
  942. jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +0 -46
  943. jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +0 -113
  944. jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +0 -66
  945. jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +0 -177
  946. jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +0 -94
  947. jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +0 -13
  948. jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +0 -7
  949. jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +0 -32
  950. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +0 -90
  951. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +0 -75
  952. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +0 -189
  953. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +0 -77
  954. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +0 -39
  955. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +0 -31
  956. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +0 -36
  957. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +0 -212
  958. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +0 -103
  959. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +0 -23
  960. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +0 -16
  961. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +0 -20
  962. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +0 -30
  963. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +0 -39
  964. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +0 -41
  965. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +0 -90
  966. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +0 -20
  967. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +0 -18
  968. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +0 -40
  969. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +0 -107
  970. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +0 -32
  971. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +0 -54
  972. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +0 -98
  973. jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +0 -23
  974. jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +0 -9
  975. jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +0 -125
  976. jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +0 -111
  977. jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +0 -119
  978. jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +0 -2
  979. jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +0 -209
  980. jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +0 -59
  981. jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +0 -110
  982. jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +0 -255
  983. jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +0 -1157
  984. jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +0 -8
  985. jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +0 -131
  986. jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +0 -24
  987. jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +0 -232
  988. jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +0 -181
  989. jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +0 -271
  990. jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +0 -167
  991. jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +0 -16
  992. jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +0 -53
  993. jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +0 -42
  994. jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +0 -113
  995. jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +0 -71
  996. jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +0 -361
  997. jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +0 -161
  998. jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +0 -112
  999. jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +0 -31
  1000. jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +0 -80
  1001. jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +0 -19
  1002. jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +0 -28
  1003. jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +0 -34
  1004. jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +0 -74
  1005. jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +0 -261
  1006. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  1007. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +0 -1
  1008. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +0 -85
  1009. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +0 -49
  1010. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +0 -11
  1011. jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +0 -66
  1012. jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +0 -11
  1013. jaclang/vendor/mypy/typeshed/stdlib/random.pyi +0 -138
  1014. jaclang/vendor/mypy/typeshed/stdlib/re.pyi +0 -290
  1015. jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +0 -36
  1016. jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +0 -65
  1017. jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +0 -94
  1018. jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +0 -9
  1019. jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +0 -24
  1020. jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +0 -42
  1021. jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +0 -15
  1022. jaclang/vendor/mypy/typeshed/stdlib/select.pyi +0 -155
  1023. jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +0 -67
  1024. jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +0 -46
  1025. jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +0 -63
  1026. jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +0 -185
  1027. jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +0 -188
  1028. jaclang/vendor/mypy/typeshed/stdlib/site.pyi +0 -27
  1029. jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +0 -91
  1030. jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +0 -204
  1031. jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +0 -14
  1032. jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +0 -825
  1033. jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +0 -168
  1034. jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +0 -41
  1035. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +0 -1
  1036. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +0 -551
  1037. jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +0 -11
  1038. jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +0 -130
  1039. jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +0 -104
  1040. jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +0 -537
  1041. jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +0 -1
  1042. jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +0 -132
  1043. jaclang/vendor/mypy/typeshed/stdlib/string.pyi +0 -83
  1044. jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +0 -27
  1045. jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +0 -26
  1046. jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +0 -2615
  1047. jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +0 -86
  1048. jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +0 -93
  1049. jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +0 -58
  1050. jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +0 -373
  1051. jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +0 -52
  1052. jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +0 -48
  1053. jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +0 -46
  1054. jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +0 -16
  1055. jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +0 -441
  1056. jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +0 -122
  1057. jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +0 -477
  1058. jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +0 -267
  1059. jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +0 -103
  1060. jaclang/vendor/mypy/typeshed/stdlib/this.pyi +0 -2
  1061. jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +0 -187
  1062. jaclang/vendor/mypy/typeshed/stdlib/time.pyi +0 -108
  1063. jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +0 -32
  1064. jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +0 -3654
  1065. jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +0 -20
  1066. jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +0 -14
  1067. jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +0 -80
  1068. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +0 -16
  1069. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +0 -20
  1070. jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +0 -151
  1071. jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +0 -116
  1072. jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +0 -44
  1073. jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +0 -9
  1074. jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +0 -54
  1075. jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +0 -299
  1076. jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +0 -1204
  1077. jaclang/vendor/mypy/typeshed/stdlib/token.pyi +0 -159
  1078. jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +0 -177
  1079. jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +0 -10
  1080. jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +0 -79
  1081. jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +0 -262
  1082. jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +0 -124
  1083. jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +0 -30
  1084. jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +0 -713
  1085. jaclang/vendor/mypy/typeshed/stdlib/types.pyi +0 -614
  1086. jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +0 -976
  1087. jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +0 -509
  1088. jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +0 -73
  1089. jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +0 -67
  1090. jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +0 -27
  1091. jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +0 -21
  1092. jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +0 -342
  1093. jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +0 -51
  1094. jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +0 -69
  1095. jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +0 -430
  1096. jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +0 -47
  1097. jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +0 -72
  1098. jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +0 -15
  1099. jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +0 -22
  1100. jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +0 -23
  1101. jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  1102. jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +0 -23
  1103. jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +0 -210
  1104. jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +0 -400
  1105. jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +0 -43
  1106. jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +0 -20
  1107. jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +0 -13
  1108. jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +0 -100
  1109. jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +0 -112
  1110. jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +0 -85
  1111. jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +0 -149
  1112. jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +0 -74
  1113. jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +0 -132
  1114. jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +0 -28
  1115. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  1116. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +0 -91
  1117. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +0 -26
  1118. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +0 -37
  1119. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +0 -32
  1120. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +0 -24
  1121. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +0 -50
  1122. jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +0 -57
  1123. jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +0 -1
  1124. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +0 -19
  1125. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +0 -69
  1126. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +0 -8
  1127. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +0 -100
  1128. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +0 -22
  1129. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +0 -404
  1130. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +0 -94
  1131. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +0 -108
  1132. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +0 -28
  1133. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +0 -34
  1134. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +0 -327
  1135. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  1136. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +0 -1
  1137. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +0 -1
  1138. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +0 -1
  1139. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +0 -1
  1140. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +0 -1
  1141. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +0 -25
  1142. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +0 -19
  1143. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +0 -55
  1144. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +0 -60
  1145. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +0 -87
  1146. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  1147. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +0 -296
  1148. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +0 -143
  1149. jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +0 -22
  1150. jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +0 -20
  1151. jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +0 -306
  1152. jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +0 -95
  1153. jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +0 -32
  1154. jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +0 -56
  1155. jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +0 -38
  1156. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +0 -218
  1157. jaclang/vendor/mypy/typestate.py +0 -323
  1158. jaclang/vendor/mypy/typetraverser.py +0 -148
  1159. jaclang/vendor/mypy/typevars.py +0 -93
  1160. jaclang/vendor/mypy/typevartuples.py +0 -32
  1161. jaclang/vendor/mypy/util.py +0 -869
  1162. jaclang/vendor/mypy/version.py +0 -1
  1163. jaclang/vendor/mypy/visitor.py +0 -621
  1164. jaclang/vendor/mypy/xml/mypy-html.css +0 -104
  1165. jaclang/vendor/mypy/xml/mypy-html.xslt +0 -81
  1166. jaclang/vendor/mypy/xml/mypy-txt.xslt +0 -100
  1167. jaclang/vendor/mypy/xml/mypy.xsd +0 -50
  1168. jaclang/vendor/mypy-1.10.0.dist-info/LICENSE +0 -229
  1169. jaclang/vendor/mypy-1.10.0.dist-info/METADATA +0 -48
  1170. jaclang/vendor/mypy-1.10.0.dist-info/RECORD +0 -1241
  1171. jaclang/vendor/mypy-1.10.0.dist-info/WHEEL +0 -6
  1172. jaclang/vendor/mypy-1.10.0.dist-info/entry_points.txt +0 -6
  1173. jaclang/vendor/mypy-1.10.0.dist-info/top_level.txt +0 -3
  1174. jaclang/vendor/mypy_extensions-1.0.0.dist-info/LICENSE +0 -27
  1175. jaclang/vendor/mypy_extensions-1.0.0.dist-info/METADATA +0 -29
  1176. jaclang/vendor/mypy_extensions-1.0.0.dist-info/RECORD +0 -6
  1177. jaclang/vendor/mypy_extensions-1.0.0.dist-info/top_level.txt +0 -1
  1178. jaclang/vendor/mypy_extensions.py +0 -213
  1179. jaclang/vendor/mypyc/README.md +0 -133
  1180. jaclang/vendor/mypyc/__init__.py +0 -0
  1181. jaclang/vendor/mypyc/__main__.py +0 -57
  1182. jaclang/vendor/mypyc/analysis/__init__.py +0 -0
  1183. jaclang/vendor/mypyc/analysis/attrdefined.py +0 -436
  1184. jaclang/vendor/mypyc/analysis/blockfreq.py +0 -32
  1185. jaclang/vendor/mypyc/analysis/dataflow.py +0 -628
  1186. jaclang/vendor/mypyc/analysis/ircheck.py +0 -433
  1187. jaclang/vendor/mypyc/analysis/selfleaks.py +0 -211
  1188. jaclang/vendor/mypyc/build.py +0 -616
  1189. jaclang/vendor/mypyc/codegen/__init__.py +0 -0
  1190. jaclang/vendor/mypyc/codegen/cstring.py +0 -54
  1191. jaclang/vendor/mypyc/codegen/emit.py +0 -1193
  1192. jaclang/vendor/mypyc/codegen/emitclass.py +0 -1060
  1193. jaclang/vendor/mypyc/codegen/emitfunc.py +0 -852
  1194. jaclang/vendor/mypyc/codegen/emitmodule.py +0 -1136
  1195. jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -979
  1196. jaclang/vendor/mypyc/codegen/literals.py +0 -302
  1197. jaclang/vendor/mypyc/common.py +0 -136
  1198. jaclang/vendor/mypyc/crash.py +0 -31
  1199. jaclang/vendor/mypyc/doc/Makefile +0 -20
  1200. jaclang/vendor/mypyc/doc/bool_operations.rst +0 -27
  1201. jaclang/vendor/mypyc/doc/compilation_units.rst +0 -20
  1202. jaclang/vendor/mypyc/doc/conf.py +0 -59
  1203. jaclang/vendor/mypyc/doc/cpython-timings.md +0 -25
  1204. jaclang/vendor/mypyc/doc/dev-intro.md +0 -548
  1205. jaclang/vendor/mypyc/doc/dict_operations.rst +0 -59
  1206. jaclang/vendor/mypyc/doc/differences_from_python.rst +0 -332
  1207. jaclang/vendor/mypyc/doc/float_operations.rst +0 -50
  1208. jaclang/vendor/mypyc/doc/future.md +0 -42
  1209. jaclang/vendor/mypyc/doc/getting_started.rst +0 -240
  1210. jaclang/vendor/mypyc/doc/index.rst +0 -61
  1211. jaclang/vendor/mypyc/doc/int_operations.rst +0 -162
  1212. jaclang/vendor/mypyc/doc/introduction.rst +0 -150
  1213. jaclang/vendor/mypyc/doc/list_operations.rst +0 -65
  1214. jaclang/vendor/mypyc/doc/make.bat +0 -35
  1215. jaclang/vendor/mypyc/doc/native_classes.rst +0 -206
  1216. jaclang/vendor/mypyc/doc/native_operations.rst +0 -55
  1217. jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +0 -244
  1218. jaclang/vendor/mypyc/doc/set_operations.rst +0 -47
  1219. jaclang/vendor/mypyc/doc/str_operations.rst +0 -35
  1220. jaclang/vendor/mypyc/doc/tuple_operations.rst +0 -33
  1221. jaclang/vendor/mypyc/doc/using_type_annotations.rst +0 -398
  1222. jaclang/vendor/mypyc/errors.py +0 -29
  1223. jaclang/vendor/mypyc/external/googletest/LICENSE +0 -28
  1224. jaclang/vendor/mypyc/external/googletest/README.md +0 -280
  1225. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +0 -294
  1226. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +0 -250
  1227. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +0 -1444
  1228. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +0 -510
  1229. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +0 -993
  1230. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +0 -232
  1231. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +0 -179
  1232. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +0 -263
  1233. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +0 -2236
  1234. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +0 -358
  1235. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +0 -58
  1236. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +0 -69
  1237. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  1238. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +0 -41
  1239. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -319
  1240. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +0 -206
  1241. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +0 -1238
  1242. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  1243. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
  1244. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
  1245. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +0 -731
  1246. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +0 -93
  1247. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +0 -2560
  1248. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +0 -167
  1249. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  1250. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  1251. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +0 -3331
  1252. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -297
  1253. jaclang/vendor/mypyc/external/googletest/make/Makefile +0 -61
  1254. jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +0 -48
  1255. jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +0 -1342
  1256. jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +0 -387
  1257. jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +0 -1183
  1258. jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +0 -1259
  1259. jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +0 -373
  1260. jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +0 -110
  1261. jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +0 -118
  1262. jaclang/vendor/mypyc/external/googletest/src/gtest.cc +0 -5388
  1263. jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +0 -38
  1264. jaclang/vendor/mypyc/ir/__init__.py +0 -0
  1265. jaclang/vendor/mypyc/ir/class_ir.py +0 -499
  1266. jaclang/vendor/mypyc/ir/func_ir.py +0 -370
  1267. jaclang/vendor/mypyc/ir/module_ir.py +0 -88
  1268. jaclang/vendor/mypyc/ir/ops.py +0 -1727
  1269. jaclang/vendor/mypyc/ir/pprint.py +0 -516
  1270. jaclang/vendor/mypyc/ir/rtypes.py +0 -1038
  1271. jaclang/vendor/mypyc/irbuild/__init__.py +0 -0
  1272. jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -123
  1273. jaclang/vendor/mypyc/irbuild/builder.py +0 -1394
  1274. jaclang/vendor/mypyc/irbuild/callable_class.py +0 -173
  1275. jaclang/vendor/mypyc/irbuild/classdef.py +0 -850
  1276. jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -95
  1277. jaclang/vendor/mypyc/irbuild/context.py +0 -186
  1278. jaclang/vendor/mypyc/irbuild/env_class.py +0 -223
  1279. jaclang/vendor/mypyc/irbuild/expression.py +0 -1070
  1280. jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -1075
  1281. jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -250
  1282. jaclang/vendor/mypyc/irbuild/function.py +0 -1088
  1283. jaclang/vendor/mypyc/irbuild/generator.py +0 -346
  1284. jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -2389
  1285. jaclang/vendor/mypyc/irbuild/main.py +0 -153
  1286. jaclang/vendor/mypyc/irbuild/mapper.py +0 -221
  1287. jaclang/vendor/mypyc/irbuild/match.py +0 -355
  1288. jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -197
  1289. jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +0 -203
  1290. jaclang/vendor/mypyc/irbuild/prepare.py +0 -609
  1291. jaclang/vendor/mypyc/irbuild/specialize.py +0 -822
  1292. jaclang/vendor/mypyc/irbuild/statement.py +0 -1017
  1293. jaclang/vendor/mypyc/irbuild/targets.py +0 -57
  1294. jaclang/vendor/mypyc/irbuild/util.py +0 -189
  1295. jaclang/vendor/mypyc/irbuild/visitor.py +0 -401
  1296. jaclang/vendor/mypyc/irbuild/vtable.py +0 -82
  1297. jaclang/vendor/mypyc/lib-rt/CPy.h +0 -638
  1298. jaclang/vendor/mypyc/lib-rt/bytes_ops.c +0 -143
  1299. jaclang/vendor/mypyc/lib-rt/dict_ops.c +0 -446
  1300. jaclang/vendor/mypyc/lib-rt/exc_ops.c +0 -259
  1301. jaclang/vendor/mypyc/lib-rt/float_ops.c +0 -192
  1302. jaclang/vendor/mypyc/lib-rt/generic_ops.c +0 -64
  1303. jaclang/vendor/mypyc/lib-rt/getargs.c +0 -450
  1304. jaclang/vendor/mypyc/lib-rt/getargsfast.c +0 -569
  1305. jaclang/vendor/mypyc/lib-rt/init.c +0 -13
  1306. jaclang/vendor/mypyc/lib-rt/int_ops.c +0 -803
  1307. jaclang/vendor/mypyc/lib-rt/list_ops.c +0 -335
  1308. jaclang/vendor/mypyc/lib-rt/misc_ops.c +0 -942
  1309. jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +0 -18
  1310. jaclang/vendor/mypyc/lib-rt/mypyc_util.h +0 -118
  1311. jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +0 -497
  1312. jaclang/vendor/mypyc/lib-rt/pythonsupport.h +0 -533
  1313. jaclang/vendor/mypyc/lib-rt/set_ops.c +0 -17
  1314. jaclang/vendor/mypyc/lib-rt/setup.py +0 -70
  1315. jaclang/vendor/mypyc/lib-rt/str_ops.c +0 -241
  1316. jaclang/vendor/mypyc/lib-rt/test_capi.cc +0 -585
  1317. jaclang/vendor/mypyc/lib-rt/tuple_ops.c +0 -61
  1318. jaclang/vendor/mypyc/lower/__init__.py +0 -0
  1319. jaclang/vendor/mypyc/lower/int_ops.py +0 -113
  1320. jaclang/vendor/mypyc/lower/list_ops.py +0 -45
  1321. jaclang/vendor/mypyc/lower/misc_ops.py +0 -12
  1322. jaclang/vendor/mypyc/lower/registry.py +0 -26
  1323. jaclang/vendor/mypyc/namegen.py +0 -115
  1324. jaclang/vendor/mypyc/options.py +0 -32
  1325. jaclang/vendor/mypyc/primitives/__init__.py +0 -0
  1326. jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -101
  1327. jaclang/vendor/mypyc/primitives/dict_ops.py +0 -325
  1328. jaclang/vendor/mypyc/primitives/exc_ops.py +0 -101
  1329. jaclang/vendor/mypyc/primitives/float_ops.py +0 -168
  1330. jaclang/vendor/mypyc/primitives/generic_ops.py +0 -384
  1331. jaclang/vendor/mypyc/primitives/int_ops.py +0 -303
  1332. jaclang/vendor/mypyc/primitives/list_ops.py +0 -310
  1333. jaclang/vendor/mypyc/primitives/misc_ops.py +0 -267
  1334. jaclang/vendor/mypyc/primitives/registry.py +0 -360
  1335. jaclang/vendor/mypyc/primitives/set_ops.py +0 -121
  1336. jaclang/vendor/mypyc/primitives/str_ops.py +0 -229
  1337. jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -83
  1338. jaclang/vendor/mypyc/rt_subtype.py +0 -77
  1339. jaclang/vendor/mypyc/sametype.py +0 -83
  1340. jaclang/vendor/mypyc/subtype.py +0 -88
  1341. jaclang/vendor/mypyc/test/__init__.py +0 -0
  1342. jaclang/vendor/mypyc/test/config.py +0 -13
  1343. jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -46
  1344. jaclang/vendor/mypyc/test/test_analysis.py +0 -77
  1345. jaclang/vendor/mypyc/test/test_cheader.py +0 -53
  1346. jaclang/vendor/mypyc/test/test_commandline.py +0 -82
  1347. jaclang/vendor/mypyc/test/test_emit.py +0 -69
  1348. jaclang/vendor/mypyc/test/test_emitclass.py +0 -35
  1349. jaclang/vendor/mypyc/test/test_emitfunc.py +0 -928
  1350. jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -60
  1351. jaclang/vendor/mypyc/test/test_exceptions.py +0 -56
  1352. jaclang/vendor/mypyc/test/test_external.py +0 -49
  1353. jaclang/vendor/mypyc/test/test_irbuild.py +0 -87
  1354. jaclang/vendor/mypyc/test/test_ircheck.py +0 -199
  1355. jaclang/vendor/mypyc/test/test_literals.py +0 -90
  1356. jaclang/vendor/mypyc/test/test_lowering.py +0 -56
  1357. jaclang/vendor/mypyc/test/test_namegen.py +0 -48
  1358. jaclang/vendor/mypyc/test/test_optimizations.py +0 -68
  1359. jaclang/vendor/mypyc/test/test_pprint.py +0 -42
  1360. jaclang/vendor/mypyc/test/test_rarray.py +0 -48
  1361. jaclang/vendor/mypyc/test/test_refcount.py +0 -59
  1362. jaclang/vendor/mypyc/test/test_run.py +0 -426
  1363. jaclang/vendor/mypyc/test/test_serialization.py +0 -108
  1364. jaclang/vendor/mypyc/test/test_struct.py +0 -112
  1365. jaclang/vendor/mypyc/test/test_tuplename.py +0 -33
  1366. jaclang/vendor/mypyc/test/test_typeops.py +0 -97
  1367. jaclang/vendor/mypyc/test/testutil.py +0 -283
  1368. jaclang/vendor/mypyc/test-data/alwaysdefined.test +0 -732
  1369. jaclang/vendor/mypyc/test-data/analysis.test +0 -470
  1370. jaclang/vendor/mypyc/test-data/commandline.test +0 -245
  1371. jaclang/vendor/mypyc/test-data/driver/driver.py +0 -48
  1372. jaclang/vendor/mypyc/test-data/exceptions-freq.test +0 -125
  1373. jaclang/vendor/mypyc/test-data/exceptions.test +0 -699
  1374. jaclang/vendor/mypyc/test-data/fixtures/ir.py +0 -373
  1375. jaclang/vendor/mypyc/test-data/fixtures/testutil.py +0 -103
  1376. jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +0 -169
  1377. jaclang/vendor/mypyc/test-data/irbuild-any.test +0 -236
  1378. jaclang/vendor/mypyc/test-data/irbuild-basic.test +0 -3399
  1379. jaclang/vendor/mypyc/test-data/irbuild-bool.test +0 -424
  1380. jaclang/vendor/mypyc/test-data/irbuild-bytes.test +0 -181
  1381. jaclang/vendor/mypyc/test-data/irbuild-classes.test +0 -1302
  1382. jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +0 -480
  1383. jaclang/vendor/mypyc/test-data/irbuild-dict.test +0 -584
  1384. jaclang/vendor/mypyc/test-data/irbuild-dunders.test +0 -215
  1385. jaclang/vendor/mypyc/test-data/irbuild-float.test +0 -497
  1386. jaclang/vendor/mypyc/test-data/irbuild-generics.test +0 -150
  1387. jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +0 -437
  1388. jaclang/vendor/mypyc/test-data/irbuild-i16.test +0 -526
  1389. jaclang/vendor/mypyc/test-data/irbuild-i32.test +0 -598
  1390. jaclang/vendor/mypyc/test-data/irbuild-i64.test +0 -2144
  1391. jaclang/vendor/mypyc/test-data/irbuild-int.test +0 -194
  1392. jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +0 -109
  1393. jaclang/vendor/mypyc/test-data/irbuild-lists.test +0 -513
  1394. jaclang/vendor/mypyc/test-data/irbuild-match.test +0 -1717
  1395. jaclang/vendor/mypyc/test-data/irbuild-math.test +0 -64
  1396. jaclang/vendor/mypyc/test-data/irbuild-nested.test +0 -807
  1397. jaclang/vendor/mypyc/test-data/irbuild-optional.test +0 -536
  1398. jaclang/vendor/mypyc/test-data/irbuild-set.test +0 -806
  1399. jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +0 -257
  1400. jaclang/vendor/mypyc/test-data/irbuild-statements.test +0 -1060
  1401. jaclang/vendor/mypyc/test-data/irbuild-str.test +0 -312
  1402. jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +0 -12
  1403. jaclang/vendor/mypyc/test-data/irbuild-try.test +0 -523
  1404. jaclang/vendor/mypyc/test-data/irbuild-tuple.test +0 -386
  1405. jaclang/vendor/mypyc/test-data/irbuild-u8.test +0 -543
  1406. jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +0 -241
  1407. jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +0 -153
  1408. jaclang/vendor/mypyc/test-data/lowering-int.test +0 -377
  1409. jaclang/vendor/mypyc/test-data/lowering-list.test +0 -33
  1410. jaclang/vendor/mypyc/test-data/opt-copy-propagation.test +0 -400
  1411. jaclang/vendor/mypyc/test-data/opt-flag-elimination.test +0 -296
  1412. jaclang/vendor/mypyc/test-data/refcount.test +0 -1482
  1413. jaclang/vendor/mypyc/test-data/run-async.test +0 -173
  1414. jaclang/vendor/mypyc/test-data/run-attrs.test +0 -318
  1415. jaclang/vendor/mypyc/test-data/run-bench.test +0 -196
  1416. jaclang/vendor/mypyc/test-data/run-bools.test +0 -229
  1417. jaclang/vendor/mypyc/test-data/run-bytes.test +0 -302
  1418. jaclang/vendor/mypyc/test-data/run-classes.test +0 -2505
  1419. jaclang/vendor/mypyc/test-data/run-dicts.test +0 -334
  1420. jaclang/vendor/mypyc/test-data/run-dunders.test +0 -945
  1421. jaclang/vendor/mypyc/test-data/run-exceptions.test +0 -448
  1422. jaclang/vendor/mypyc/test-data/run-floats.test +0 -516
  1423. jaclang/vendor/mypyc/test-data/run-functions.test +0 -1310
  1424. jaclang/vendor/mypyc/test-data/run-generators.test +0 -682
  1425. jaclang/vendor/mypyc/test-data/run-i16.test +0 -338
  1426. jaclang/vendor/mypyc/test-data/run-i32.test +0 -336
  1427. jaclang/vendor/mypyc/test-data/run-i64.test +0 -1519
  1428. jaclang/vendor/mypyc/test-data/run-imports.test +0 -265
  1429. jaclang/vendor/mypyc/test-data/run-integers.test +0 -540
  1430. jaclang/vendor/mypyc/test-data/run-lists.test +0 -411
  1431. jaclang/vendor/mypyc/test-data/run-loops.test +0 -485
  1432. jaclang/vendor/mypyc/test-data/run-match.test +0 -283
  1433. jaclang/vendor/mypyc/test-data/run-math.test +0 -106
  1434. jaclang/vendor/mypyc/test-data/run-misc.test +0 -1170
  1435. jaclang/vendor/mypyc/test-data/run-multimodule.test +0 -887
  1436. jaclang/vendor/mypyc/test-data/run-mypy-sim.test +0 -138
  1437. jaclang/vendor/mypyc/test-data/run-primitives.test +0 -375
  1438. jaclang/vendor/mypyc/test-data/run-python37.test +0 -159
  1439. jaclang/vendor/mypyc/test-data/run-python38.test +0 -88
  1440. jaclang/vendor/mypyc/test-data/run-sets.test +0 -150
  1441. jaclang/vendor/mypyc/test-data/run-singledispatch.test +0 -698
  1442. jaclang/vendor/mypyc/test-data/run-strings.test +0 -641
  1443. jaclang/vendor/mypyc/test-data/run-traits.test +0 -411
  1444. jaclang/vendor/mypyc/test-data/run-tuples.test +0 -258
  1445. jaclang/vendor/mypyc/test-data/run-u8.test +0 -303
  1446. jaclang/vendor/mypyc/transform/__init__.py +0 -0
  1447. jaclang/vendor/mypyc/transform/copy_propagation.py +0 -94
  1448. jaclang/vendor/mypyc/transform/exceptions.py +0 -182
  1449. jaclang/vendor/mypyc/transform/flag_elimination.py +0 -108
  1450. jaclang/vendor/mypyc/transform/ir_transform.py +0 -368
  1451. jaclang/vendor/mypyc/transform/lower.py +0 -33
  1452. jaclang/vendor/mypyc/transform/refcount.py +0 -294
  1453. jaclang/vendor/mypyc/transform/uninit.py +0 -190
  1454. jaclang/vendor/typing_extensions-4.12.2.dist-info/LICENSE +0 -279
  1455. jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA +0 -67
  1456. jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD +0 -5
  1457. jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL +0 -4
  1458. jaclang/vendor/typing_extensions.py +0 -3641
  1459. jaclang-0.7.33.dist-info/RECORD +0 -1562
  1460. /jaclang/{vendor/mypy/dmypy → compiler/larkparse}/__init__.py +0 -0
  1461. /jaclang/{tests → compiler/passes/main/tests}/fixtures/access_checker.jac +0 -0
  1462. /jaclang/{vendor/mypy/plugins/__init__.py → langserve/tests/fixtures/deep_check_crash.jac} +0 -0
  1463. /jaclang/{vendor/mypy/server/__init__.py → langserve/tests/server_test/code_test.py} +0 -0
  1464. /jaclang/{plugin → runtimelib}/tests/__init__.py +0 -0
  1465. /jaclang/{plugin → runtimelib}/tests/fixtures/traversing_save.jac +0 -0
  1466. /jaclang/{vendor/mypy/test → tests}/__init__.py +0 -0
  1467. /jaclang/{vendor/mypy/test/meta → tests/fixtures}/__init__.py +0 -0
  1468. /jaclang/tests/fixtures/{architype_def_bug.jac → archetype_def_bug.jac} +0 -0
  1469. /jaclang/vendor/{mypy/typeshed/stdlib/concurrent/__init__.pyi → attrs-25.3.0.dist-info/REQUESTED} +0 -0
  1470. /jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/licenses/LICENSE +0 -0
  1471. /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/__init__.pyi → cattrs-24.1.3.dist-info/REQUESTED} +0 -0
  1472. /jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/licenses/LICENSE +0 -0
  1473. /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi → lark-1.2.2.dist-info/REQUESTED} +0 -0
  1474. /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/entry_points.txt +0 -0
  1475. /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/top_level.txt +0 -0
  1476. /jaclang/vendor/{mypy/typeshed/stdlib/email/mime/__init__.pyi → lsprotocol-2023.0.1.dist-info/REQUESTED} +0 -0
  1477. /jaclang/vendor/lsprotocol-2023.0.1.dist-info/{LICENSE → licenses/LICENSE} +0 -0
  1478. /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/__init__.pyi → pluggy-1.5.0.dist-info/REQUESTED} +0 -0
  1479. /jaclang/vendor/pluggy-1.5.0.dist-info/{LICENSE → licenses/LICENSE} +0 -0
  1480. /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi → pygls-1.3.1.dist-info/REQUESTED} +0 -0
  1481. {jaclang-0.7.33.dist-info → jaclang-0.8.0.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]