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,1394 +0,0 @@
1
- """Builder class used to transform a mypy AST to the IR form.
2
-
3
- The IRBuilder class maintains transformation state and provides access
4
- to various helpers used to implement the transform.
5
-
6
- The top-level transform control logic is in mypyc.irbuild.main.
7
-
8
- mypyc.irbuild.visitor.IRBuilderVisitor is used to dispatch based on mypy
9
- AST node type to code that actually does the bulk of the work. For
10
- example, expressions are transformed in mypyc.irbuild.expression and
11
- functions are transformed in mypyc.irbuild.function.
12
- """
13
-
14
- from __future__ import annotations
15
-
16
- from contextlib import contextmanager
17
- from typing import Any, Callable, Final, Iterator, Sequence, Union
18
- from typing_extensions import overload
19
-
20
- from mypy.build import Graph
21
- from mypy.maptype import map_instance_to_supertype
22
- from mypy.nodes import (
23
- ARG_NAMED,
24
- ARG_POS,
25
- GDEF,
26
- LDEF,
27
- ArgKind,
28
- CallExpr,
29
- Decorator,
30
- Expression,
31
- FuncDef,
32
- IndexExpr,
33
- IntExpr,
34
- Lvalue,
35
- MemberExpr,
36
- MypyFile,
37
- NameExpr,
38
- OpExpr,
39
- OverloadedFuncDef,
40
- RefExpr,
41
- StarExpr,
42
- Statement,
43
- SymbolNode,
44
- TupleExpr,
45
- TypeAlias,
46
- TypeInfo,
47
- UnaryExpr,
48
- Var,
49
- )
50
- from mypy.types import (
51
- AnyType,
52
- DeletedType,
53
- Instance,
54
- ProperType,
55
- TupleType,
56
- Type,
57
- TypedDictType,
58
- TypeOfAny,
59
- UninhabitedType,
60
- UnionType,
61
- get_proper_type,
62
- )
63
- from mypy.util import module_prefix, split_target
64
- from mypy.visitor import ExpressionVisitor, StatementVisitor
65
- from mypyc.common import BITMAP_BITS, SELF_NAME, TEMP_ATTR_NAME
66
- from mypyc.crash import catch_errors
67
- from mypyc.errors import Errors
68
- from mypyc.ir.class_ir import ClassIR, NonExtClassInfo
69
- from mypyc.ir.func_ir import INVALID_FUNC_DEF, FuncDecl, FuncIR, FuncSignature, RuntimeArg
70
- from mypyc.ir.ops import (
71
- NAMESPACE_MODULE,
72
- Assign,
73
- BasicBlock,
74
- Branch,
75
- ComparisonOp,
76
- GetAttr,
77
- InitStatic,
78
- Integer,
79
- IntOp,
80
- LoadStatic,
81
- Op,
82
- RaiseStandardError,
83
- Register,
84
- SetAttr,
85
- TupleGet,
86
- Unreachable,
87
- Value,
88
- )
89
- from mypyc.ir.rtypes import (
90
- RInstance,
91
- RTuple,
92
- RType,
93
- RUnion,
94
- bitmap_rprimitive,
95
- c_pyssize_t_rprimitive,
96
- dict_rprimitive,
97
- int_rprimitive,
98
- is_float_rprimitive,
99
- is_list_rprimitive,
100
- is_none_rprimitive,
101
- is_object_rprimitive,
102
- is_tagged,
103
- is_tuple_rprimitive,
104
- none_rprimitive,
105
- object_rprimitive,
106
- str_rprimitive,
107
- )
108
- from mypyc.irbuild.context import FuncInfo, ImplicitClass
109
- from mypyc.irbuild.ll_builder import LowLevelIRBuilder
110
- from mypyc.irbuild.mapper import Mapper
111
- from mypyc.irbuild.nonlocalcontrol import (
112
- BaseNonlocalControl,
113
- GeneratorNonlocalControl,
114
- LoopNonlocalControl,
115
- NonlocalControl,
116
- )
117
- from mypyc.irbuild.prebuildvisitor import PreBuildVisitor
118
- from mypyc.irbuild.prepare import RegisterImplInfo
119
- from mypyc.irbuild.targets import (
120
- AssignmentTarget,
121
- AssignmentTargetAttr,
122
- AssignmentTargetIndex,
123
- AssignmentTargetRegister,
124
- AssignmentTargetTuple,
125
- )
126
- from mypyc.irbuild.util import bytes_from_str, is_constant
127
- from mypyc.options import CompilerOptions
128
- from mypyc.primitives.dict_ops import dict_get_item_op, dict_set_item_op
129
- from mypyc.primitives.generic_ops import iter_op, next_op, py_setattr_op
130
- from mypyc.primitives.list_ops import list_get_item_unsafe_op, list_pop_last, to_list
131
- from mypyc.primitives.misc_ops import check_unpack_count_op, get_module_dict_op, import_op
132
- from mypyc.primitives.registry import CFunctionDescription, function_ops
133
-
134
- # These int binary operations can borrow their operands safely, since the
135
- # primitives take this into consideration.
136
- int_borrow_friendly_op: Final = {"+", "-", "==", "!=", "<", "<=", ">", ">="}
137
-
138
-
139
- class IRVisitor(ExpressionVisitor[Value], StatementVisitor[None]):
140
- pass
141
-
142
-
143
- class UnsupportedException(Exception):
144
- pass
145
-
146
-
147
- SymbolTarget = Union[AssignmentTargetRegister, AssignmentTargetAttr]
148
-
149
-
150
- class IRBuilder:
151
- def __init__(
152
- self,
153
- current_module: str,
154
- types: dict[Expression, Type],
155
- graph: Graph,
156
- errors: Errors,
157
- mapper: Mapper,
158
- pbv: PreBuildVisitor,
159
- visitor: IRVisitor,
160
- options: CompilerOptions,
161
- singledispatch_impls: dict[FuncDef, list[RegisterImplInfo]],
162
- ) -> None:
163
- self.builder = LowLevelIRBuilder(errors, options)
164
- self.builders = [self.builder]
165
- self.symtables: list[dict[SymbolNode, SymbolTarget]] = [{}]
166
- self.runtime_args: list[list[RuntimeArg]] = [[]]
167
- self.function_name_stack: list[str] = []
168
- self.class_ir_stack: list[ClassIR] = []
169
- # Keep track of whether the next statement in a block is reachable
170
- # or not, separately for each block nesting level
171
- self.block_reachable_stack: list[bool] = [True]
172
-
173
- self.current_module = current_module
174
- self.mapper = mapper
175
- self.types = types
176
- self.graph = graph
177
- self.ret_types: list[RType] = []
178
- self.functions: list[FuncIR] = []
179
- self.function_names: set[tuple[str | None, str]] = set()
180
- self.classes: list[ClassIR] = []
181
- self.final_names: list[tuple[str, RType]] = []
182
- self.callable_class_names: set[str] = set()
183
- self.options = options
184
-
185
- # These variables keep track of the number of lambdas, implicit indices, and implicit
186
- # iterators instantiated so we avoid name conflicts. The indices and iterators are
187
- # instantiated from for-loops.
188
- self.lambda_counter = 0
189
- self.temp_counter = 0
190
-
191
- # These variables are populated from the first-pass PreBuildVisitor.
192
- self.free_variables = pbv.free_variables
193
- self.prop_setters = pbv.prop_setters
194
- self.encapsulating_funcs = pbv.encapsulating_funcs
195
- self.nested_fitems = pbv.nested_funcs.keys()
196
- self.fdefs_to_decorators = pbv.funcs_to_decorators
197
- self.module_import_groups = pbv.module_import_groups
198
-
199
- self.singledispatch_impls = singledispatch_impls
200
-
201
- self.visitor = visitor
202
-
203
- # This list operates similarly to a function call stack for nested functions. Whenever a
204
- # function definition begins to be generated, a FuncInfo instance is added to the stack,
205
- # and information about that function (e.g. whether it is nested, its environment class to
206
- # be generated) is stored in that FuncInfo instance. When the function is done being
207
- # generated, its corresponding FuncInfo is popped off the stack.
208
- self.fn_info = FuncInfo(INVALID_FUNC_DEF, "", "")
209
- self.fn_infos: list[FuncInfo] = [self.fn_info]
210
-
211
- # This list operates as a stack of constructs that modify the
212
- # behavior of nonlocal control flow constructs.
213
- self.nonlocal_control: list[NonlocalControl] = []
214
-
215
- self.errors = errors
216
- # Notionally a list of all of the modules imported by the
217
- # module being compiled, but stored as an OrderedDict so we
218
- # can also do quick lookups.
219
- self.imports: dict[str, None] = {}
220
-
221
- self.can_borrow = False
222
-
223
- # High-level control
224
-
225
- def set_module(self, module_name: str, module_path: str) -> None:
226
- """Set the name and path of the current module.
227
-
228
- This must be called before transforming any AST nodes.
229
- """
230
- self.module_name = module_name
231
- self.module_path = module_path
232
- self.builder.set_module(module_name, module_path)
233
-
234
- @overload
235
- def accept(self, node: Expression, *, can_borrow: bool = False) -> Value: ...
236
-
237
- @overload
238
- def accept(self, node: Statement) -> None: ...
239
-
240
- def accept(self, node: Statement | Expression, *, can_borrow: bool = False) -> Value | None:
241
- """Transform an expression or a statement.
242
-
243
- If can_borrow is true, prefer to generate a borrowed reference.
244
- Borrowed references are faster since they don't require reference count
245
- manipulation, but they are only safe to use in specific contexts.
246
- """
247
- with self.catch_errors(node.line):
248
- if isinstance(node, Expression):
249
- old_can_borrow = self.can_borrow
250
- self.can_borrow = can_borrow
251
- try:
252
- res = node.accept(self.visitor)
253
- res = self.coerce(res, self.node_type(node), node.line)
254
- # If we hit an error during compilation, we want to
255
- # keep trying, so we can produce more error
256
- # messages. Generate a temp of the right type to keep
257
- # from causing more downstream trouble.
258
- except UnsupportedException:
259
- res = Register(self.node_type(node))
260
- self.can_borrow = old_can_borrow
261
- if not can_borrow:
262
- self.flush_keep_alives()
263
- return res
264
- else:
265
- try:
266
- node.accept(self.visitor)
267
- except UnsupportedException:
268
- pass
269
- return None
270
-
271
- def flush_keep_alives(self) -> None:
272
- self.builder.flush_keep_alives()
273
-
274
- # Pass through methods for the most common low-level builder ops, for convenience.
275
-
276
- def add(self, op: Op) -> Value:
277
- return self.builder.add(op)
278
-
279
- def goto(self, target: BasicBlock) -> None:
280
- self.builder.goto(target)
281
-
282
- def activate_block(self, block: BasicBlock) -> None:
283
- self.builder.activate_block(block)
284
-
285
- def goto_and_activate(self, block: BasicBlock) -> None:
286
- self.builder.goto_and_activate(block)
287
-
288
- def self(self) -> Register:
289
- return self.builder.self()
290
-
291
- def py_get_attr(self, obj: Value, attr: str, line: int) -> Value:
292
- return self.builder.py_get_attr(obj, attr, line)
293
-
294
- def load_str(self, value: str) -> Value:
295
- return self.builder.load_str(value)
296
-
297
- def load_bytes_from_str_literal(self, value: str) -> Value:
298
- """Load bytes object from a string literal.
299
-
300
- The literal characters of BytesExpr (the characters inside b'')
301
- are stored in BytesExpr.value, whose type is 'str' not 'bytes'.
302
- Thus we perform a special conversion here.
303
- """
304
- return self.builder.load_bytes(bytes_from_str(value))
305
-
306
- def load_int(self, value: int) -> Value:
307
- return self.builder.load_int(value)
308
-
309
- def load_float(self, value: float) -> Value:
310
- return self.builder.load_float(value)
311
-
312
- def unary_op(self, lreg: Value, expr_op: str, line: int) -> Value:
313
- return self.builder.unary_op(lreg, expr_op, line)
314
-
315
- def binary_op(self, lreg: Value, rreg: Value, expr_op: str, line: int) -> Value:
316
- return self.builder.binary_op(lreg, rreg, expr_op, line)
317
-
318
- def coerce(self, src: Value, target_type: RType, line: int, force: bool = False) -> Value:
319
- return self.builder.coerce(src, target_type, line, force, can_borrow=self.can_borrow)
320
-
321
- def none_object(self) -> Value:
322
- return self.builder.none_object()
323
-
324
- def none(self) -> Value:
325
- return self.builder.none()
326
-
327
- def true(self) -> Value:
328
- return self.builder.true()
329
-
330
- def false(self) -> Value:
331
- return self.builder.false()
332
-
333
- def new_list_op(self, values: list[Value], line: int) -> Value:
334
- return self.builder.new_list_op(values, line)
335
-
336
- def new_set_op(self, values: list[Value], line: int) -> Value:
337
- return self.builder.new_set_op(values, line)
338
-
339
- def translate_is_op(self, lreg: Value, rreg: Value, expr_op: str, line: int) -> Value:
340
- return self.builder.translate_is_op(lreg, rreg, expr_op, line)
341
-
342
- def py_call(
343
- self,
344
- function: Value,
345
- arg_values: list[Value],
346
- line: int,
347
- arg_kinds: list[ArgKind] | None = None,
348
- arg_names: Sequence[str | None] | None = None,
349
- ) -> Value:
350
- return self.builder.py_call(function, arg_values, line, arg_kinds, arg_names)
351
-
352
- def add_bool_branch(self, value: Value, true: BasicBlock, false: BasicBlock) -> None:
353
- self.builder.add_bool_branch(value, true, false)
354
-
355
- def load_native_type_object(self, fullname: str) -> Value:
356
- return self.builder.load_native_type_object(fullname)
357
-
358
- def gen_method_call(
359
- self,
360
- base: Value,
361
- name: str,
362
- arg_values: list[Value],
363
- result_type: RType | None,
364
- line: int,
365
- arg_kinds: list[ArgKind] | None = None,
366
- arg_names: list[str | None] | None = None,
367
- ) -> Value:
368
- return self.builder.gen_method_call(
369
- base, name, arg_values, result_type, line, arg_kinds, arg_names, self.can_borrow
370
- )
371
-
372
- def load_module(self, name: str) -> Value:
373
- return self.builder.load_module(name)
374
-
375
- def call_c(self, desc: CFunctionDescription, args: list[Value], line: int) -> Value:
376
- return self.builder.call_c(desc, args, line)
377
-
378
- def int_op(self, type: RType, lhs: Value, rhs: Value, op: int, line: int) -> Value:
379
- return self.builder.int_op(type, lhs, rhs, op, line)
380
-
381
- def compare_tuples(self, lhs: Value, rhs: Value, op: str, line: int) -> Value:
382
- return self.builder.compare_tuples(lhs, rhs, op, line)
383
-
384
- def builtin_len(self, val: Value, line: int) -> Value:
385
- return self.builder.builtin_len(val, line)
386
-
387
- def new_tuple(self, items: list[Value], line: int) -> Value:
388
- return self.builder.new_tuple(items, line)
389
-
390
- # Helpers for IR building
391
-
392
- def add_to_non_ext_dict(
393
- self, non_ext: NonExtClassInfo, key: str, val: Value, line: int
394
- ) -> None:
395
- # Add an attribute entry into the class dict of a non-extension class.
396
- key_unicode = self.load_str(key)
397
- self.call_c(dict_set_item_op, [non_ext.dict, key_unicode, val], line)
398
-
399
- def gen_import(self, id: str, line: int) -> None:
400
- self.imports[id] = None
401
-
402
- needs_import, out = BasicBlock(), BasicBlock()
403
- self.check_if_module_loaded(id, line, needs_import, out)
404
-
405
- self.activate_block(needs_import)
406
- value = self.call_c(import_op, [self.load_str(id)], line)
407
- self.add(InitStatic(value, id, namespace=NAMESPACE_MODULE))
408
- self.goto_and_activate(out)
409
-
410
- def check_if_module_loaded(
411
- self, id: str, line: int, needs_import: BasicBlock, out: BasicBlock
412
- ) -> None:
413
- """Generate code that checks if the module `id` has been loaded yet.
414
-
415
- Arguments:
416
- id: name of module to check if imported
417
- line: line number that the import occurs on
418
- needs_import: the BasicBlock that is run if the module has not been loaded yet
419
- out: the BasicBlock that is run if the module has already been loaded"""
420
- first_load = self.load_module(id)
421
- comparison = self.translate_is_op(first_load, self.none_object(), "is not", line)
422
- self.add_bool_branch(comparison, out, needs_import)
423
-
424
- def get_module(self, module: str, line: int) -> Value:
425
- # Python 3.7 has a nice 'PyImport_GetModule' function that we can't use :(
426
- mod_dict = self.call_c(get_module_dict_op, [], line)
427
- # Get module object from modules dict.
428
- return self.call_c(dict_get_item_op, [mod_dict, self.load_str(module)], line)
429
-
430
- def get_module_attr(self, module: str, attr: str, line: int) -> Value:
431
- """Look up an attribute of a module without storing it in the local namespace.
432
-
433
- For example, get_module_attr('typing', 'TypedDict', line) results in
434
- the value of 'typing.TypedDict'.
435
-
436
- Import the module if needed.
437
- """
438
- self.gen_import(module, line)
439
- module_obj = self.get_module(module, line)
440
- return self.py_get_attr(module_obj, attr, line)
441
-
442
- def assign_if_null(self, target: Register, get_val: Callable[[], Value], line: int) -> None:
443
- """If target is NULL, assign value produced by get_val to it."""
444
- error_block, body_block = BasicBlock(), BasicBlock()
445
- self.add(Branch(target, error_block, body_block, Branch.IS_ERROR))
446
- self.activate_block(error_block)
447
- self.add(Assign(target, self.coerce(get_val(), target.type, line)))
448
- self.goto(body_block)
449
- self.activate_block(body_block)
450
-
451
- def assign_if_bitmap_unset(
452
- self, target: Register, get_val: Callable[[], Value], index: int, line: int
453
- ) -> None:
454
- error_block, body_block = BasicBlock(), BasicBlock()
455
- o = self.int_op(
456
- bitmap_rprimitive,
457
- self.builder.args[-1 - index // BITMAP_BITS],
458
- Integer(1 << (index & (BITMAP_BITS - 1)), bitmap_rprimitive),
459
- IntOp.AND,
460
- line,
461
- )
462
- b = self.add(ComparisonOp(o, Integer(0, bitmap_rprimitive), ComparisonOp.EQ))
463
- self.add(Branch(b, error_block, body_block, Branch.BOOL))
464
- self.activate_block(error_block)
465
- self.add(Assign(target, self.coerce(get_val(), target.type, line)))
466
- self.goto(body_block)
467
- self.activate_block(body_block)
468
-
469
- def maybe_add_implicit_return(self) -> None:
470
- if is_none_rprimitive(self.ret_types[-1]) or is_object_rprimitive(self.ret_types[-1]):
471
- self.add_implicit_return()
472
- else:
473
- self.add_implicit_unreachable()
474
-
475
- def add_implicit_return(self) -> None:
476
- block = self.builder.blocks[-1]
477
- if not block.terminated:
478
- retval = self.coerce(self.builder.none(), self.ret_types[-1], -1)
479
- self.nonlocal_control[-1].gen_return(self, retval, self.fn_info.fitem.line)
480
-
481
- def add_implicit_unreachable(self) -> None:
482
- block = self.builder.blocks[-1]
483
- if not block.terminated:
484
- self.add(Unreachable())
485
-
486
- def disallow_class_assignments(self, lvalues: list[Lvalue], line: int) -> None:
487
- # Some best-effort attempts to disallow assigning to class
488
- # variables that aren't marked ClassVar, since we blatantly
489
- # miscompile the interaction between instance and class
490
- # variables.
491
- for lvalue in lvalues:
492
- if (
493
- isinstance(lvalue, MemberExpr)
494
- and isinstance(lvalue.expr, RefExpr)
495
- and isinstance(lvalue.expr.node, TypeInfo)
496
- ):
497
- var = lvalue.expr.node[lvalue.name].node
498
- if isinstance(var, Var) and not var.is_classvar:
499
- self.error("Only class variables defined as ClassVar can be assigned to", line)
500
-
501
- def non_function_scope(self) -> bool:
502
- # Currently the stack always has at least two items: dummy and top-level.
503
- return len(self.fn_infos) <= 2
504
-
505
- def top_level_fn_info(self) -> FuncInfo | None:
506
- if self.non_function_scope():
507
- return None
508
- return self.fn_infos[2]
509
-
510
- def init_final_static(
511
- self,
512
- lvalue: Lvalue,
513
- rvalue_reg: Value,
514
- class_name: str | None = None,
515
- *,
516
- type_override: RType | None = None,
517
- ) -> None:
518
- assert isinstance(lvalue, NameExpr)
519
- assert isinstance(lvalue.node, Var)
520
- if lvalue.node.final_value is None:
521
- if class_name is None:
522
- name = lvalue.name
523
- else:
524
- name = f"{class_name}.{lvalue.name}"
525
- assert name is not None, "Full name not set for variable"
526
- coerced = self.coerce(rvalue_reg, type_override or self.node_type(lvalue), lvalue.line)
527
- self.final_names.append((name, coerced.type))
528
- self.add(InitStatic(coerced, name, self.module_name))
529
-
530
- def load_final_static(
531
- self, fullname: str, typ: RType, line: int, error_name: str | None = None
532
- ) -> Value:
533
- split_name = split_target(self.graph, fullname)
534
- assert split_name is not None
535
- module, name = split_name
536
- return self.builder.load_static_checked(
537
- typ,
538
- name,
539
- module,
540
- line=line,
541
- error_msg=f'value for final name "{error_name}" was not set',
542
- )
543
-
544
- def load_literal_value(self, val: int | str | bytes | float | complex | bool) -> Value:
545
- """Load value of a final name, class-level attribute, or constant folded expression."""
546
- if isinstance(val, bool):
547
- if val:
548
- return self.true()
549
- else:
550
- return self.false()
551
- elif isinstance(val, int):
552
- return self.builder.load_int(val)
553
- elif isinstance(val, float):
554
- return self.builder.load_float(val)
555
- elif isinstance(val, str):
556
- return self.builder.load_str(val)
557
- elif isinstance(val, bytes):
558
- return self.builder.load_bytes(val)
559
- elif isinstance(val, complex):
560
- return self.builder.load_complex(val)
561
- else:
562
- assert False, "Unsupported literal value"
563
-
564
- def get_assignment_target(
565
- self, lvalue: Lvalue, line: int = -1, *, for_read: bool = False
566
- ) -> AssignmentTarget:
567
- if line == -1:
568
- line = lvalue.line
569
- if isinstance(lvalue, NameExpr):
570
- # If we are visiting a decorator, then the SymbolNode we really want to be looking at
571
- # is the function that is decorated, not the entire Decorator node itself.
572
- symbol = lvalue.node
573
- if isinstance(symbol, Decorator):
574
- symbol = symbol.func
575
- if symbol is None:
576
- # New semantic analyzer doesn't create ad-hoc Vars for special forms.
577
- assert lvalue.is_special_form
578
- symbol = Var(lvalue.name)
579
- if not for_read and isinstance(symbol, Var) and symbol.is_cls:
580
- self.error("Cannot assign to the first argument of classmethod", line)
581
- if lvalue.kind == LDEF:
582
- if symbol not in self.symtables[-1]:
583
- if isinstance(symbol, Var) and not isinstance(symbol.type, DeletedType):
584
- reg_type = self.type_to_rtype(symbol.type)
585
- else:
586
- reg_type = self.node_type(lvalue)
587
- # If the function is a generator function, then first define a new variable
588
- # in the current function's environment class. Next, define a target that
589
- # refers to the newly defined variable in that environment class. Add the
590
- # target to the table containing class environment variables, as well as the
591
- # current environment.
592
- if self.fn_info.is_generator:
593
- return self.add_var_to_env_class(
594
- symbol, reg_type, self.fn_info.generator_class, reassign=False
595
- )
596
-
597
- # Otherwise define a new local variable.
598
- return self.add_local_reg(symbol, reg_type)
599
- else:
600
- # Assign to a previously defined variable.
601
- return self.lookup(symbol)
602
- elif lvalue.kind == GDEF:
603
- globals_dict = self.load_globals_dict()
604
- name = self.load_str(lvalue.name)
605
- return AssignmentTargetIndex(globals_dict, name)
606
- else:
607
- assert False, lvalue.kind
608
- elif isinstance(lvalue, IndexExpr):
609
- # Indexed assignment x[y] = e
610
- base = self.accept(lvalue.base)
611
- index = self.accept(lvalue.index)
612
- return AssignmentTargetIndex(base, index)
613
- elif isinstance(lvalue, MemberExpr):
614
- # Attribute assignment x.y = e
615
- can_borrow = self.is_native_attr_ref(lvalue)
616
- obj = self.accept(lvalue.expr, can_borrow=can_borrow)
617
- return AssignmentTargetAttr(obj, lvalue.name, can_borrow=can_borrow)
618
- elif isinstance(lvalue, TupleExpr):
619
- # Multiple assignment a, ..., b = e
620
- star_idx: int | None = None
621
- lvalues = []
622
- for idx, item in enumerate(lvalue.items):
623
- targ = self.get_assignment_target(item)
624
- lvalues.append(targ)
625
- if isinstance(item, StarExpr):
626
- if star_idx is not None:
627
- self.error("Two starred expressions in assignment", line)
628
- star_idx = idx
629
-
630
- return AssignmentTargetTuple(lvalues, star_idx)
631
-
632
- elif isinstance(lvalue, StarExpr):
633
- return self.get_assignment_target(lvalue.expr)
634
-
635
- assert False, "Unsupported lvalue: %r" % lvalue
636
-
637
- def read(
638
- self, target: Value | AssignmentTarget, line: int = -1, can_borrow: bool = False
639
- ) -> Value:
640
- if isinstance(target, Value):
641
- return target
642
- if isinstance(target, AssignmentTargetRegister):
643
- return target.register
644
- if isinstance(target, AssignmentTargetIndex):
645
- reg = self.gen_method_call(
646
- target.base, "__getitem__", [target.index], target.type, line
647
- )
648
- if reg is not None:
649
- return reg
650
- assert False, target.base.type
651
- if isinstance(target, AssignmentTargetAttr):
652
- if isinstance(target.obj.type, RInstance) and target.obj.type.class_ir.is_ext_class:
653
- borrow = can_borrow and target.can_borrow
654
- return self.add(GetAttr(target.obj, target.attr, line, borrow=borrow))
655
- else:
656
- return self.py_get_attr(target.obj, target.attr, line)
657
-
658
- assert False, "Unsupported lvalue: %r" % target
659
-
660
- def assign(self, target: Register | AssignmentTarget, rvalue_reg: Value, line: int) -> None:
661
- if isinstance(target, Register):
662
- self.add(Assign(target, self.coerce_rvalue(rvalue_reg, target.type, line)))
663
- elif isinstance(target, AssignmentTargetRegister):
664
- rvalue_reg = self.coerce_rvalue(rvalue_reg, target.type, line)
665
- self.add(Assign(target.register, rvalue_reg))
666
- elif isinstance(target, AssignmentTargetAttr):
667
- if isinstance(target.obj_type, RInstance):
668
- rvalue_reg = self.coerce_rvalue(rvalue_reg, target.type, line)
669
- self.add(SetAttr(target.obj, target.attr, rvalue_reg, line))
670
- else:
671
- key = self.load_str(target.attr)
672
- boxed_reg = self.builder.box(rvalue_reg)
673
- self.call_c(py_setattr_op, [target.obj, key, boxed_reg], line)
674
- elif isinstance(target, AssignmentTargetIndex):
675
- target_reg2 = self.gen_method_call(
676
- target.base, "__setitem__", [target.index, rvalue_reg], None, line
677
- )
678
- assert target_reg2 is not None, target.base.type
679
- elif isinstance(target, AssignmentTargetTuple):
680
- if isinstance(rvalue_reg.type, RTuple) and target.star_idx is None:
681
- rtypes = rvalue_reg.type.types
682
- assert len(rtypes) == len(target.items)
683
- for i in range(len(rtypes)):
684
- item_value = self.add(TupleGet(rvalue_reg, i, line))
685
- self.assign(target.items[i], item_value, line)
686
- elif (
687
- is_list_rprimitive(rvalue_reg.type) or is_tuple_rprimitive(rvalue_reg.type)
688
- ) and target.star_idx is None:
689
- self.process_sequence_assignment(target, rvalue_reg, line)
690
- else:
691
- self.process_iterator_tuple_assignment(target, rvalue_reg, line)
692
- else:
693
- assert False, "Unsupported assignment target"
694
-
695
- def coerce_rvalue(self, rvalue: Value, rtype: RType, line: int) -> Value:
696
- if is_float_rprimitive(rtype) and is_tagged(rvalue.type):
697
- typename = rvalue.type.short_name()
698
- if typename == "short_int":
699
- typename = "int"
700
- self.error(
701
- "Incompatible value representations in assignment "
702
- + f'(expression has type "{typename}", variable has type "float")',
703
- line,
704
- )
705
- return self.coerce(rvalue, rtype, line)
706
-
707
- def process_sequence_assignment(
708
- self, target: AssignmentTargetTuple, rvalue: Value, line: int
709
- ) -> None:
710
- """Process assignment like 'x, y = s', where s is a variable-length list or tuple."""
711
- # Check the length of sequence.
712
- expected_len = Integer(len(target.items), c_pyssize_t_rprimitive)
713
- self.builder.call_c(check_unpack_count_op, [rvalue, expected_len], line)
714
-
715
- # Read sequence items.
716
- values = []
717
- for i in range(len(target.items)):
718
- item = target.items[i]
719
- index = self.builder.load_int(i)
720
- if is_list_rprimitive(rvalue.type):
721
- item_value = self.call_c(list_get_item_unsafe_op, [rvalue, index], line)
722
- else:
723
- item_value = self.builder.gen_method_call(
724
- rvalue, "__getitem__", [index], item.type, line
725
- )
726
- values.append(item_value)
727
-
728
- # Assign sequence items to the target lvalues.
729
- for lvalue, value in zip(target.items, values):
730
- self.assign(lvalue, value, line)
731
-
732
- def process_iterator_tuple_assignment_helper(
733
- self, litem: AssignmentTarget, ritem: Value, line: int
734
- ) -> None:
735
- error_block, ok_block = BasicBlock(), BasicBlock()
736
- self.add(Branch(ritem, error_block, ok_block, Branch.IS_ERROR))
737
-
738
- self.activate_block(error_block)
739
- self.add(
740
- RaiseStandardError(RaiseStandardError.VALUE_ERROR, "not enough values to unpack", line)
741
- )
742
- self.add(Unreachable())
743
-
744
- self.activate_block(ok_block)
745
- self.assign(litem, ritem, line)
746
-
747
- def process_iterator_tuple_assignment(
748
- self, target: AssignmentTargetTuple, rvalue_reg: Value, line: int
749
- ) -> None:
750
- iterator = self.call_c(iter_op, [rvalue_reg], line)
751
-
752
- # This may be the whole lvalue list if there is no starred value
753
- split_idx = target.star_idx if target.star_idx is not None else len(target.items)
754
-
755
- # Assign values before the first starred value
756
- for litem in target.items[:split_idx]:
757
- ritem = self.call_c(next_op, [iterator], line)
758
- error_block, ok_block = BasicBlock(), BasicBlock()
759
- self.add(Branch(ritem, error_block, ok_block, Branch.IS_ERROR))
760
-
761
- self.activate_block(error_block)
762
- self.add(
763
- RaiseStandardError(
764
- RaiseStandardError.VALUE_ERROR, "not enough values to unpack", line
765
- )
766
- )
767
- self.add(Unreachable())
768
-
769
- self.activate_block(ok_block)
770
-
771
- self.assign(litem, ritem, line)
772
-
773
- # Assign the starred value and all values after it
774
- if target.star_idx is not None:
775
- post_star_vals = target.items[split_idx + 1 :]
776
- iter_list = self.call_c(to_list, [iterator], line)
777
- iter_list_len = self.builtin_len(iter_list, line)
778
- post_star_len = Integer(len(post_star_vals))
779
- condition = self.binary_op(post_star_len, iter_list_len, "<=", line)
780
-
781
- error_block, ok_block = BasicBlock(), BasicBlock()
782
- self.add(Branch(condition, ok_block, error_block, Branch.BOOL))
783
-
784
- self.activate_block(error_block)
785
- self.add(
786
- RaiseStandardError(
787
- RaiseStandardError.VALUE_ERROR, "not enough values to unpack", line
788
- )
789
- )
790
- self.add(Unreachable())
791
-
792
- self.activate_block(ok_block)
793
-
794
- for litem in reversed(post_star_vals):
795
- ritem = self.call_c(list_pop_last, [iter_list], line)
796
- self.assign(litem, ritem, line)
797
-
798
- # Assign the starred value
799
- self.assign(target.items[target.star_idx], iter_list, line)
800
-
801
- # There is no starred value, so check if there are extra values in rhs that
802
- # have not been assigned.
803
- else:
804
- extra = self.call_c(next_op, [iterator], line)
805
- error_block, ok_block = BasicBlock(), BasicBlock()
806
- self.add(Branch(extra, ok_block, error_block, Branch.IS_ERROR))
807
-
808
- self.activate_block(error_block)
809
- self.add(
810
- RaiseStandardError(
811
- RaiseStandardError.VALUE_ERROR, "too many values to unpack", line
812
- )
813
- )
814
- self.add(Unreachable())
815
-
816
- self.activate_block(ok_block)
817
-
818
- def push_loop_stack(self, continue_block: BasicBlock, break_block: BasicBlock) -> None:
819
- self.nonlocal_control.append(
820
- LoopNonlocalControl(self.nonlocal_control[-1], continue_block, break_block)
821
- )
822
-
823
- def pop_loop_stack(self) -> None:
824
- self.nonlocal_control.pop()
825
-
826
- def make_spill_target(self, type: RType) -> AssignmentTarget:
827
- """Moves a given Value instance into the generator class' environment class."""
828
- name = f"{TEMP_ATTR_NAME}{self.temp_counter}"
829
- self.temp_counter += 1
830
- target = self.add_var_to_env_class(Var(name), type, self.fn_info.generator_class)
831
- return target
832
-
833
- def spill(self, value: Value) -> AssignmentTarget:
834
- """Moves a given Value instance into the generator class' environment class."""
835
- target = self.make_spill_target(value.type)
836
- # Shouldn't be able to fail, so -1 for line
837
- self.assign(target, value, -1)
838
- return target
839
-
840
- def maybe_spill(self, value: Value) -> Value | AssignmentTarget:
841
- """
842
- Moves a given Value instance into the environment class for generator functions. For
843
- non-generator functions, leaves the Value instance as it is.
844
-
845
- Returns an AssignmentTarget associated with the Value for generator functions and the
846
- original Value itself for non-generator functions.
847
- """
848
- if self.fn_info.is_generator:
849
- return self.spill(value)
850
- return value
851
-
852
- def maybe_spill_assignable(self, value: Value) -> Register | AssignmentTarget:
853
- """
854
- Moves a given Value instance into the environment class for generator functions. For
855
- non-generator functions, allocate a temporary Register.
856
-
857
- Returns an AssignmentTarget associated with the Value for generator functions and an
858
- assignable Register for non-generator functions.
859
- """
860
- if self.fn_info.is_generator:
861
- return self.spill(value)
862
-
863
- if isinstance(value, Register):
864
- return value
865
-
866
- # Allocate a temporary register for the assignable value.
867
- reg = Register(value.type)
868
- self.assign(reg, value, -1)
869
- return reg
870
-
871
- def extract_int(self, e: Expression) -> int | None:
872
- if isinstance(e, IntExpr):
873
- return e.value
874
- elif isinstance(e, UnaryExpr) and e.op == "-" and isinstance(e.expr, IntExpr):
875
- return -e.expr.value
876
- else:
877
- return None
878
-
879
- def get_sequence_type(self, expr: Expression) -> RType:
880
- return self.get_sequence_type_from_type(self.types[expr])
881
-
882
- def get_sequence_type_from_type(self, target_type: Type) -> RType:
883
- target_type = get_proper_type(target_type)
884
- if isinstance(target_type, UnionType):
885
- return RUnion.make_simplified_union(
886
- [self.get_sequence_type_from_type(item) for item in target_type.items]
887
- )
888
- assert isinstance(target_type, Instance), target_type
889
- if target_type.type.fullname == "builtins.str":
890
- return str_rprimitive
891
- else:
892
- return self.type_to_rtype(target_type.args[0])
893
-
894
- def get_dict_base_type(self, expr: Expression) -> list[Instance]:
895
- """Find dict type of a dict-like expression.
896
-
897
- This is useful for dict subclasses like SymbolTable.
898
- """
899
- target_type = get_proper_type(self.types[expr])
900
- if isinstance(target_type, UnionType):
901
- types = [get_proper_type(item) for item in target_type.items]
902
- else:
903
- types = [target_type]
904
-
905
- dict_types = []
906
- for t in types:
907
- if isinstance(t, TypedDictType):
908
- t = t.fallback
909
- dict_base = next(base for base in t.type.mro if base.fullname == "typing.Mapping")
910
- else:
911
- assert isinstance(t, Instance), t
912
- dict_base = next(base for base in t.type.mro if base.fullname == "builtins.dict")
913
- dict_types.append(map_instance_to_supertype(t, dict_base))
914
- return dict_types
915
-
916
- def get_dict_key_type(self, expr: Expression) -> RType:
917
- dict_base_types = self.get_dict_base_type(expr)
918
- if len(dict_base_types) == 1:
919
- return self.type_to_rtype(dict_base_types[0].args[0])
920
- else:
921
- rtypes = [self.type_to_rtype(t.args[0]) for t in dict_base_types]
922
- return RUnion.make_simplified_union(rtypes)
923
-
924
- def get_dict_value_type(self, expr: Expression) -> RType:
925
- dict_base_types = self.get_dict_base_type(expr)
926
- if len(dict_base_types) == 1:
927
- return self.type_to_rtype(dict_base_types[0].args[1])
928
- else:
929
- rtypes = [self.type_to_rtype(t.args[1]) for t in dict_base_types]
930
- return RUnion.make_simplified_union(rtypes)
931
-
932
- def get_dict_item_type(self, expr: Expression) -> RType:
933
- key_type = self.get_dict_key_type(expr)
934
- value_type = self.get_dict_value_type(expr)
935
- return RTuple([key_type, value_type])
936
-
937
- def _analyze_iterable_item_type(self, expr: Expression) -> Type:
938
- """Return the item type given by 'expr' in an iterable context."""
939
- # This logic is copied from mypy's TypeChecker.analyze_iterable_item_type.
940
- if expr not in self.types:
941
- # Mypy thinks this is unreachable.
942
- iterable: ProperType = AnyType(TypeOfAny.from_error)
943
- else:
944
- iterable = get_proper_type(self.types[expr])
945
- echk = self.graph[self.module_name].type_checker().expr_checker
946
- iterator = echk.check_method_call_by_name("__iter__", iterable, [], [], expr)[0]
947
-
948
- from mypy.join import join_types
949
-
950
- if isinstance(iterable, TupleType):
951
- joined: Type = UninhabitedType()
952
- for item in iterable.items:
953
- joined = join_types(joined, item)
954
- return joined
955
- else:
956
- # Non-tuple iterable.
957
- return echk.check_method_call_by_name("__next__", iterator, [], [], expr)[0]
958
-
959
- def is_native_module(self, module: str) -> bool:
960
- """Is the given module one compiled by mypyc?"""
961
- return module in self.mapper.group_map
962
-
963
- def is_native_ref_expr(self, expr: RefExpr) -> bool:
964
- if expr.node is None:
965
- return False
966
- if "." in expr.node.fullname:
967
- return self.is_native_module(expr.node.fullname.rpartition(".")[0])
968
- return True
969
-
970
- def is_native_module_ref_expr(self, expr: RefExpr) -> bool:
971
- return self.is_native_ref_expr(expr) and expr.kind == GDEF
972
-
973
- def is_synthetic_type(self, typ: TypeInfo) -> bool:
974
- """Is a type something other than just a class we've created?"""
975
- return typ.is_named_tuple or typ.is_newtype or typ.typeddict_type is not None
976
-
977
- def get_final_ref(self, expr: MemberExpr) -> tuple[str, Var, bool] | None:
978
- """Check if `expr` is a final attribute.
979
-
980
- This needs to be done differently for class and module attributes to
981
- correctly determine fully qualified name. Return a tuple that consists of
982
- the qualified name, the corresponding Var node, and a flag indicating whether
983
- the final name was defined in a compiled module. Return None if `expr` does not
984
- refer to a final attribute.
985
- """
986
- final_var = None
987
- if isinstance(expr.expr, RefExpr) and isinstance(expr.expr.node, TypeInfo):
988
- # a class attribute
989
- sym = expr.expr.node.get(expr.name)
990
- if sym and isinstance(sym.node, Var):
991
- # Enum attribute are treated as final since they are added to the global cache
992
- expr_fullname = expr.expr.node.bases[0].type.fullname
993
- is_final = sym.node.is_final or expr_fullname == "enum.Enum"
994
- if is_final:
995
- final_var = sym.node
996
- fullname = f"{sym.node.info.fullname}.{final_var.name}"
997
- native = self.is_native_module(expr.expr.node.module_name)
998
- elif self.is_module_member_expr(expr):
999
- # a module attribute
1000
- if isinstance(expr.node, Var) and expr.node.is_final:
1001
- final_var = expr.node
1002
- fullname = expr.node.fullname
1003
- native = self.is_native_ref_expr(expr)
1004
- if final_var is not None:
1005
- return fullname, final_var, native
1006
- return None
1007
-
1008
- def emit_load_final(
1009
- self, final_var: Var, fullname: str, name: str, native: bool, typ: Type, line: int
1010
- ) -> Value | None:
1011
- """Emit code for loading value of a final name (if possible).
1012
-
1013
- Args:
1014
- final_var: Var corresponding to the final name
1015
- fullname: its qualified name
1016
- name: shorter name to show in errors
1017
- native: whether the name was defined in a compiled module
1018
- typ: its type
1019
- line: line number where loading occurs
1020
- """
1021
- if final_var.final_value is not None: # this is safe even for non-native names
1022
- return self.load_literal_value(final_var.final_value)
1023
- elif native and module_prefix(self.graph, fullname):
1024
- return self.load_final_static(fullname, self.mapper.type_to_rtype(typ), line, name)
1025
- else:
1026
- return None
1027
-
1028
- def is_module_member_expr(self, expr: MemberExpr) -> bool:
1029
- return isinstance(expr.expr, RefExpr) and isinstance(expr.expr.node, MypyFile)
1030
-
1031
- def call_refexpr_with_args(
1032
- self, expr: CallExpr, callee: RefExpr, arg_values: list[Value]
1033
- ) -> Value:
1034
- # Handle data-driven special-cased primitive call ops.
1035
- if callee.fullname and expr.arg_kinds == [ARG_POS] * len(arg_values):
1036
- fullname = get_call_target_fullname(callee)
1037
- call_c_ops_candidates = function_ops.get(fullname, [])
1038
- target = self.builder.matching_call_c(
1039
- call_c_ops_candidates, arg_values, expr.line, self.node_type(expr)
1040
- )
1041
- if target:
1042
- return target
1043
-
1044
- # Standard native call if signature and fullname are good and all arguments are positional
1045
- # or named.
1046
- callee_node = callee.node
1047
- if isinstance(callee_node, OverloadedFuncDef):
1048
- callee_node = callee_node.impl
1049
- # TODO: use native calls for any decorated functions which have all their decorators
1050
- # removed, not just singledispatch functions (which we don't do now just in case those
1051
- # decorated functions are callable classes or cannot be called without the python API for
1052
- # some other reason)
1053
- if (
1054
- isinstance(callee_node, Decorator)
1055
- and callee_node.func not in self.fdefs_to_decorators
1056
- and callee_node.func in self.singledispatch_impls
1057
- ):
1058
- callee_node = callee_node.func
1059
- if (
1060
- callee_node is not None
1061
- and callee.fullname
1062
- and callee_node in self.mapper.func_to_decl
1063
- and all(kind in (ARG_POS, ARG_NAMED) for kind in expr.arg_kinds)
1064
- ):
1065
- decl = self.mapper.func_to_decl[callee_node]
1066
- return self.builder.call(decl, arg_values, expr.arg_kinds, expr.arg_names, expr.line)
1067
-
1068
- # Fall back to a Python call
1069
- function = self.accept(callee)
1070
- return self.py_call(
1071
- function, arg_values, expr.line, arg_kinds=expr.arg_kinds, arg_names=expr.arg_names
1072
- )
1073
-
1074
- def shortcircuit_expr(self, expr: OpExpr) -> Value:
1075
- return self.builder.shortcircuit_helper(
1076
- expr.op,
1077
- self.node_type(expr),
1078
- lambda: self.accept(expr.left),
1079
- lambda: self.accept(expr.right),
1080
- expr.line,
1081
- )
1082
-
1083
- # Basic helpers
1084
-
1085
- def flatten_classes(self, arg: RefExpr | TupleExpr) -> list[ClassIR] | None:
1086
- """Flatten classes in isinstance(obj, (A, (B, C))).
1087
-
1088
- If at least one item is not a reference to a native class, return None.
1089
- """
1090
- if isinstance(arg, RefExpr):
1091
- if isinstance(arg.node, TypeInfo) and self.is_native_module_ref_expr(arg):
1092
- ir = self.mapper.type_to_ir.get(arg.node)
1093
- if ir:
1094
- return [ir]
1095
- return None
1096
- else:
1097
- res: list[ClassIR] = []
1098
- for item in arg.items:
1099
- if isinstance(item, (RefExpr, TupleExpr)):
1100
- item_part = self.flatten_classes(item)
1101
- if item_part is None:
1102
- return None
1103
- res.extend(item_part)
1104
- else:
1105
- return None
1106
- return res
1107
-
1108
- def enter(self, fn_info: FuncInfo | str = "") -> None:
1109
- if isinstance(fn_info, str):
1110
- fn_info = FuncInfo(name=fn_info)
1111
- self.builder = LowLevelIRBuilder(self.errors, self.options)
1112
- self.builder.set_module(self.module_name, self.module_path)
1113
- self.builders.append(self.builder)
1114
- self.symtables.append({})
1115
- self.runtime_args.append([])
1116
- self.fn_info = fn_info
1117
- self.fn_infos.append(self.fn_info)
1118
- self.ret_types.append(none_rprimitive)
1119
- if fn_info.is_generator:
1120
- self.nonlocal_control.append(GeneratorNonlocalControl())
1121
- else:
1122
- self.nonlocal_control.append(BaseNonlocalControl())
1123
- self.activate_block(BasicBlock())
1124
-
1125
- def leave(self) -> tuple[list[Register], list[RuntimeArg], list[BasicBlock], RType, FuncInfo]:
1126
- builder = self.builders.pop()
1127
- self.symtables.pop()
1128
- runtime_args = self.runtime_args.pop()
1129
- ret_type = self.ret_types.pop()
1130
- fn_info = self.fn_infos.pop()
1131
- self.nonlocal_control.pop()
1132
- self.builder = self.builders[-1]
1133
- self.fn_info = self.fn_infos[-1]
1134
- return builder.args, runtime_args, builder.blocks, ret_type, fn_info
1135
-
1136
- @contextmanager
1137
- def enter_method(
1138
- self,
1139
- class_ir: ClassIR,
1140
- name: str,
1141
- ret_type: RType,
1142
- fn_info: FuncInfo | str = "",
1143
- self_type: RType | None = None,
1144
- ) -> Iterator[None]:
1145
- """Generate IR for a method.
1146
-
1147
- If the method takes arguments, you should immediately afterwards call
1148
- add_argument() for each non-self argument (self is created implicitly).
1149
-
1150
- Args:
1151
- class_ir: Add method to this class
1152
- name: Short name of the method
1153
- ret_type: Return type of the method
1154
- fn_info: Optionally, additional information about the method
1155
- self_type: If not None, override default type of the implicit 'self'
1156
- argument (by default, derive type from class_ir)
1157
- """
1158
- self.enter(fn_info)
1159
- self.function_name_stack.append(name)
1160
- self.class_ir_stack.append(class_ir)
1161
- self.ret_types[-1] = ret_type
1162
- if self_type is None:
1163
- self_type = RInstance(class_ir)
1164
- self.add_argument(SELF_NAME, self_type)
1165
- try:
1166
- yield
1167
- finally:
1168
- arg_regs, args, blocks, ret_type, fn_info = self.leave()
1169
- sig = FuncSignature(args, ret_type)
1170
- name = self.function_name_stack.pop()
1171
- class_ir = self.class_ir_stack.pop()
1172
- decl = FuncDecl(name, class_ir.name, self.module_name, sig)
1173
- ir = FuncIR(decl, arg_regs, blocks)
1174
- class_ir.methods[name] = ir
1175
- class_ir.method_decls[name] = ir.decl
1176
- self.functions.append(ir)
1177
-
1178
- def add_argument(self, var: str | Var, typ: RType, kind: ArgKind = ARG_POS) -> Register:
1179
- """Declare an argument in the current function.
1180
-
1181
- You should use this instead of directly calling add_local() in new code.
1182
- """
1183
- if isinstance(var, str):
1184
- var = Var(var)
1185
- reg = self.add_local(var, typ, is_arg=True)
1186
- self.runtime_args[-1].append(RuntimeArg(var.name, typ, kind))
1187
- return reg
1188
-
1189
- def lookup(self, symbol: SymbolNode) -> SymbolTarget:
1190
- return self.symtables[-1][symbol]
1191
-
1192
- def add_local(self, symbol: SymbolNode, typ: RType, is_arg: bool = False) -> Register:
1193
- """Add register that represents a symbol to the symbol table.
1194
-
1195
- Args:
1196
- is_arg: is this a function argument
1197
- """
1198
- assert isinstance(symbol, SymbolNode)
1199
- reg = Register(
1200
- typ, remangle_redefinition_name(symbol.name), is_arg=is_arg, line=symbol.line
1201
- )
1202
- self.symtables[-1][symbol] = AssignmentTargetRegister(reg)
1203
- if is_arg:
1204
- self.builder.args.append(reg)
1205
- return reg
1206
-
1207
- def add_local_reg(
1208
- self, symbol: SymbolNode, typ: RType, is_arg: bool = False
1209
- ) -> AssignmentTargetRegister:
1210
- """Like add_local, but return an assignment target instead of value."""
1211
- self.add_local(symbol, typ, is_arg)
1212
- target = self.symtables[-1][symbol]
1213
- assert isinstance(target, AssignmentTargetRegister)
1214
- return target
1215
-
1216
- def add_self_to_env(self, cls: ClassIR) -> AssignmentTargetRegister:
1217
- """Low-level function that adds a 'self' argument.
1218
-
1219
- This is only useful if using enter() instead of enter_method().
1220
- """
1221
- return self.add_local_reg(Var(SELF_NAME), RInstance(cls), is_arg=True)
1222
-
1223
- def add_target(self, symbol: SymbolNode, target: SymbolTarget) -> SymbolTarget:
1224
- self.symtables[-1][symbol] = target
1225
- return target
1226
-
1227
- def type_to_rtype(self, typ: Type | None) -> RType:
1228
- return self.mapper.type_to_rtype(typ)
1229
-
1230
- def node_type(self, node: Expression) -> RType:
1231
- if isinstance(node, IntExpr):
1232
- # TODO: Don't special case IntExpr
1233
- return int_rprimitive
1234
- if node not in self.types:
1235
- return object_rprimitive
1236
- mypy_type = self.types[node]
1237
- return self.type_to_rtype(mypy_type)
1238
-
1239
- def add_var_to_env_class(
1240
- self, var: SymbolNode, rtype: RType, base: FuncInfo | ImplicitClass, reassign: bool = False
1241
- ) -> AssignmentTarget:
1242
- # First, define the variable name as an attribute of the environment class, and then
1243
- # construct a target for that attribute.
1244
- name = remangle_redefinition_name(var.name)
1245
- self.fn_info.env_class.attributes[name] = rtype
1246
- attr_target = AssignmentTargetAttr(base.curr_env_reg, name)
1247
-
1248
- if reassign:
1249
- # Read the local definition of the variable, and set the corresponding attribute of
1250
- # the environment class' variable to be that value.
1251
- reg = self.read(self.lookup(var), self.fn_info.fitem.line)
1252
- self.add(SetAttr(base.curr_env_reg, name, reg, self.fn_info.fitem.line))
1253
-
1254
- # Override the local definition of the variable to instead point at the variable in
1255
- # the environment class.
1256
- return self.add_target(var, attr_target)
1257
-
1258
- def is_builtin_ref_expr(self, expr: RefExpr) -> bool:
1259
- assert expr.node, "RefExpr not resolved"
1260
- return "." in expr.node.fullname and expr.node.fullname.split(".")[0] == "builtins"
1261
-
1262
- def load_global(self, expr: NameExpr) -> Value:
1263
- """Loads a Python-level global.
1264
-
1265
- This takes a NameExpr and uses its name as a key to retrieve the corresponding PyObject *
1266
- from the _globals dictionary in the C-generated code.
1267
- """
1268
- # If the global is from 'builtins', turn it into a module attr load instead
1269
- if self.is_builtin_ref_expr(expr):
1270
- assert expr.node, "RefExpr not resolved"
1271
- return self.load_module_attr_by_fullname(expr.node.fullname, expr.line)
1272
- if (
1273
- self.is_native_module_ref_expr(expr)
1274
- and isinstance(expr.node, TypeInfo)
1275
- and not self.is_synthetic_type(expr.node)
1276
- ):
1277
- assert expr.fullname
1278
- return self.load_native_type_object(expr.fullname)
1279
- return self.load_global_str(expr.name, expr.line)
1280
-
1281
- def load_global_str(self, name: str, line: int) -> Value:
1282
- _globals = self.load_globals_dict()
1283
- reg = self.load_str(name)
1284
- return self.call_c(dict_get_item_op, [_globals, reg], line)
1285
-
1286
- def load_globals_dict(self) -> Value:
1287
- return self.add(LoadStatic(dict_rprimitive, "globals", self.module_name))
1288
-
1289
- def load_module_attr_by_fullname(self, fullname: str, line: int) -> Value:
1290
- module, _, name = fullname.rpartition(".")
1291
- left = self.load_module(module)
1292
- return self.py_get_attr(left, name, line)
1293
-
1294
- def is_native_attr_ref(self, expr: MemberExpr) -> bool:
1295
- """Is expr a direct reference to a native (struct) attribute of an instance?"""
1296
- obj_rtype = self.node_type(expr.expr)
1297
- return (
1298
- isinstance(obj_rtype, RInstance)
1299
- and obj_rtype.class_ir.is_ext_class
1300
- and obj_rtype.class_ir.has_attr(expr.name)
1301
- and not obj_rtype.class_ir.get_method(expr.name)
1302
- )
1303
-
1304
- def mark_block_unreachable(self) -> None:
1305
- """Mark statements in the innermost block being processed as unreachable.
1306
-
1307
- This should be called after a statement that unconditionally leaves the
1308
- block, such as 'break' or 'return'.
1309
- """
1310
- self.block_reachable_stack[-1] = False
1311
-
1312
- # Lacks a good type because there wasn't a reasonable type in 3.5 :(
1313
- def catch_errors(self, line: int) -> Any:
1314
- return catch_errors(self.module_path, line)
1315
-
1316
- def warning(self, msg: str, line: int) -> None:
1317
- self.errors.warning(msg, self.module_path, line)
1318
-
1319
- def error(self, msg: str, line: int) -> None:
1320
- self.errors.error(msg, self.module_path, line)
1321
-
1322
- def note(self, msg: str, line: int) -> None:
1323
- self.errors.note(msg, self.module_path, line)
1324
-
1325
- def add_function(self, func_ir: FuncIR, line: int) -> None:
1326
- name = (func_ir.class_name, func_ir.name)
1327
- if name in self.function_names:
1328
- self.error(f'Duplicate definition of "{name[1]}" not supported by mypyc', line)
1329
- return
1330
- self.function_names.add(name)
1331
- self.functions.append(func_ir)
1332
-
1333
-
1334
- def gen_arg_defaults(builder: IRBuilder) -> None:
1335
- """Generate blocks for arguments that have default values.
1336
-
1337
- If the passed value is an error value, then assign the default
1338
- value to the argument.
1339
- """
1340
- fitem = builder.fn_info.fitem
1341
- nb = 0
1342
- for arg in fitem.arguments:
1343
- if arg.initializer:
1344
- target = builder.lookup(arg.variable)
1345
-
1346
- def get_default() -> Value:
1347
- assert arg.initializer is not None
1348
-
1349
- # If it is constant, don't bother storing it
1350
- if is_constant(arg.initializer):
1351
- return builder.accept(arg.initializer)
1352
-
1353
- # Because gen_arg_defaults runs before calculate_arg_defaults, we
1354
- # add the static/attribute to final_names/the class here.
1355
- elif not builder.fn_info.is_nested:
1356
- name = fitem.fullname + "." + arg.variable.name
1357
- builder.final_names.append((name, target.type))
1358
- return builder.add(LoadStatic(target.type, name, builder.module_name))
1359
- else:
1360
- name = arg.variable.name
1361
- builder.fn_info.callable_class.ir.attributes[name] = target.type
1362
- return builder.add(
1363
- GetAttr(builder.fn_info.callable_class.self_reg, name, arg.line)
1364
- )
1365
-
1366
- assert isinstance(target, AssignmentTargetRegister)
1367
- reg = target.register
1368
- if not reg.type.error_overlap:
1369
- builder.assign_if_null(target.register, get_default, arg.initializer.line)
1370
- else:
1371
- builder.assign_if_bitmap_unset(
1372
- target.register, get_default, nb, arg.initializer.line
1373
- )
1374
- nb += 1
1375
-
1376
-
1377
- def remangle_redefinition_name(name: str) -> str:
1378
- """Remangle names produced by mypy when allow-redefinition is used and a name
1379
- is used with multiple types within a single block.
1380
-
1381
- We only need to do this for locals, because the name is used as the name of the register;
1382
- for globals, the name itself is stored in a register for the purpose of doing dict
1383
- lookups.
1384
- """
1385
- return name.replace("'", "__redef__")
1386
-
1387
-
1388
- def get_call_target_fullname(ref: RefExpr) -> str:
1389
- if isinstance(ref.node, TypeAlias):
1390
- # Resolve simple type aliases. In calls they evaluate to the type they point to.
1391
- target = get_proper_type(ref.node.target)
1392
- if isinstance(target, Instance):
1393
- return target.type.fullname
1394
- return ref.fullname