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