jaclang 0.7.33__py3-none-any.whl → 0.8.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (1481) hide show
  1. jaclang/__init__.py +7 -414
  2. jaclang/cli/cli.md +5 -5
  3. jaclang/cli/cli.py +311 -214
  4. jaclang/cli/cmdreg.py +188 -31
  5. jaclang/compiler/__init__.py +10 -15
  6. jaclang/compiler/{codeloc.py → codeinfo.py} +11 -30
  7. jaclang/compiler/constant.py +10 -33
  8. jaclang/compiler/jac.lark +61 -92
  9. jaclang/compiler/larkparse/jac_parser.py +3444 -0
  10. jaclang/compiler/parser.py +1054 -1341
  11. jaclang/compiler/passes/__init__.py +2 -2
  12. jaclang/compiler/passes/main/__init__.py +33 -14
  13. jaclang/compiler/passes/main/annex_pass.py +85 -0
  14. jaclang/compiler/passes/main/cfg_build_pass.py +275 -0
  15. jaclang/compiler/passes/main/def_impl_match_pass.py +146 -102
  16. jaclang/compiler/passes/main/def_use_pass.py +64 -269
  17. jaclang/compiler/passes/main/import_pass.py +175 -360
  18. jaclang/compiler/passes/main/inheritance_pass.py +107 -105
  19. jaclang/compiler/passes/main/pyast_gen_pass.py +1129 -1600
  20. jaclang/compiler/passes/main/pyast_load_pass.py +540 -584
  21. jaclang/compiler/passes/main/pybc_gen_pass.py +38 -35
  22. jaclang/compiler/passes/main/pyjac_ast_link_pass.py +46 -160
  23. jaclang/compiler/passes/main/sym_tab_build_pass.py +113 -1202
  24. jaclang/compiler/passes/main/sym_tab_link_pass.py +141 -0
  25. jaclang/{tests → compiler/passes/main/tests}/fixtures/access_modifier.jac +10 -9
  26. jaclang/compiler/passes/main/tests/fixtures/atest.impl.jac +3 -0
  27. jaclang/compiler/passes/main/tests/fixtures/atest.jac +11 -0
  28. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac +1 -1
  29. jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl.jac +1 -1
  30. jaclang/compiler/passes/main/tests/fixtures/autoimpl.jac +3 -3
  31. jaclang/compiler/passes/main/tests/fixtures/autoimpl.something.else.impl.jac +1 -1
  32. jaclang/compiler/passes/main/tests/fixtures/base.impl.jac +8 -0
  33. jaclang/compiler/passes/main/tests/fixtures/base.jac +4 -4
  34. jaclang/compiler/passes/main/tests/fixtures/base2.impl.jac +8 -0
  35. jaclang/compiler/passes/main/tests/fixtures/base2.jac +4 -4
  36. jaclang/compiler/passes/main/tests/fixtures/blip.jac +1 -1
  37. jaclang/compiler/passes/main/tests/fixtures/cfg_ability_test.jac +23 -0
  38. jaclang/compiler/passes/main/tests/fixtures/cfg_gen.jac +19 -0
  39. jaclang/compiler/passes/main/tests/fixtures/circular_import.jac +7 -0
  40. jaclang/compiler/passes/main/tests/fixtures/data_spatial_types.jac +12 -12
  41. jaclang/compiler/passes/main/tests/fixtures/decls.jac +4 -4
  42. jaclang/compiler/passes/main/tests/fixtures/defn_decl_mismatch.jac +4 -4
  43. jaclang/compiler/passes/main/tests/fixtures/defs_and_uses.jac +6 -6
  44. jaclang/compiler/passes/main/tests/fixtures/enumerations.jac +13 -0
  45. jaclang/compiler/passes/main/tests/fixtures/fstrings.jac +1 -1
  46. jaclang/compiler/passes/main/tests/fixtures/func.jac +2 -2
  47. jaclang/compiler/passes/main/tests/fixtures/func2.jac +1 -1
  48. jaclang/compiler/passes/main/tests/fixtures/game1.jac +4 -4
  49. jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac +2 -2
  50. jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac +2 -2
  51. jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac +0 -8
  52. jaclang/compiler/passes/main/tests/fixtures/impl_grab.impl.jac +5 -0
  53. jaclang/{tests → compiler/passes/main/tests}/fixtures/impl_grab.jac +1 -1
  54. jaclang/compiler/passes/main/tests/fixtures/incautoimpl.jac +1 -1
  55. jaclang/compiler/passes/main/tests/fixtures/main_err.impl.jac +6 -0
  56. jaclang/compiler/passes/main/tests/fixtures/main_err.jac +6 -0
  57. jaclang/compiler/passes/main/tests/fixtures/mod_type_assign.jac +1 -1
  58. jaclang/compiler/passes/main/tests/fixtures/mtest.impl.jac +6 -0
  59. jaclang/{tests → compiler/passes/main/tests}/fixtures/mtest.jac +1 -1
  60. jaclang/{tests → compiler/passes/main/tests}/fixtures/nested_impls.jac +14 -15
  61. jaclang/compiler/passes/main/tests/fixtures/py_imp_test.jac +7 -7
  62. jaclang/compiler/passes/main/tests/fixtures/second_err.jac +4 -0
  63. jaclang/compiler/passes/main/tests/fixtures/str2doc.py +3 -0
  64. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/action/__init__.py +5 -0
  65. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/action/actions.jac +23 -0
  66. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/main.jac +14 -0
  67. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/no_dupls.jac +35 -0
  68. jaclang/compiler/passes/main/tests/fixtures/symtab_link_tests/one.jac +8 -0
  69. jaclang/compiler/passes/main/tests/fixtures/type_info.jac +4 -4
  70. jaclang/compiler/passes/main/tests/test_cfg_build_pass.py +99 -0
  71. jaclang/compiler/passes/main/tests/test_decl_impl_match_pass.py +157 -0
  72. jaclang/compiler/passes/main/tests/test_def_use_pass.py +4 -6
  73. jaclang/compiler/passes/main/tests/test_import_pass.py +59 -46
  74. jaclang/compiler/passes/main/tests/test_pyast_build_pass.py +15 -0
  75. jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py +25 -34
  76. jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py +3 -3
  77. jaclang/compiler/passes/main/tests/test_sub_node_pass.py +8 -7
  78. jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py +4 -4
  79. jaclang/compiler/passes/main/tests/test_sym_tab_link_pass.py +62 -0
  80. jaclang/compiler/passes/tool/__init__.py +2 -0
  81. jaclang/compiler/passes/tool/doc_ir.py +179 -0
  82. jaclang/compiler/passes/tool/doc_ir_gen_pass.py +1210 -0
  83. jaclang/compiler/passes/tool/fuse_comments_pass.py +90 -70
  84. jaclang/compiler/passes/tool/jac_formatter_pass.py +122 -2554
  85. jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +249 -97
  86. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +94 -97
  87. jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac +2 -2
  88. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/access_mod_check.jac +5 -5
  89. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/archetype_test.jac +13 -0
  90. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/decorator_stack.jac +7 -7
  91. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/line_spacing.jac +8 -8
  92. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +3 -3
  93. jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +3 -3
  94. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +1 -1
  95. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +2 -2
  96. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +3 -3
  97. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +1 -1
  98. jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +1 -1
  99. jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +1 -1
  100. jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +10 -4
  101. jaclang/compiler/passes/tool/tests/test_doc_ir_gen_pass.py +29 -0
  102. jaclang/compiler/passes/tool/tests/test_jac_format_pass.py +63 -88
  103. jaclang/compiler/passes/tool/tests/test_unparse_validate.py +27 -28
  104. jaclang/compiler/passes/transform.py +56 -16
  105. jaclang/compiler/passes/{ir_pass.py → uni_pass.py} +35 -52
  106. jaclang/compiler/program.py +205 -0
  107. jaclang/compiler/tests/fixtures/codegentext.jac +31 -0
  108. jaclang/compiler/tests/fixtures/fam.jac +10 -10
  109. jaclang/compiler/tests/fixtures/hello_world.jac +1 -1
  110. jaclang/compiler/tests/fixtures/staticcheck.jac +2 -2
  111. jaclang/compiler/tests/test_importer.py +21 -16
  112. jaclang/compiler/tests/test_parser.py +38 -17
  113. jaclang/compiler/{absyntree.py → unitree.py} +1120 -1012
  114. jaclang/langserve/engine.py +183 -171
  115. jaclang/langserve/sem_manager.py +26 -22
  116. jaclang/langserve/server.py +6 -15
  117. jaclang/langserve/tests/fixtures/base_module_structure.jac +7 -7
  118. jaclang/langserve/tests/fixtures/circle.jac +6 -6
  119. jaclang/langserve/tests/fixtures/circle_err.jac +6 -6
  120. jaclang/langserve/tests/fixtures/circle_pure.impl.jac +5 -5
  121. jaclang/langserve/tests/fixtures/circle_pure.jac +7 -7
  122. jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac +2 -2
  123. jaclang/langserve/tests/fixtures/circle_pure_err.jac +7 -7
  124. jaclang/langserve/tests/fixtures/import_include_statements.jac +6 -6
  125. jaclang/langserve/tests/fixtures/rename.jac +6 -6
  126. jaclang/langserve/tests/server_test/test_lang_serve.py +262 -0
  127. jaclang/langserve/tests/server_test/utils.py +115 -0
  128. jaclang/langserve/tests/test_sem_tokens.py +2 -2
  129. jaclang/langserve/tests/test_server.py +41 -23
  130. jaclang/langserve/utils.jac +438 -0
  131. jaclang/runtimelib/{architype.py → archetype.py} +85 -61
  132. jaclang/runtimelib/builtin.py +92 -0
  133. jaclang/runtimelib/constructs.py +11 -13
  134. jaclang/runtimelib/importer.py +63 -51
  135. jaclang/runtimelib/machine.py +1551 -144
  136. jaclang/runtimelib/memory.py +6 -6
  137. jaclang/{plugin → runtimelib}/tests/fixtures/graph_purger.jac +1 -1
  138. jaclang/{plugin → runtimelib}/tests/fixtures/impl_match.jac +2 -2
  139. jaclang/runtimelib/tests/fixtures/impl_match_impl.jac +3 -0
  140. jaclang/{plugin → runtimelib}/tests/fixtures/other_root_access.jac +7 -7
  141. jaclang/{plugin → runtimelib}/tests/fixtures/savable_object.jac +3 -5
  142. jaclang/{plugin → runtimelib}/tests/fixtures/simple_node_connection.jac +6 -6
  143. jaclang/{plugin → runtimelib}/tests/fixtures/simple_persistent.jac +1 -1
  144. jaclang/runtimelib/tests/test_features.py +72 -0
  145. jaclang/{plugin → runtimelib}/tests/test_jaseci.py +6 -5
  146. jaclang/runtimelib/utils.py +31 -63
  147. jaclang/settings.py +1 -6
  148. jaclang/tests/fixtures/{abc.jac → abc_check.jac} +6 -6
  149. jaclang/tests/fixtures/arch_rel_import_creation.jac +4 -4
  150. jaclang/tests/fixtures/async_ability.jac +18 -0
  151. jaclang/tests/fixtures/async_walker.jac +23 -0
  152. jaclang/tests/fixtures/baddy.jac +1 -1
  153. jaclang/tests/fixtures/base_class1.jac +2 -2
  154. jaclang/tests/fixtures/base_class2.jac +2 -2
  155. jaclang/tests/fixtures/base_class_complex_expr.jac +3 -3
  156. jaclang/tests/fixtures/builtin_dotgen.jac +1 -1
  157. jaclang/tests/fixtures/builtin_dotgen_json.jac +21 -0
  158. jaclang/tests/fixtures/byllmissue.jac +1 -1
  159. jaclang/tests/fixtures/chandra_bugs.jac +1 -1
  160. jaclang/tests/fixtures/chandra_bugs2.jac +1 -1
  161. jaclang/tests/fixtures/cls_method.jac +6 -6
  162. jaclang/tests/fixtures/concurrency.jac +39 -0
  163. jaclang/tests/fixtures/connect_traverse_syntax.jac +18 -0
  164. jaclang/tests/fixtures/create_dynamic_archetype.jac +35 -0
  165. jaclang/tests/fixtures/decl_defn_param_name.jac +4 -4
  166. jaclang/tests/fixtures/deep/deeper/__init__.jac +1 -0
  167. jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +2 -3
  168. jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +3 -3
  169. jaclang/tests/fixtures/deep/deeper/snd_lev.jac +2 -2
  170. jaclang/tests/fixtures/deep/mycode.jac +1 -1
  171. jaclang/tests/fixtures/deep/one_lev.jac +3 -4
  172. jaclang/tests/fixtures/deep/one_lev_dup.jac +2 -2
  173. jaclang/tests/fixtures/deep_convert.jac +1 -1
  174. jaclang/tests/fixtures/deep_import.jac +2 -2
  175. jaclang/tests/fixtures/deep_import_interp.jac +8 -0
  176. jaclang/tests/fixtures/deep_import_mods.jac +3 -3
  177. jaclang/tests/fixtures/deferred_field.jac +1 -1
  178. jaclang/tests/fixtures/del_clean.jac +7 -0
  179. jaclang/tests/fixtures/disconn.jac +3 -3
  180. jaclang/tests/fixtures/dynamic_archetype.jac +34 -0
  181. jaclang/tests/fixtures/edge_node_walk.jac +12 -12
  182. jaclang/tests/fixtures/edge_ops.jac +7 -7
  183. jaclang/tests/fixtures/edges_walk.jac +10 -10
  184. jaclang/tests/fixtures/edgetypeissue.jac +1 -1
  185. jaclang/tests/fixtures/enum_inside_archtype.jac +4 -4
  186. jaclang/tests/fixtures/err.impl.jac +1 -1
  187. jaclang/tests/fixtures/err.jac +2 -2
  188. jaclang/tests/fixtures/err_runtime.jac +2 -2
  189. jaclang/tests/fixtures/foo.jac +7 -7
  190. jaclang/tests/fixtures/game1.jac +4 -4
  191. jaclang/tests/fixtures/gendot_bubble_sort.jac +4 -4
  192. jaclang/tests/fixtures/glob_multivar_statement.jac +1 -1
  193. jaclang/tests/fixtures/guess_game.jac +5 -5
  194. jaclang/tests/fixtures/has_goodness.jac +1 -1
  195. jaclang/tests/fixtures/hash_init_check.jac +3 -3
  196. jaclang/tests/fixtures/hello.jac +1 -1
  197. jaclang/tests/fixtures/ignore.jac +3 -3
  198. jaclang/tests/fixtures/ignore_dup.jac +3 -3
  199. jaclang/tests/fixtures/impl_match_confused.impl.jac +1 -1
  200. jaclang/tests/fixtures/import.jac +9 -9
  201. jaclang/tests/fixtures/import_all.jac +1 -1
  202. jaclang/tests/fixtures/index_slice.jac +1 -1
  203. jaclang/tests/fixtures/inherit_check.jac +3 -3
  204. jaclang/tests/fixtures/jac_from_py.py +4 -0
  205. jaclang/tests/fixtures/jacsamp.jac +1 -1
  206. jaclang/tests/fixtures/jactest_main.jac +1 -1
  207. jaclang/tests/fixtures/jp_importer.jac +7 -8
  208. jaclang/tests/fixtures/jp_importer_auto.jac +3 -3
  209. jaclang/tests/fixtures/lambda.jac +2 -2
  210. jaclang/tests/fixtures/needs_import.jac +6 -6
  211. jaclang/tests/fixtures/needs_import_1.jac +1 -1
  212. jaclang/tests/fixtures/needs_import_2.jac +1 -1
  213. jaclang/tests/fixtures/needs_import_3.jac +1 -1
  214. jaclang/tests/fixtures/needs_import_dup.jac +6 -6
  215. jaclang/tests/fixtures/node_del.jac +60 -0
  216. jaclang/tests/fixtures/nosigself.jac +3 -3
  217. jaclang/tests/fixtures/py2jac.py +30 -0
  218. jaclang/tests/fixtures/py_bool_expr.py +7 -0
  219. jaclang/tests/fixtures/py_namedexpr.py +7 -0
  220. jaclang/tests/fixtures/pyfunc_3.py +0 -2
  221. jaclang/tests/fixtures/random_check.jac +5 -5
  222. jaclang/tests/fixtures/refs_target.jac +17 -0
  223. jaclang/tests/fixtures/simple_archs.jac +2 -2
  224. jaclang/tests/fixtures/simple_walk.jac +52 -0
  225. jaclang/tests/fixtures/slice_vals.jac +3 -3
  226. jaclang/tests/fixtures/sub_abil_sep.jac +3 -3
  227. jaclang/tests/fixtures/sub_abil_sep_multilev.jac +3 -3
  228. jaclang/tests/fixtures/trailing_comma.jac +4 -4
  229. jaclang/tests/fixtures/type_info.jac +5 -5
  230. jaclang/{compiler/passes/main/tests → tests}/fixtures/uninitialized_hasvars.jac +1 -1
  231. jaclang/tests/fixtures/visit_order.jac +4 -4
  232. jaclang/tests/fixtures/walker_override.jac +2 -2
  233. jaclang/tests/fixtures/walker_update.jac +5 -5
  234. jaclang/tests/fixtures/with_context.jac +4 -4
  235. jaclang/tests/test_bugs.py +2 -2
  236. jaclang/tests/test_cli.py +118 -223
  237. jaclang/tests/test_language.py +474 -468
  238. jaclang/tests/test_man_code.py +2 -2
  239. jaclang/tests/test_reference.py +4 -4
  240. jaclang/tests/test_settings.py +16 -16
  241. jaclang/tests/test_typecheck.py +555 -0
  242. jaclang/utils/__init__.py +4 -0
  243. jaclang/utils/helpers.py +12 -27
  244. jaclang/utils/lang_tools.py +84 -74
  245. jaclang/utils/module_resolver.py +69 -0
  246. jaclang/utils/test.py +8 -5
  247. jaclang/utils/tests/test_lang_tools.py +38 -13
  248. jaclang/utils/treeprinter.py +177 -40
  249. jaclang/vendor/__init__.py +1 -2
  250. jaclang/vendor/attr/__init__.py +14 -44
  251. jaclang/vendor/attr/__init__.pyi +155 -321
  252. jaclang/vendor/attr/_cmp.py +25 -15
  253. jaclang/vendor/attr/_cmp.pyi +7 -7
  254. jaclang/vendor/attr/_compat.py +15 -8
  255. jaclang/vendor/attr/_config.py +1 -1
  256. jaclang/vendor/attr/_funcs.py +148 -163
  257. jaclang/vendor/attr/_make.py +859 -855
  258. jaclang/vendor/attr/_next_gen.py +426 -32
  259. jaclang/vendor/attr/converters.py +67 -49
  260. jaclang/vendor/attr/converters.pyi +13 -7
  261. jaclang/vendor/attr/filters.py +17 -11
  262. jaclang/vendor/attr/filters.pyi +3 -3
  263. jaclang/vendor/attr/setters.py +11 -5
  264. jaclang/vendor/attr/setters.pyi +2 -1
  265. jaclang/vendor/attr/validators.py +191 -162
  266. jaclang/vendor/attr/validators.pyi +25 -27
  267. jaclang/vendor/attrs/__init__.py +9 -5
  268. jaclang/vendor/attrs/__init__.pyi +225 -29
  269. jaclang/vendor/attrs-25.3.0.dist-info/INSTALLER +1 -0
  270. jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/METADATA +83 -53
  271. jaclang/vendor/attrs-25.3.0.dist-info/RECORD +56 -0
  272. jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/WHEEL +1 -1
  273. jaclang/vendor/bin/dmypy +8 -0
  274. jaclang/vendor/bin/mypy +8 -0
  275. jaclang/vendor/bin/mypyc +8 -0
  276. jaclang/vendor/bin/stubgen +8 -0
  277. jaclang/vendor/bin/stubtest +8 -0
  278. jaclang/vendor/cattr/gen.py +2 -2
  279. jaclang/vendor/cattr/preconf/bson.py +1 -0
  280. jaclang/vendor/cattr/preconf/json.py +1 -0
  281. jaclang/vendor/cattr/preconf/msgpack.py +1 -0
  282. jaclang/vendor/cattr/preconf/orjson.py +1 -0
  283. jaclang/vendor/cattr/preconf/pyyaml.py +1 -0
  284. jaclang/vendor/cattr/preconf/tomlkit.py +1 -0
  285. jaclang/vendor/cattr/preconf/ujson.py +1 -0
  286. jaclang/vendor/cattrs/__init__.py +21 -21
  287. jaclang/vendor/cattrs/_compat.py +176 -62
  288. jaclang/vendor/cattrs/_generics.py +5 -3
  289. jaclang/vendor/cattrs/cols.py +289 -0
  290. jaclang/vendor/cattrs/converters.py +505 -187
  291. jaclang/vendor/cattrs/disambiguators.py +118 -45
  292. jaclang/vendor/cattrs/dispatch.py +66 -36
  293. jaclang/vendor/cattrs/fns.py +6 -1
  294. jaclang/vendor/cattrs/gen/__init__.py +365 -202
  295. jaclang/vendor/cattrs/gen/_generics.py +41 -5
  296. jaclang/vendor/cattrs/gen/_lc.py +3 -2
  297. jaclang/vendor/cattrs/gen/_shared.py +39 -32
  298. jaclang/vendor/cattrs/gen/typeddicts.py +75 -88
  299. jaclang/vendor/cattrs/preconf/__init__.py +20 -0
  300. jaclang/vendor/cattrs/preconf/bson.py +7 -8
  301. jaclang/vendor/cattrs/preconf/cbor2.py +3 -0
  302. jaclang/vendor/cattrs/preconf/json.py +8 -4
  303. jaclang/vendor/cattrs/preconf/msgpack.py +3 -0
  304. jaclang/vendor/cattrs/preconf/msgspec.py +185 -0
  305. jaclang/vendor/cattrs/preconf/orjson.py +20 -7
  306. jaclang/vendor/cattrs/preconf/pyyaml.py +15 -3
  307. jaclang/vendor/cattrs/preconf/tomlkit.py +3 -1
  308. jaclang/vendor/cattrs/preconf/ujson.py +3 -0
  309. jaclang/vendor/cattrs/strategies/__init__.py +1 -0
  310. jaclang/vendor/cattrs/strategies/_class_methods.py +1 -1
  311. jaclang/vendor/cattrs/strategies/_subclasses.py +43 -29
  312. jaclang/vendor/cattrs/strategies/_unions.py +47 -24
  313. jaclang/vendor/cattrs/v.py +1 -0
  314. jaclang/vendor/cattrs-24.1.3.dist-info/INSTALLER +1 -0
  315. jaclang/vendor/cattrs-24.1.3.dist-info/METADATA +161 -0
  316. jaclang/vendor/cattrs-24.1.3.dist-info/RECORD +96 -0
  317. jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/WHEEL +1 -1
  318. jaclang/vendor/lark/__init__.py +38 -38
  319. jaclang/vendor/lark/__pyinstaller/__init__.py +6 -6
  320. jaclang/vendor/lark/__pyinstaller/hook-lark.py +14 -14
  321. jaclang/vendor/lark/ast_utils.py +59 -59
  322. jaclang/vendor/lark/common.py +86 -89
  323. jaclang/vendor/lark/exceptions.py +292 -292
  324. jaclang/vendor/lark/grammar.py +130 -130
  325. jaclang/vendor/lark/grammars/common.lark +59 -59
  326. jaclang/vendor/lark/grammars/lark.lark +62 -62
  327. jaclang/vendor/lark/grammars/python.lark +302 -302
  328. jaclang/vendor/lark/grammars/unicode.lark +7 -7
  329. jaclang/vendor/lark/indenter.py +143 -112
  330. jaclang/vendor/lark/lark.py +658 -661
  331. jaclang/vendor/lark/lexer.py +678 -678
  332. jaclang/vendor/lark/load_grammar.py +1428 -1428
  333. jaclang/vendor/lark/parse_tree_builder.py +391 -391
  334. jaclang/vendor/lark/parser_frontends.py +257 -257
  335. jaclang/vendor/lark/parsers/cyk.py +340 -340
  336. jaclang/vendor/lark/parsers/earley.py +317 -308
  337. jaclang/vendor/lark/parsers/earley_common.py +42 -42
  338. jaclang/vendor/lark/parsers/earley_forest.py +802 -810
  339. jaclang/vendor/lark/parsers/grammar_analysis.py +203 -203
  340. jaclang/vendor/lark/parsers/lalr_analysis.py +332 -332
  341. jaclang/vendor/lark/parsers/lalr_interactive_parser.py +158 -157
  342. jaclang/vendor/lark/parsers/lalr_parser.py +122 -122
  343. jaclang/vendor/lark/parsers/lalr_parser_state.py +110 -110
  344. jaclang/vendor/lark/parsers/xearley.py +165 -165
  345. jaclang/vendor/lark/reconstruct.py +107 -107
  346. jaclang/vendor/lark/tools/__init__.py +70 -71
  347. jaclang/vendor/lark/tools/nearley.py +202 -202
  348. jaclang/vendor/lark/tools/serialize.py +32 -32
  349. jaclang/vendor/lark/tools/standalone.py +196 -196
  350. jaclang/vendor/lark/tree.py +267 -272
  351. jaclang/vendor/lark/tree_matcher.py +186 -186
  352. jaclang/vendor/lark/utils.py +346 -361
  353. jaclang/vendor/lark/visitors.py +596 -593
  354. jaclang/vendor/lark-1.2.2.dist-info/INSTALLER +1 -0
  355. jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/METADATA +48 -47
  356. jaclang/vendor/lark-1.2.2.dist-info/RECORD +83 -0
  357. jaclang/vendor/{mypy_extensions-1.0.0.dist-info → lark-1.2.2.dist-info}/WHEEL +1 -1
  358. jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info/licenses}/LICENSE +18 -18
  359. jaclang/vendor/lsprotocol-2023.0.1.dist-info/INSTALLER +1 -0
  360. jaclang/vendor/lsprotocol-2023.0.1.dist-info/METADATA +2 -1
  361. jaclang/vendor/lsprotocol-2023.0.1.dist-info/RECORD +17 -10
  362. jaclang/vendor/lsprotocol-2023.0.1.dist-info/WHEEL +1 -1
  363. jaclang/vendor/pluggy/_version.py +7 -2
  364. jaclang/vendor/pluggy-1.5.0.dist-info/INSTALLER +1 -0
  365. jaclang/vendor/pluggy-1.5.0.dist-info/METADATA +6 -5
  366. jaclang/vendor/pluggy-1.5.0.dist-info/RECORD +24 -14
  367. jaclang/vendor/pluggy-1.5.0.dist-info/WHEEL +1 -1
  368. jaclang/vendor/pygls-1.3.1.dist-info/INSTALLER +1 -0
  369. jaclang/vendor/pygls-1.3.1.dist-info/METADATA +2 -2
  370. jaclang/vendor/pygls-1.3.1.dist-info/RECORD +45 -24
  371. jaclang/vendor/pygls-1.3.1.dist-info/WHEEL +1 -1
  372. {jaclang-0.7.33.dist-info → jaclang-0.8.0.dist-info}/METADATA +4 -4
  373. jaclang-0.8.0.dist-info/RECORD +552 -0
  374. {jaclang-0.7.33.dist-info → jaclang-0.8.0.dist-info}/WHEEL +1 -1
  375. jaclang/compiler/.gitignore +0 -1
  376. jaclang/compiler/compile.py +0 -119
  377. jaclang/compiler/passes/main/access_modifier_pass.py +0 -130
  378. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +0 -656
  379. jaclang/compiler/passes/main/py_collect_dep_pass.py +0 -78
  380. jaclang/compiler/passes/main/pyout_pass.py +0 -86
  381. jaclang/compiler/passes/main/registry_pass.py +0 -156
  382. jaclang/compiler/passes/main/schedules.py +0 -47
  383. jaclang/compiler/passes/main/sub_node_tab_pass.py +0 -36
  384. jaclang/compiler/passes/main/tests/fixtures/registry.jac +0 -36
  385. jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +0 -114
  386. jaclang/compiler/passes/main/tests/test_registry_pass.py +0 -31
  387. jaclang/compiler/passes/main/tests/test_type_check_pass.py +0 -91
  388. jaclang/compiler/passes/main/tests/test_typeinfo_pass.py +0 -29
  389. jaclang/compiler/passes/main/type_check_pass.py +0 -128
  390. jaclang/compiler/passes/tool/schedules.py +0 -18
  391. jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +0 -36
  392. jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +0 -17
  393. jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +0 -32
  394. jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +0 -27
  395. jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +0 -35
  396. jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +0 -25
  397. jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +0 -13
  398. jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +0 -63
  399. jaclang/compiler/passes/tool/tests/fixtures/general_format_checks/architype_test.jac +0 -13
  400. jaclang/compiler/passes/utils/mypy_ast_build.py +0 -940
  401. jaclang/compiler/py_info.py +0 -22
  402. jaclang/compiler/semtable.py +0 -159
  403. jaclang/compiler/symtable.py +0 -297
  404. jaclang/langserve/utils.py +0 -458
  405. jaclang/plugin/__init__.py +0 -7
  406. jaclang/plugin/builtin.py +0 -57
  407. jaclang/plugin/default.py +0 -1443
  408. jaclang/plugin/feature.py +0 -574
  409. jaclang/plugin/plugin.md +0 -471
  410. jaclang/plugin/spec.py +0 -536
  411. jaclang/plugin/tests/fixtures/impl_match_impl.jac +0 -3
  412. jaclang/plugin/tests/test_features.py +0 -56
  413. jaclang/runtimelib/context.py +0 -191
  414. jaclang/tests/fixtures/create_dynamic_architype.jac +0 -35
  415. jaclang/tests/fixtures/dynamic_architype.jac +0 -34
  416. jaclang/tests/fixtures/impl_grab.impl.jac +0 -5
  417. jaclang/tests/fixtures/mtest.impl.jac +0 -6
  418. jaclang/tests/fixtures/registry.jac +0 -58
  419. jaclang/tests/fixtures/semstr.jac +0 -30
  420. jaclang/tests/main.jac +0 -2
  421. jaclang/utils/profiler.py +0 -62
  422. jaclang/vendor/attrs-23.2.0.dist-info/RECORD +0 -35
  423. jaclang/vendor/cattrs-23.2.3.dist-info/METADATA +0 -221
  424. jaclang/vendor/cattrs-23.2.3.dist-info/RECORD +0 -48
  425. jaclang/vendor/lark-1.1.9.dist-info/RECORD +0 -46
  426. jaclang/vendor/lark-1.1.9.dist-info/WHEEL +0 -5
  427. jaclang/vendor/mypy/__init__.py +0 -1
  428. jaclang/vendor/mypy/__main__.py +0 -37
  429. jaclang/vendor/mypy/api.py +0 -94
  430. jaclang/vendor/mypy/applytype.py +0 -172
  431. jaclang/vendor/mypy/argmap.py +0 -268
  432. jaclang/vendor/mypy/binder.py +0 -538
  433. jaclang/vendor/mypy/bogus_type.py +0 -27
  434. jaclang/vendor/mypy/build.py +0 -3562
  435. jaclang/vendor/mypy/checker.py +0 -8445
  436. jaclang/vendor/mypy/checkexpr.py +0 -6623
  437. jaclang/vendor/mypy/checkmember.py +0 -1363
  438. jaclang/vendor/mypy/checkpattern.py +0 -801
  439. jaclang/vendor/mypy/checkstrformat.py +0 -1109
  440. jaclang/vendor/mypy/config_parser.py +0 -670
  441. jaclang/vendor/mypy/constant_fold.py +0 -187
  442. jaclang/vendor/mypy/constraints.py +0 -1636
  443. jaclang/vendor/mypy/copytype.py +0 -133
  444. jaclang/vendor/mypy/defaults.py +0 -46
  445. jaclang/vendor/mypy/dmypy/__main__.py +0 -6
  446. jaclang/vendor/mypy/dmypy/client.py +0 -749
  447. jaclang/vendor/mypy/dmypy_os.py +0 -42
  448. jaclang/vendor/mypy/dmypy_server.py +0 -1107
  449. jaclang/vendor/mypy/dmypy_util.py +0 -117
  450. jaclang/vendor/mypy/erasetype.py +0 -278
  451. jaclang/vendor/mypy/errorcodes.py +0 -291
  452. jaclang/vendor/mypy/errors.py +0 -1280
  453. jaclang/vendor/mypy/evalexpr.py +0 -205
  454. jaclang/vendor/mypy/expandtype.py +0 -524
  455. jaclang/vendor/mypy/exprtotype.py +0 -209
  456. jaclang/vendor/mypy/fastparse.py +0 -2147
  457. jaclang/vendor/mypy/find_sources.py +0 -243
  458. jaclang/vendor/mypy/fixup.py +0 -428
  459. jaclang/vendor/mypy/freetree.py +0 -23
  460. jaclang/vendor/mypy/fscache.py +0 -309
  461. jaclang/vendor/mypy/fswatcher.py +0 -106
  462. jaclang/vendor/mypy/gclogger.py +0 -47
  463. jaclang/vendor/mypy/git.py +0 -34
  464. jaclang/vendor/mypy/graph_utils.py +0 -112
  465. jaclang/vendor/mypy/indirection.py +0 -121
  466. jaclang/vendor/mypy/infer.py +0 -75
  467. jaclang/vendor/mypy/inspections.py +0 -627
  468. jaclang/vendor/mypy/ipc.py +0 -310
  469. jaclang/vendor/mypy/join.py +0 -871
  470. jaclang/vendor/mypy/literals.py +0 -306
  471. jaclang/vendor/mypy/lookup.py +0 -61
  472. jaclang/vendor/mypy/main.py +0 -1574
  473. jaclang/vendor/mypy/maptype.py +0 -106
  474. jaclang/vendor/mypy/meet.py +0 -1140
  475. jaclang/vendor/mypy/memprofile.py +0 -121
  476. jaclang/vendor/mypy/message_registry.py +0 -329
  477. jaclang/vendor/mypy/messages.py +0 -3186
  478. jaclang/vendor/mypy/metastore.py +0 -225
  479. jaclang/vendor/mypy/mixedtraverser.py +0 -112
  480. jaclang/vendor/mypy/modulefinder.py +0 -875
  481. jaclang/vendor/mypy/moduleinspect.py +0 -184
  482. jaclang/vendor/mypy/mro.py +0 -62
  483. jaclang/vendor/mypy/nodes.py +0 -4115
  484. jaclang/vendor/mypy/operators.py +0 -126
  485. jaclang/vendor/mypy/options.py +0 -556
  486. jaclang/vendor/mypy/parse.py +0 -30
  487. jaclang/vendor/mypy/partially_defined.py +0 -675
  488. jaclang/vendor/mypy/patterns.py +0 -150
  489. jaclang/vendor/mypy/plugin.py +0 -901
  490. jaclang/vendor/mypy/plugins/attrs.py +0 -1166
  491. jaclang/vendor/mypy/plugins/common.py +0 -440
  492. jaclang/vendor/mypy/plugins/ctypes.py +0 -245
  493. jaclang/vendor/mypy/plugins/dataclasses.py +0 -1108
  494. jaclang/vendor/mypy/plugins/default.py +0 -531
  495. jaclang/vendor/mypy/plugins/enums.py +0 -259
  496. jaclang/vendor/mypy/plugins/functools.py +0 -104
  497. jaclang/vendor/mypy/plugins/proper_plugin.py +0 -175
  498. jaclang/vendor/mypy/plugins/singledispatch.py +0 -224
  499. jaclang/vendor/mypy/py.typed +0 -1
  500. jaclang/vendor/mypy/pyinfo.py +0 -78
  501. jaclang/vendor/mypy/reachability.py +0 -362
  502. jaclang/vendor/mypy/refinfo.py +0 -92
  503. jaclang/vendor/mypy/renaming.py +0 -568
  504. jaclang/vendor/mypy/report.py +0 -924
  505. jaclang/vendor/mypy/scope.py +0 -125
  506. jaclang/vendor/mypy/semanal.py +0 -7187
  507. jaclang/vendor/mypy/semanal_classprop.py +0 -187
  508. jaclang/vendor/mypy/semanal_enum.py +0 -253
  509. jaclang/vendor/mypy/semanal_infer.py +0 -128
  510. jaclang/vendor/mypy/semanal_main.py +0 -511
  511. jaclang/vendor/mypy/semanal_namedtuple.py +0 -670
  512. jaclang/vendor/mypy/semanal_newtype.py +0 -273
  513. jaclang/vendor/mypy/semanal_pass1.py +0 -156
  514. jaclang/vendor/mypy/semanal_shared.py +0 -490
  515. jaclang/vendor/mypy/semanal_typeargs.py +0 -265
  516. jaclang/vendor/mypy/semanal_typeddict.py +0 -575
  517. jaclang/vendor/mypy/server/astdiff.py +0 -518
  518. jaclang/vendor/mypy/server/astmerge.py +0 -562
  519. jaclang/vendor/mypy/server/aststrip.py +0 -281
  520. jaclang/vendor/mypy/server/deps.py +0 -1137
  521. jaclang/vendor/mypy/server/mergecheck.py +0 -83
  522. jaclang/vendor/mypy/server/objgraph.py +0 -101
  523. jaclang/vendor/mypy/server/subexpr.py +0 -198
  524. jaclang/vendor/mypy/server/target.py +0 -11
  525. jaclang/vendor/mypy/server/trigger.py +0 -26
  526. jaclang/vendor/mypy/server/update.py +0 -1339
  527. jaclang/vendor/mypy/sharedparse.py +0 -112
  528. jaclang/vendor/mypy/solve.py +0 -562
  529. jaclang/vendor/mypy/split_namespace.py +0 -35
  530. jaclang/vendor/mypy/state.py +0 -28
  531. jaclang/vendor/mypy/stats.py +0 -489
  532. jaclang/vendor/mypy/strconv.py +0 -641
  533. jaclang/vendor/mypy/stubdoc.py +0 -491
  534. jaclang/vendor/mypy/stubgen.py +0 -1886
  535. jaclang/vendor/mypy/stubgenc.py +0 -993
  536. jaclang/vendor/mypy/stubinfo.py +0 -173
  537. jaclang/vendor/mypy/stubtest.py +0 -2079
  538. jaclang/vendor/mypy/stubutil.py +0 -834
  539. jaclang/vendor/mypy/subtypes.py +0 -1980
  540. jaclang/vendor/mypy/suggestions.py +0 -1046
  541. jaclang/vendor/mypy/test/config.py +0 -28
  542. jaclang/vendor/mypy/test/data.py +0 -821
  543. jaclang/vendor/mypy/test/helpers.py +0 -476
  544. jaclang/vendor/mypy/test/meta/_pytest.py +0 -72
  545. jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -47
  546. jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -73
  547. jaclang/vendor/mypy/test/meta/test_update_data.py +0 -135
  548. jaclang/vendor/mypy/test/test_find_sources.py +0 -376
  549. jaclang/vendor/mypy/test/test_ref_info.py +0 -45
  550. jaclang/vendor/mypy/test/testapi.py +0 -45
  551. jaclang/vendor/mypy/test/testargs.py +0 -77
  552. jaclang/vendor/mypy/test/testcheck.py +0 -322
  553. jaclang/vendor/mypy/test/testcmdline.py +0 -152
  554. jaclang/vendor/mypy/test/testconstraints.py +0 -134
  555. jaclang/vendor/mypy/test/testdaemon.py +0 -132
  556. jaclang/vendor/mypy/test/testdeps.py +0 -77
  557. jaclang/vendor/mypy/test/testdiff.py +0 -67
  558. jaclang/vendor/mypy/test/testerrorstream.py +0 -46
  559. jaclang/vendor/mypy/test/testfinegrained.py +0 -438
  560. jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -18
  561. jaclang/vendor/mypy/test/testformatter.py +0 -85
  562. jaclang/vendor/mypy/test/testfscache.py +0 -101
  563. jaclang/vendor/mypy/test/testgraph.py +0 -83
  564. jaclang/vendor/mypy/test/testinfer.py +0 -373
  565. jaclang/vendor/mypy/test/testipc.py +0 -119
  566. jaclang/vendor/mypy/test/testmerge.py +0 -238
  567. jaclang/vendor/mypy/test/testmodulefinder.py +0 -278
  568. jaclang/vendor/mypy/test/testmypyc.py +0 -14
  569. jaclang/vendor/mypy/test/testparse.py +0 -107
  570. jaclang/vendor/mypy/test/testpep561.py +0 -211
  571. jaclang/vendor/mypy/test/testpythoneval.py +0 -117
  572. jaclang/vendor/mypy/test/testreports.py +0 -55
  573. jaclang/vendor/mypy/test/testsemanal.py +0 -209
  574. jaclang/vendor/mypy/test/testsolve.py +0 -285
  575. jaclang/vendor/mypy/test/teststubgen.py +0 -1412
  576. jaclang/vendor/mypy/test/teststubinfo.py +0 -12
  577. jaclang/vendor/mypy/test/teststubtest.py +0 -2492
  578. jaclang/vendor/mypy/test/testsubtypes.py +0 -303
  579. jaclang/vendor/mypy/test/testtransform.py +0 -64
  580. jaclang/vendor/mypy/test/testtypegen.py +0 -83
  581. jaclang/vendor/mypy/test/testtypes.py +0 -1551
  582. jaclang/vendor/mypy/test/testutil.py +0 -111
  583. jaclang/vendor/mypy/test/typefixture.py +0 -415
  584. jaclang/vendor/mypy/test/update_data.py +0 -87
  585. jaclang/vendor/mypy/test/visitors.py +0 -63
  586. jaclang/vendor/mypy/traverser.py +0 -961
  587. jaclang/vendor/mypy/treetransform.py +0 -800
  588. jaclang/vendor/mypy/tvar_scope.py +0 -169
  589. jaclang/vendor/mypy/type_visitor.py +0 -564
  590. jaclang/vendor/mypy/typeanal.py +0 -2596
  591. jaclang/vendor/mypy/typeops.py +0 -1082
  592. jaclang/vendor/mypy/types.py +0 -3708
  593. jaclang/vendor/mypy/types_utils.py +0 -166
  594. jaclang/vendor/mypy/typeshed/LICENSE +0 -237
  595. jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +0 -309
  596. jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +0 -36
  597. jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +0 -3
  598. jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +0 -591
  599. jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +0 -84
  600. jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +0 -1
  601. jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +0 -133
  602. jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +0 -94
  603. jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +0 -8
  604. jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +0 -25
  605. jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +0 -90
  606. jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +0 -207
  607. jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +0 -566
  608. jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +0 -281
  609. jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +0 -33
  610. jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +0 -164
  611. jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +0 -11
  612. jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +0 -28
  613. jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +0 -49
  614. jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +0 -100
  615. jaclang/vendor/mypy/typeshed/stdlib/_lsprof.pyi +0 -35
  616. jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +0 -16
  617. jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +0 -92
  618. jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +0 -147
  619. jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +0 -34
  620. jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +0 -33
  621. jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +0 -14
  622. jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +0 -43
  623. jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +0 -12
  624. jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +0 -16
  625. jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +0 -803
  626. jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +0 -103
  627. jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +0 -59
  628. jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +0 -17
  629. jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +0 -121
  630. jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +0 -17
  631. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +0 -347
  632. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +0 -37
  633. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +0 -44
  634. jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +0 -9
  635. jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +0 -55
  636. jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +0 -41
  637. jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +0 -51
  638. jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +0 -255
  639. jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +0 -51
  640. jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +0 -91
  641. jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +0 -3
  642. jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +0 -595
  643. jaclang/vendor/mypy/typeshed/stdlib/array.pyi +0 -92
  644. jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +0 -277
  645. jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +0 -21
  646. jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +0 -41
  647. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +0 -440
  648. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +0 -19
  649. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +0 -63
  650. jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +0 -9
  651. jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +0 -20
  652. jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +0 -26
  653. jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +0 -580
  654. jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +0 -43
  655. jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +0 -20
  656. jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +0 -57
  657. jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +0 -121
  658. jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +0 -3
  659. jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +0 -9
  660. jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +0 -64
  661. jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +0 -34
  662. jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +0 -47
  663. jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +0 -32
  664. jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +0 -8
  665. jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +0 -165
  666. jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +0 -10
  667. jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +0 -153
  668. jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +0 -229
  669. jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +0 -25
  670. jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +0 -497
  671. jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +0 -9
  672. jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +0 -19
  673. jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +0 -47
  674. jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +0 -94
  675. jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +0 -196
  676. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +0 -85
  677. jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +0 -49
  678. jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +0 -90
  679. jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +0 -12
  680. jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +0 -43
  681. jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +0 -59
  682. jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +0 -102
  683. jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +0 -36
  684. jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +0 -45
  685. jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +0 -4
  686. jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +0 -1936
  687. jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +0 -146
  688. jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +0 -31
  689. jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +0 -208
  690. jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +0 -118
  691. jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +0 -32
  692. jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +0 -20
  693. jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +0 -36
  694. jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +0 -45
  695. jaclang/vendor/mypy/typeshed/stdlib/code.pyi +0 -33
  696. jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +0 -285
  697. jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +0 -13
  698. jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +0 -485
  699. jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +0 -2
  700. jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +0 -13
  701. jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +0 -111
  702. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +0 -32
  703. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +0 -126
  704. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +0 -233
  705. jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +0 -80
  706. jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +0 -313
  707. jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +0 -208
  708. jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +0 -63
  709. jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +0 -16
  710. jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +0 -21
  711. jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +0 -12
  712. jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +0 -147
  713. jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +0 -187
  714. jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +0 -19
  715. jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +0 -6
  716. jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +0 -298
  717. jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +0 -22
  718. jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +0 -62
  719. jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +0 -1
  720. jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +0 -22
  721. jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +0 -11
  722. jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +0 -315
  723. jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +0 -295
  724. jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +0 -95
  725. jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +0 -31
  726. jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +0 -41
  727. jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +0 -37
  728. jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +0 -2
  729. jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +0 -140
  730. jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +0 -144
  731. jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +0 -5
  732. jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +0 -20
  733. jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +0 -3
  734. jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +0 -152
  735. jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +0 -66
  736. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +0 -25
  737. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +0 -21
  738. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +0 -45
  739. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +0 -52
  740. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +0 -16
  741. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +0 -31
  742. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +0 -27
  743. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +0 -50
  744. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +0 -44
  745. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +0 -24
  746. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +0 -39
  747. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +0 -17
  748. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +0 -83
  749. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +0 -63
  750. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +0 -19
  751. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +0 -18
  752. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +0 -16
  753. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +0 -25
  754. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +0 -18
  755. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +0 -18
  756. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +0 -42
  757. jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +0 -17
  758. jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +0 -17
  759. jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +0 -57
  760. jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +0 -20
  761. jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +0 -1
  762. jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +0 -3
  763. jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +0 -13
  764. jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +0 -146
  765. jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +0 -19
  766. jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +0 -36
  767. jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +0 -34
  768. jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +0 -14
  769. jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +0 -50
  770. jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +0 -25
  771. jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +0 -3
  772. jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +0 -2
  773. jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +0 -31
  774. jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +0 -21
  775. jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +0 -3
  776. jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +0 -46
  777. jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +0 -36
  778. jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +0 -248
  779. jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +0 -2
  780. jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +0 -29
  781. jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +0 -392
  782. jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +0 -51
  783. jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +0 -13
  784. jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +0 -34
  785. jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +0 -11
  786. jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +0 -8
  787. jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +0 -39
  788. jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +0 -23
  789. jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +0 -40
  790. jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +0 -31
  791. jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +0 -178
  792. jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +0 -12
  793. jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +0 -165
  794. jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +0 -17
  795. jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +0 -17
  796. jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +0 -8
  797. jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +0 -17
  798. jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +0 -8
  799. jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +0 -18
  800. jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +0 -5
  801. jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +0 -9
  802. jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +0 -26
  803. jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +0 -38
  804. jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +0 -28
  805. jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +0 -70
  806. jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +0 -10
  807. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +0 -21
  808. jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +0 -22
  809. jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +0 -12
  810. jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +0 -320
  811. jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +0 -222
  812. jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +0 -13
  813. jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +0 -127
  814. jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +0 -57
  815. jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +0 -213
  816. jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +0 -9
  817. jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +0 -88
  818. jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +0 -150
  819. jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +0 -178
  820. jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +0 -213
  821. jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +0 -37
  822. jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +0 -52
  823. jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +0 -11
  824. jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +0 -8
  825. jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +0 -169
  826. jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +0 -42
  827. jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +0 -28
  828. jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +0 -22
  829. jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +0 -160
  830. jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +0 -167
  831. jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +0 -17
  832. jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +0 -38
  833. jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +0 -6
  834. jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +0 -6
  835. jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +0 -34
  836. jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +0 -105
  837. jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +0 -259
  838. jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +0 -159
  839. jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +0 -60
  840. jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +0 -83
  841. jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +0 -168
  842. jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +0 -17
  843. jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +0 -62
  844. jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +0 -24
  845. jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +0 -15
  846. jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +0 -172
  847. jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +0 -179
  848. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +0 -285
  849. jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +0 -49
  850. jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +0 -68
  851. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +0 -46
  852. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +0 -12
  853. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +0 -14
  854. jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +0 -56
  855. jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +0 -11
  856. jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +0 -43
  857. jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +0 -632
  858. jaclang/vendor/mypy/typeshed/stdlib/io.pyi +0 -238
  859. jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +0 -208
  860. jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +0 -273
  861. jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +0 -61
  862. jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +0 -32
  863. jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +0 -40
  864. jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +0 -1
  865. jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +0 -21
  866. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +0 -28
  867. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +0 -42
  868. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +0 -8
  869. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +0 -10
  870. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +0 -8
  871. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +0 -8
  872. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +0 -16
  873. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +0 -14
  874. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +0 -8
  875. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +0 -8
  876. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +0 -13
  877. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +0 -9
  878. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +0 -8
  879. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +0 -8
  880. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +0 -8
  881. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +0 -8
  882. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +0 -15
  883. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +0 -16
  884. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +0 -21
  885. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +0 -6
  886. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +0 -11
  887. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +0 -9
  888. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +0 -8
  889. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +0 -9
  890. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +0 -7
  891. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +0 -7
  892. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +0 -9
  893. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +0 -17
  894. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +0 -10
  895. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +0 -8
  896. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +0 -19
  897. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +0 -8
  898. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +0 -8
  899. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +0 -12
  900. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +0 -8
  901. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +0 -12
  902. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +0 -8
  903. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +0 -8
  904. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +0 -8
  905. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +0 -9
  906. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +0 -17
  907. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +0 -8
  908. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +0 -7
  909. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +0 -8
  910. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +0 -9
  911. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +0 -8
  912. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +0 -17
  913. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +0 -8
  914. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +0 -12
  915. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +0 -15
  916. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +0 -12
  917. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +0 -20
  918. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +0 -8
  919. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +0 -9
  920. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +0 -42
  921. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +0 -9
  922. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +0 -27
  923. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +0 -24
  924. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +0 -7
  925. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +0 -30
  926. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +0 -50
  927. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +0 -67
  928. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +0 -96
  929. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +0 -114
  930. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +0 -117
  931. jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +0 -82
  932. jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +0 -23
  933. jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +0 -152
  934. jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +0 -658
  935. jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +0 -134
  936. jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +0 -275
  937. jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +0 -197
  938. jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +0 -256
  939. jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +0 -11
  940. jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +0 -33
  941. jaclang/vendor/mypy/typeshed/stdlib/math.pyi +0 -125
  942. jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +0 -46
  943. jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +0 -113
  944. jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +0 -66
  945. jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +0 -177
  946. jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +0 -94
  947. jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +0 -13
  948. jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +0 -7
  949. jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +0 -32
  950. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +0 -90
  951. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +0 -75
  952. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +0 -189
  953. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +0 -77
  954. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +0 -39
  955. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +0 -31
  956. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +0 -36
  957. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +0 -212
  958. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +0 -103
  959. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +0 -23
  960. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +0 -16
  961. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +0 -20
  962. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +0 -30
  963. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +0 -39
  964. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +0 -41
  965. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +0 -90
  966. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +0 -20
  967. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +0 -18
  968. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +0 -40
  969. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +0 -107
  970. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +0 -32
  971. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +0 -54
  972. jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +0 -98
  973. jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +0 -23
  974. jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +0 -9
  975. jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +0 -125
  976. jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +0 -111
  977. jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +0 -119
  978. jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +0 -2
  979. jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +0 -209
  980. jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +0 -59
  981. jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +0 -110
  982. jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +0 -255
  983. jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +0 -1157
  984. jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +0 -8
  985. jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +0 -131
  986. jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +0 -24
  987. jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +0 -232
  988. jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +0 -181
  989. jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +0 -271
  990. jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +0 -167
  991. jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +0 -16
  992. jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +0 -53
  993. jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +0 -42
  994. jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +0 -113
  995. jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +0 -71
  996. jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +0 -361
  997. jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +0 -161
  998. jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +0 -112
  999. jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +0 -31
  1000. jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +0 -80
  1001. jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +0 -19
  1002. jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +0 -28
  1003. jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +0 -34
  1004. jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +0 -74
  1005. jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +0 -261
  1006. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
  1007. jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +0 -1
  1008. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +0 -85
  1009. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +0 -49
  1010. jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +0 -11
  1011. jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +0 -66
  1012. jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +0 -11
  1013. jaclang/vendor/mypy/typeshed/stdlib/random.pyi +0 -138
  1014. jaclang/vendor/mypy/typeshed/stdlib/re.pyi +0 -290
  1015. jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +0 -36
  1016. jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +0 -65
  1017. jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +0 -94
  1018. jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +0 -9
  1019. jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +0 -24
  1020. jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +0 -42
  1021. jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +0 -15
  1022. jaclang/vendor/mypy/typeshed/stdlib/select.pyi +0 -155
  1023. jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +0 -67
  1024. jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +0 -46
  1025. jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +0 -63
  1026. jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +0 -185
  1027. jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +0 -188
  1028. jaclang/vendor/mypy/typeshed/stdlib/site.pyi +0 -27
  1029. jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +0 -91
  1030. jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +0 -204
  1031. jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +0 -14
  1032. jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +0 -825
  1033. jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +0 -168
  1034. jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +0 -41
  1035. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +0 -1
  1036. jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +0 -551
  1037. jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +0 -11
  1038. jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +0 -130
  1039. jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +0 -104
  1040. jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +0 -537
  1041. jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +0 -1
  1042. jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +0 -132
  1043. jaclang/vendor/mypy/typeshed/stdlib/string.pyi +0 -83
  1044. jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +0 -27
  1045. jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +0 -26
  1046. jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +0 -2615
  1047. jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +0 -86
  1048. jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +0 -93
  1049. jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +0 -58
  1050. jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +0 -373
  1051. jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +0 -52
  1052. jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +0 -48
  1053. jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +0 -46
  1054. jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +0 -16
  1055. jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +0 -441
  1056. jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +0 -122
  1057. jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +0 -477
  1058. jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +0 -267
  1059. jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +0 -103
  1060. jaclang/vendor/mypy/typeshed/stdlib/this.pyi +0 -2
  1061. jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +0 -187
  1062. jaclang/vendor/mypy/typeshed/stdlib/time.pyi +0 -108
  1063. jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +0 -32
  1064. jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +0 -3654
  1065. jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +0 -20
  1066. jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +0 -14
  1067. jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +0 -80
  1068. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +0 -16
  1069. jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +0 -20
  1070. jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +0 -151
  1071. jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +0 -116
  1072. jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +0 -44
  1073. jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +0 -9
  1074. jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +0 -54
  1075. jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +0 -299
  1076. jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +0 -1204
  1077. jaclang/vendor/mypy/typeshed/stdlib/token.pyi +0 -159
  1078. jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +0 -177
  1079. jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +0 -10
  1080. jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +0 -79
  1081. jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +0 -262
  1082. jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +0 -124
  1083. jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +0 -30
  1084. jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +0 -713
  1085. jaclang/vendor/mypy/typeshed/stdlib/types.pyi +0 -614
  1086. jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +0 -976
  1087. jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +0 -509
  1088. jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +0 -73
  1089. jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +0 -67
  1090. jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +0 -27
  1091. jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +0 -21
  1092. jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +0 -342
  1093. jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +0 -51
  1094. jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +0 -69
  1095. jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +0 -430
  1096. jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +0 -47
  1097. jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +0 -72
  1098. jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +0 -15
  1099. jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +0 -22
  1100. jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +0 -23
  1101. jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
  1102. jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +0 -23
  1103. jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +0 -210
  1104. jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +0 -400
  1105. jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +0 -43
  1106. jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +0 -20
  1107. jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +0 -13
  1108. jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +0 -100
  1109. jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +0 -112
  1110. jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +0 -85
  1111. jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +0 -149
  1112. jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +0 -74
  1113. jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +0 -132
  1114. jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +0 -28
  1115. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
  1116. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +0 -91
  1117. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +0 -26
  1118. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +0 -37
  1119. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +0 -32
  1120. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +0 -24
  1121. jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +0 -50
  1122. jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +0 -57
  1123. jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +0 -1
  1124. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +0 -19
  1125. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +0 -69
  1126. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +0 -8
  1127. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +0 -100
  1128. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +0 -22
  1129. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +0 -404
  1130. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +0 -94
  1131. jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +0 -108
  1132. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +0 -28
  1133. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +0 -34
  1134. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +0 -327
  1135. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
  1136. jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +0 -1
  1137. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +0 -1
  1138. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +0 -1
  1139. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +0 -1
  1140. jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +0 -1
  1141. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +0 -25
  1142. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +0 -19
  1143. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +0 -55
  1144. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +0 -60
  1145. jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +0 -87
  1146. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
  1147. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +0 -296
  1148. jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +0 -143
  1149. jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +0 -22
  1150. jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +0 -20
  1151. jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +0 -306
  1152. jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +0 -95
  1153. jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +0 -32
  1154. jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +0 -56
  1155. jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +0 -38
  1156. jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +0 -218
  1157. jaclang/vendor/mypy/typestate.py +0 -323
  1158. jaclang/vendor/mypy/typetraverser.py +0 -148
  1159. jaclang/vendor/mypy/typevars.py +0 -93
  1160. jaclang/vendor/mypy/typevartuples.py +0 -32
  1161. jaclang/vendor/mypy/util.py +0 -869
  1162. jaclang/vendor/mypy/version.py +0 -1
  1163. jaclang/vendor/mypy/visitor.py +0 -621
  1164. jaclang/vendor/mypy/xml/mypy-html.css +0 -104
  1165. jaclang/vendor/mypy/xml/mypy-html.xslt +0 -81
  1166. jaclang/vendor/mypy/xml/mypy-txt.xslt +0 -100
  1167. jaclang/vendor/mypy/xml/mypy.xsd +0 -50
  1168. jaclang/vendor/mypy-1.10.0.dist-info/LICENSE +0 -229
  1169. jaclang/vendor/mypy-1.10.0.dist-info/METADATA +0 -48
  1170. jaclang/vendor/mypy-1.10.0.dist-info/RECORD +0 -1241
  1171. jaclang/vendor/mypy-1.10.0.dist-info/WHEEL +0 -6
  1172. jaclang/vendor/mypy-1.10.0.dist-info/entry_points.txt +0 -6
  1173. jaclang/vendor/mypy-1.10.0.dist-info/top_level.txt +0 -3
  1174. jaclang/vendor/mypy_extensions-1.0.0.dist-info/LICENSE +0 -27
  1175. jaclang/vendor/mypy_extensions-1.0.0.dist-info/METADATA +0 -29
  1176. jaclang/vendor/mypy_extensions-1.0.0.dist-info/RECORD +0 -6
  1177. jaclang/vendor/mypy_extensions-1.0.0.dist-info/top_level.txt +0 -1
  1178. jaclang/vendor/mypy_extensions.py +0 -213
  1179. jaclang/vendor/mypyc/README.md +0 -133
  1180. jaclang/vendor/mypyc/__init__.py +0 -0
  1181. jaclang/vendor/mypyc/__main__.py +0 -57
  1182. jaclang/vendor/mypyc/analysis/__init__.py +0 -0
  1183. jaclang/vendor/mypyc/analysis/attrdefined.py +0 -436
  1184. jaclang/vendor/mypyc/analysis/blockfreq.py +0 -32
  1185. jaclang/vendor/mypyc/analysis/dataflow.py +0 -628
  1186. jaclang/vendor/mypyc/analysis/ircheck.py +0 -433
  1187. jaclang/vendor/mypyc/analysis/selfleaks.py +0 -211
  1188. jaclang/vendor/mypyc/build.py +0 -616
  1189. jaclang/vendor/mypyc/codegen/__init__.py +0 -0
  1190. jaclang/vendor/mypyc/codegen/cstring.py +0 -54
  1191. jaclang/vendor/mypyc/codegen/emit.py +0 -1193
  1192. jaclang/vendor/mypyc/codegen/emitclass.py +0 -1060
  1193. jaclang/vendor/mypyc/codegen/emitfunc.py +0 -852
  1194. jaclang/vendor/mypyc/codegen/emitmodule.py +0 -1136
  1195. jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -979
  1196. jaclang/vendor/mypyc/codegen/literals.py +0 -302
  1197. jaclang/vendor/mypyc/common.py +0 -136
  1198. jaclang/vendor/mypyc/crash.py +0 -31
  1199. jaclang/vendor/mypyc/doc/Makefile +0 -20
  1200. jaclang/vendor/mypyc/doc/bool_operations.rst +0 -27
  1201. jaclang/vendor/mypyc/doc/compilation_units.rst +0 -20
  1202. jaclang/vendor/mypyc/doc/conf.py +0 -59
  1203. jaclang/vendor/mypyc/doc/cpython-timings.md +0 -25
  1204. jaclang/vendor/mypyc/doc/dev-intro.md +0 -548
  1205. jaclang/vendor/mypyc/doc/dict_operations.rst +0 -59
  1206. jaclang/vendor/mypyc/doc/differences_from_python.rst +0 -332
  1207. jaclang/vendor/mypyc/doc/float_operations.rst +0 -50
  1208. jaclang/vendor/mypyc/doc/future.md +0 -42
  1209. jaclang/vendor/mypyc/doc/getting_started.rst +0 -240
  1210. jaclang/vendor/mypyc/doc/index.rst +0 -61
  1211. jaclang/vendor/mypyc/doc/int_operations.rst +0 -162
  1212. jaclang/vendor/mypyc/doc/introduction.rst +0 -150
  1213. jaclang/vendor/mypyc/doc/list_operations.rst +0 -65
  1214. jaclang/vendor/mypyc/doc/make.bat +0 -35
  1215. jaclang/vendor/mypyc/doc/native_classes.rst +0 -206
  1216. jaclang/vendor/mypyc/doc/native_operations.rst +0 -55
  1217. jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +0 -244
  1218. jaclang/vendor/mypyc/doc/set_operations.rst +0 -47
  1219. jaclang/vendor/mypyc/doc/str_operations.rst +0 -35
  1220. jaclang/vendor/mypyc/doc/tuple_operations.rst +0 -33
  1221. jaclang/vendor/mypyc/doc/using_type_annotations.rst +0 -398
  1222. jaclang/vendor/mypyc/errors.py +0 -29
  1223. jaclang/vendor/mypyc/external/googletest/LICENSE +0 -28
  1224. jaclang/vendor/mypyc/external/googletest/README.md +0 -280
  1225. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +0 -294
  1226. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +0 -250
  1227. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +0 -1444
  1228. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +0 -510
  1229. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +0 -993
  1230. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +0 -232
  1231. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +0 -179
  1232. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +0 -263
  1233. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +0 -2236
  1234. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +0 -358
  1235. jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +0 -58
  1236. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +0 -69
  1237. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  1238. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +0 -41
  1239. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -319
  1240. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +0 -206
  1241. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +0 -1238
  1242. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  1243. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
  1244. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
  1245. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +0 -731
  1246. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +0 -93
  1247. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +0 -2560
  1248. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +0 -167
  1249. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  1250. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  1251. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +0 -3331
  1252. jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -297
  1253. jaclang/vendor/mypyc/external/googletest/make/Makefile +0 -61
  1254. jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +0 -48
  1255. jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +0 -1342
  1256. jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +0 -387
  1257. jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +0 -1183
  1258. jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +0 -1259
  1259. jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +0 -373
  1260. jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +0 -110
  1261. jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +0 -118
  1262. jaclang/vendor/mypyc/external/googletest/src/gtest.cc +0 -5388
  1263. jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +0 -38
  1264. jaclang/vendor/mypyc/ir/__init__.py +0 -0
  1265. jaclang/vendor/mypyc/ir/class_ir.py +0 -499
  1266. jaclang/vendor/mypyc/ir/func_ir.py +0 -370
  1267. jaclang/vendor/mypyc/ir/module_ir.py +0 -88
  1268. jaclang/vendor/mypyc/ir/ops.py +0 -1727
  1269. jaclang/vendor/mypyc/ir/pprint.py +0 -516
  1270. jaclang/vendor/mypyc/ir/rtypes.py +0 -1038
  1271. jaclang/vendor/mypyc/irbuild/__init__.py +0 -0
  1272. jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -123
  1273. jaclang/vendor/mypyc/irbuild/builder.py +0 -1394
  1274. jaclang/vendor/mypyc/irbuild/callable_class.py +0 -173
  1275. jaclang/vendor/mypyc/irbuild/classdef.py +0 -850
  1276. jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -95
  1277. jaclang/vendor/mypyc/irbuild/context.py +0 -186
  1278. jaclang/vendor/mypyc/irbuild/env_class.py +0 -223
  1279. jaclang/vendor/mypyc/irbuild/expression.py +0 -1070
  1280. jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -1075
  1281. jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -250
  1282. jaclang/vendor/mypyc/irbuild/function.py +0 -1088
  1283. jaclang/vendor/mypyc/irbuild/generator.py +0 -346
  1284. jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -2389
  1285. jaclang/vendor/mypyc/irbuild/main.py +0 -153
  1286. jaclang/vendor/mypyc/irbuild/mapper.py +0 -221
  1287. jaclang/vendor/mypyc/irbuild/match.py +0 -355
  1288. jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -197
  1289. jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +0 -203
  1290. jaclang/vendor/mypyc/irbuild/prepare.py +0 -609
  1291. jaclang/vendor/mypyc/irbuild/specialize.py +0 -822
  1292. jaclang/vendor/mypyc/irbuild/statement.py +0 -1017
  1293. jaclang/vendor/mypyc/irbuild/targets.py +0 -57
  1294. jaclang/vendor/mypyc/irbuild/util.py +0 -189
  1295. jaclang/vendor/mypyc/irbuild/visitor.py +0 -401
  1296. jaclang/vendor/mypyc/irbuild/vtable.py +0 -82
  1297. jaclang/vendor/mypyc/lib-rt/CPy.h +0 -638
  1298. jaclang/vendor/mypyc/lib-rt/bytes_ops.c +0 -143
  1299. jaclang/vendor/mypyc/lib-rt/dict_ops.c +0 -446
  1300. jaclang/vendor/mypyc/lib-rt/exc_ops.c +0 -259
  1301. jaclang/vendor/mypyc/lib-rt/float_ops.c +0 -192
  1302. jaclang/vendor/mypyc/lib-rt/generic_ops.c +0 -64
  1303. jaclang/vendor/mypyc/lib-rt/getargs.c +0 -450
  1304. jaclang/vendor/mypyc/lib-rt/getargsfast.c +0 -569
  1305. jaclang/vendor/mypyc/lib-rt/init.c +0 -13
  1306. jaclang/vendor/mypyc/lib-rt/int_ops.c +0 -803
  1307. jaclang/vendor/mypyc/lib-rt/list_ops.c +0 -335
  1308. jaclang/vendor/mypyc/lib-rt/misc_ops.c +0 -942
  1309. jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +0 -18
  1310. jaclang/vendor/mypyc/lib-rt/mypyc_util.h +0 -118
  1311. jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +0 -497
  1312. jaclang/vendor/mypyc/lib-rt/pythonsupport.h +0 -533
  1313. jaclang/vendor/mypyc/lib-rt/set_ops.c +0 -17
  1314. jaclang/vendor/mypyc/lib-rt/setup.py +0 -70
  1315. jaclang/vendor/mypyc/lib-rt/str_ops.c +0 -241
  1316. jaclang/vendor/mypyc/lib-rt/test_capi.cc +0 -585
  1317. jaclang/vendor/mypyc/lib-rt/tuple_ops.c +0 -61
  1318. jaclang/vendor/mypyc/lower/__init__.py +0 -0
  1319. jaclang/vendor/mypyc/lower/int_ops.py +0 -113
  1320. jaclang/vendor/mypyc/lower/list_ops.py +0 -45
  1321. jaclang/vendor/mypyc/lower/misc_ops.py +0 -12
  1322. jaclang/vendor/mypyc/lower/registry.py +0 -26
  1323. jaclang/vendor/mypyc/namegen.py +0 -115
  1324. jaclang/vendor/mypyc/options.py +0 -32
  1325. jaclang/vendor/mypyc/primitives/__init__.py +0 -0
  1326. jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -101
  1327. jaclang/vendor/mypyc/primitives/dict_ops.py +0 -325
  1328. jaclang/vendor/mypyc/primitives/exc_ops.py +0 -101
  1329. jaclang/vendor/mypyc/primitives/float_ops.py +0 -168
  1330. jaclang/vendor/mypyc/primitives/generic_ops.py +0 -384
  1331. jaclang/vendor/mypyc/primitives/int_ops.py +0 -303
  1332. jaclang/vendor/mypyc/primitives/list_ops.py +0 -310
  1333. jaclang/vendor/mypyc/primitives/misc_ops.py +0 -267
  1334. jaclang/vendor/mypyc/primitives/registry.py +0 -360
  1335. jaclang/vendor/mypyc/primitives/set_ops.py +0 -121
  1336. jaclang/vendor/mypyc/primitives/str_ops.py +0 -229
  1337. jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -83
  1338. jaclang/vendor/mypyc/rt_subtype.py +0 -77
  1339. jaclang/vendor/mypyc/sametype.py +0 -83
  1340. jaclang/vendor/mypyc/subtype.py +0 -88
  1341. jaclang/vendor/mypyc/test/__init__.py +0 -0
  1342. jaclang/vendor/mypyc/test/config.py +0 -13
  1343. jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -46
  1344. jaclang/vendor/mypyc/test/test_analysis.py +0 -77
  1345. jaclang/vendor/mypyc/test/test_cheader.py +0 -53
  1346. jaclang/vendor/mypyc/test/test_commandline.py +0 -82
  1347. jaclang/vendor/mypyc/test/test_emit.py +0 -69
  1348. jaclang/vendor/mypyc/test/test_emitclass.py +0 -35
  1349. jaclang/vendor/mypyc/test/test_emitfunc.py +0 -928
  1350. jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -60
  1351. jaclang/vendor/mypyc/test/test_exceptions.py +0 -56
  1352. jaclang/vendor/mypyc/test/test_external.py +0 -49
  1353. jaclang/vendor/mypyc/test/test_irbuild.py +0 -87
  1354. jaclang/vendor/mypyc/test/test_ircheck.py +0 -199
  1355. jaclang/vendor/mypyc/test/test_literals.py +0 -90
  1356. jaclang/vendor/mypyc/test/test_lowering.py +0 -56
  1357. jaclang/vendor/mypyc/test/test_namegen.py +0 -48
  1358. jaclang/vendor/mypyc/test/test_optimizations.py +0 -68
  1359. jaclang/vendor/mypyc/test/test_pprint.py +0 -42
  1360. jaclang/vendor/mypyc/test/test_rarray.py +0 -48
  1361. jaclang/vendor/mypyc/test/test_refcount.py +0 -59
  1362. jaclang/vendor/mypyc/test/test_run.py +0 -426
  1363. jaclang/vendor/mypyc/test/test_serialization.py +0 -108
  1364. jaclang/vendor/mypyc/test/test_struct.py +0 -112
  1365. jaclang/vendor/mypyc/test/test_tuplename.py +0 -33
  1366. jaclang/vendor/mypyc/test/test_typeops.py +0 -97
  1367. jaclang/vendor/mypyc/test/testutil.py +0 -283
  1368. jaclang/vendor/mypyc/test-data/alwaysdefined.test +0 -732
  1369. jaclang/vendor/mypyc/test-data/analysis.test +0 -470
  1370. jaclang/vendor/mypyc/test-data/commandline.test +0 -245
  1371. jaclang/vendor/mypyc/test-data/driver/driver.py +0 -48
  1372. jaclang/vendor/mypyc/test-data/exceptions-freq.test +0 -125
  1373. jaclang/vendor/mypyc/test-data/exceptions.test +0 -699
  1374. jaclang/vendor/mypyc/test-data/fixtures/ir.py +0 -373
  1375. jaclang/vendor/mypyc/test-data/fixtures/testutil.py +0 -103
  1376. jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +0 -169
  1377. jaclang/vendor/mypyc/test-data/irbuild-any.test +0 -236
  1378. jaclang/vendor/mypyc/test-data/irbuild-basic.test +0 -3399
  1379. jaclang/vendor/mypyc/test-data/irbuild-bool.test +0 -424
  1380. jaclang/vendor/mypyc/test-data/irbuild-bytes.test +0 -181
  1381. jaclang/vendor/mypyc/test-data/irbuild-classes.test +0 -1302
  1382. jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +0 -480
  1383. jaclang/vendor/mypyc/test-data/irbuild-dict.test +0 -584
  1384. jaclang/vendor/mypyc/test-data/irbuild-dunders.test +0 -215
  1385. jaclang/vendor/mypyc/test-data/irbuild-float.test +0 -497
  1386. jaclang/vendor/mypyc/test-data/irbuild-generics.test +0 -150
  1387. jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +0 -437
  1388. jaclang/vendor/mypyc/test-data/irbuild-i16.test +0 -526
  1389. jaclang/vendor/mypyc/test-data/irbuild-i32.test +0 -598
  1390. jaclang/vendor/mypyc/test-data/irbuild-i64.test +0 -2144
  1391. jaclang/vendor/mypyc/test-data/irbuild-int.test +0 -194
  1392. jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +0 -109
  1393. jaclang/vendor/mypyc/test-data/irbuild-lists.test +0 -513
  1394. jaclang/vendor/mypyc/test-data/irbuild-match.test +0 -1717
  1395. jaclang/vendor/mypyc/test-data/irbuild-math.test +0 -64
  1396. jaclang/vendor/mypyc/test-data/irbuild-nested.test +0 -807
  1397. jaclang/vendor/mypyc/test-data/irbuild-optional.test +0 -536
  1398. jaclang/vendor/mypyc/test-data/irbuild-set.test +0 -806
  1399. jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +0 -257
  1400. jaclang/vendor/mypyc/test-data/irbuild-statements.test +0 -1060
  1401. jaclang/vendor/mypyc/test-data/irbuild-str.test +0 -312
  1402. jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +0 -12
  1403. jaclang/vendor/mypyc/test-data/irbuild-try.test +0 -523
  1404. jaclang/vendor/mypyc/test-data/irbuild-tuple.test +0 -386
  1405. jaclang/vendor/mypyc/test-data/irbuild-u8.test +0 -543
  1406. jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +0 -241
  1407. jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +0 -153
  1408. jaclang/vendor/mypyc/test-data/lowering-int.test +0 -377
  1409. jaclang/vendor/mypyc/test-data/lowering-list.test +0 -33
  1410. jaclang/vendor/mypyc/test-data/opt-copy-propagation.test +0 -400
  1411. jaclang/vendor/mypyc/test-data/opt-flag-elimination.test +0 -296
  1412. jaclang/vendor/mypyc/test-data/refcount.test +0 -1482
  1413. jaclang/vendor/mypyc/test-data/run-async.test +0 -173
  1414. jaclang/vendor/mypyc/test-data/run-attrs.test +0 -318
  1415. jaclang/vendor/mypyc/test-data/run-bench.test +0 -196
  1416. jaclang/vendor/mypyc/test-data/run-bools.test +0 -229
  1417. jaclang/vendor/mypyc/test-data/run-bytes.test +0 -302
  1418. jaclang/vendor/mypyc/test-data/run-classes.test +0 -2505
  1419. jaclang/vendor/mypyc/test-data/run-dicts.test +0 -334
  1420. jaclang/vendor/mypyc/test-data/run-dunders.test +0 -945
  1421. jaclang/vendor/mypyc/test-data/run-exceptions.test +0 -448
  1422. jaclang/vendor/mypyc/test-data/run-floats.test +0 -516
  1423. jaclang/vendor/mypyc/test-data/run-functions.test +0 -1310
  1424. jaclang/vendor/mypyc/test-data/run-generators.test +0 -682
  1425. jaclang/vendor/mypyc/test-data/run-i16.test +0 -338
  1426. jaclang/vendor/mypyc/test-data/run-i32.test +0 -336
  1427. jaclang/vendor/mypyc/test-data/run-i64.test +0 -1519
  1428. jaclang/vendor/mypyc/test-data/run-imports.test +0 -265
  1429. jaclang/vendor/mypyc/test-data/run-integers.test +0 -540
  1430. jaclang/vendor/mypyc/test-data/run-lists.test +0 -411
  1431. jaclang/vendor/mypyc/test-data/run-loops.test +0 -485
  1432. jaclang/vendor/mypyc/test-data/run-match.test +0 -283
  1433. jaclang/vendor/mypyc/test-data/run-math.test +0 -106
  1434. jaclang/vendor/mypyc/test-data/run-misc.test +0 -1170
  1435. jaclang/vendor/mypyc/test-data/run-multimodule.test +0 -887
  1436. jaclang/vendor/mypyc/test-data/run-mypy-sim.test +0 -138
  1437. jaclang/vendor/mypyc/test-data/run-primitives.test +0 -375
  1438. jaclang/vendor/mypyc/test-data/run-python37.test +0 -159
  1439. jaclang/vendor/mypyc/test-data/run-python38.test +0 -88
  1440. jaclang/vendor/mypyc/test-data/run-sets.test +0 -150
  1441. jaclang/vendor/mypyc/test-data/run-singledispatch.test +0 -698
  1442. jaclang/vendor/mypyc/test-data/run-strings.test +0 -641
  1443. jaclang/vendor/mypyc/test-data/run-traits.test +0 -411
  1444. jaclang/vendor/mypyc/test-data/run-tuples.test +0 -258
  1445. jaclang/vendor/mypyc/test-data/run-u8.test +0 -303
  1446. jaclang/vendor/mypyc/transform/__init__.py +0 -0
  1447. jaclang/vendor/mypyc/transform/copy_propagation.py +0 -94
  1448. jaclang/vendor/mypyc/transform/exceptions.py +0 -182
  1449. jaclang/vendor/mypyc/transform/flag_elimination.py +0 -108
  1450. jaclang/vendor/mypyc/transform/ir_transform.py +0 -368
  1451. jaclang/vendor/mypyc/transform/lower.py +0 -33
  1452. jaclang/vendor/mypyc/transform/refcount.py +0 -294
  1453. jaclang/vendor/mypyc/transform/uninit.py +0 -190
  1454. jaclang/vendor/typing_extensions-4.12.2.dist-info/LICENSE +0 -279
  1455. jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA +0 -67
  1456. jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD +0 -5
  1457. jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL +0 -4
  1458. jaclang/vendor/typing_extensions.py +0 -3641
  1459. jaclang-0.7.33.dist-info/RECORD +0 -1562
  1460. /jaclang/{vendor/mypy/dmypy → compiler/larkparse}/__init__.py +0 -0
  1461. /jaclang/{tests → compiler/passes/main/tests}/fixtures/access_checker.jac +0 -0
  1462. /jaclang/{vendor/mypy/plugins/__init__.py → langserve/tests/fixtures/deep_check_crash.jac} +0 -0
  1463. /jaclang/{vendor/mypy/server/__init__.py → langserve/tests/server_test/code_test.py} +0 -0
  1464. /jaclang/{plugin → runtimelib}/tests/__init__.py +0 -0
  1465. /jaclang/{plugin → runtimelib}/tests/fixtures/traversing_save.jac +0 -0
  1466. /jaclang/{vendor/mypy/test → tests}/__init__.py +0 -0
  1467. /jaclang/{vendor/mypy/test/meta → tests/fixtures}/__init__.py +0 -0
  1468. /jaclang/tests/fixtures/{architype_def_bug.jac → archetype_def_bug.jac} +0 -0
  1469. /jaclang/vendor/{mypy/typeshed/stdlib/concurrent/__init__.pyi → attrs-25.3.0.dist-info/REQUESTED} +0 -0
  1470. /jaclang/vendor/{attrs-23.2.0.dist-info → attrs-25.3.0.dist-info}/licenses/LICENSE +0 -0
  1471. /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/__init__.pyi → cattrs-24.1.3.dist-info/REQUESTED} +0 -0
  1472. /jaclang/vendor/{cattrs-23.2.3.dist-info → cattrs-24.1.3.dist-info}/licenses/LICENSE +0 -0
  1473. /jaclang/vendor/{mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi → lark-1.2.2.dist-info/REQUESTED} +0 -0
  1474. /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/entry_points.txt +0 -0
  1475. /jaclang/vendor/{lark-1.1.9.dist-info → lark-1.2.2.dist-info}/top_level.txt +0 -0
  1476. /jaclang/vendor/{mypy/typeshed/stdlib/email/mime/__init__.pyi → lsprotocol-2023.0.1.dist-info/REQUESTED} +0 -0
  1477. /jaclang/vendor/lsprotocol-2023.0.1.dist-info/{LICENSE → licenses/LICENSE} +0 -0
  1478. /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/__init__.pyi → pluggy-1.5.0.dist-info/REQUESTED} +0 -0
  1479. /jaclang/vendor/pluggy-1.5.0.dist-info/{LICENSE → licenses/LICENSE} +0 -0
  1480. /jaclang/vendor/{mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi → pygls-1.3.1.dist-info/REQUESTED} +0 -0
  1481. {jaclang-0.7.33.dist-info → jaclang-0.8.0.dist-info}/entry_points.txt +0 -0
@@ -1,1363 +0,0 @@
1
- """Type checking of attribute access"""
2
-
3
- from __future__ import annotations
4
-
5
- from typing import TYPE_CHECKING, Callable, Sequence, cast
6
-
7
- from mypy import meet, message_registry, subtypes
8
- from mypy.erasetype import erase_typevars
9
- from mypy.expandtype import (
10
- expand_self_type,
11
- expand_type_by_instance,
12
- freshen_all_functions_type_vars,
13
- )
14
- from mypy.maptype import map_instance_to_supertype
15
- from mypy.messages import MessageBuilder
16
- from mypy.nodes import (
17
- ARG_POS,
18
- ARG_STAR,
19
- ARG_STAR2,
20
- SYMBOL_FUNCBASE_TYPES,
21
- Context,
22
- Decorator,
23
- FuncBase,
24
- FuncDef,
25
- IndexExpr,
26
- MypyFile,
27
- NameExpr,
28
- OverloadedFuncDef,
29
- SymbolNode,
30
- SymbolTable,
31
- TempNode,
32
- TypeAlias,
33
- TypeInfo,
34
- TypeVarExpr,
35
- Var,
36
- is_final_node,
37
- )
38
- from mypy.plugin import AttributeContext
39
- from mypy.typeops import (
40
- bind_self,
41
- class_callable,
42
- erase_to_bound,
43
- function_type,
44
- get_type_vars,
45
- make_simplified_union,
46
- supported_self_type,
47
- tuple_fallback,
48
- type_object_type_from_function,
49
- )
50
- from mypy.types import (
51
- ENUM_REMOVED_PROPS,
52
- AnyType,
53
- CallableType,
54
- DeletedType,
55
- FunctionLike,
56
- Instance,
57
- LiteralType,
58
- NoneType,
59
- Overloaded,
60
- ParamSpecType,
61
- PartialType,
62
- ProperType,
63
- TupleType,
64
- Type,
65
- TypedDictType,
66
- TypeOfAny,
67
- TypeType,
68
- TypeVarLikeType,
69
- TypeVarTupleType,
70
- TypeVarType,
71
- UnionType,
72
- get_proper_type,
73
- )
74
- from mypy.typetraverser import TypeTraverserVisitor
75
-
76
- if TYPE_CHECKING: # import for forward declaration only
77
- import mypy.checker
78
-
79
- from mypy import state
80
-
81
-
82
- class MemberContext:
83
- """Information and objects needed to type check attribute access.
84
-
85
- Look at the docstring of analyze_member_access for more information.
86
- """
87
-
88
- def __init__(
89
- self,
90
- is_lvalue: bool,
91
- is_super: bool,
92
- is_operator: bool,
93
- original_type: Type,
94
- context: Context,
95
- msg: MessageBuilder,
96
- chk: mypy.checker.TypeChecker,
97
- self_type: Type | None,
98
- module_symbol_table: SymbolTable | None = None,
99
- no_deferral: bool = False,
100
- is_self: bool = False,
101
- ) -> None:
102
- self.is_lvalue = is_lvalue
103
- self.is_super = is_super
104
- self.is_operator = is_operator
105
- self.original_type = original_type
106
- self.self_type = self_type or original_type
107
- self.context = context # Error context
108
- self.msg = msg
109
- self.chk = chk
110
- self.module_symbol_table = module_symbol_table
111
- self.no_deferral = no_deferral
112
- self.is_self = is_self
113
-
114
- def named_type(self, name: str) -> Instance:
115
- return self.chk.named_type(name)
116
-
117
- def not_ready_callback(self, name: str, context: Context) -> None:
118
- self.chk.handle_cannot_determine_type(name, context)
119
-
120
- def copy_modified(
121
- self,
122
- *,
123
- messages: MessageBuilder | None = None,
124
- self_type: Type | None = None,
125
- is_lvalue: bool | None = None,
126
- original_type: Type | None = None,
127
- ) -> MemberContext:
128
- mx = MemberContext(
129
- self.is_lvalue,
130
- self.is_super,
131
- self.is_operator,
132
- self.original_type,
133
- self.context,
134
- self.msg,
135
- self.chk,
136
- self.self_type,
137
- self.module_symbol_table,
138
- self.no_deferral,
139
- )
140
- if messages is not None:
141
- mx.msg = messages
142
- if self_type is not None:
143
- mx.self_type = self_type
144
- if is_lvalue is not None:
145
- mx.is_lvalue = is_lvalue
146
- if original_type is not None:
147
- mx.original_type = original_type
148
- return mx
149
-
150
-
151
- def analyze_member_access(
152
- name: str,
153
- typ: Type,
154
- context: Context,
155
- is_lvalue: bool,
156
- is_super: bool,
157
- is_operator: bool,
158
- msg: MessageBuilder,
159
- *,
160
- original_type: Type,
161
- chk: mypy.checker.TypeChecker,
162
- override_info: TypeInfo | None = None,
163
- in_literal_context: bool = False,
164
- self_type: Type | None = None,
165
- module_symbol_table: SymbolTable | None = None,
166
- no_deferral: bool = False,
167
- is_self: bool = False,
168
- ) -> Type:
169
- """Return the type of attribute 'name' of 'typ'.
170
-
171
- The actual implementation is in '_analyze_member_access' and this docstring
172
- also applies to it.
173
-
174
- This is a general operation that supports various different variations:
175
-
176
- 1. lvalue or non-lvalue access (setter or getter access)
177
- 2. supertype access when using super() (is_super == True and
178
- 'override_info' should refer to the supertype)
179
-
180
- 'original_type' is the most precise inferred or declared type of the base object
181
- that we have available. When looking for an attribute of 'typ', we may perform
182
- recursive calls targeting the fallback type, and 'typ' may become some supertype
183
- of 'original_type'. 'original_type' is always preserved as the 'typ' type used in
184
- the initial, non-recursive call. The 'self_type' is a component of 'original_type'
185
- to which generic self should be bound (a narrower type that has a fallback to instance).
186
- Currently this is used only for union types.
187
-
188
- 'module_symbol_table' is passed to this function if 'typ' is actually a module
189
- and we want to keep track of the available attributes of the module (since they
190
- are not available via the type object directly)
191
- """
192
- mx = MemberContext(
193
- is_lvalue,
194
- is_super,
195
- is_operator,
196
- original_type,
197
- context,
198
- msg,
199
- chk=chk,
200
- self_type=self_type,
201
- module_symbol_table=module_symbol_table,
202
- no_deferral=no_deferral,
203
- is_self=is_self,
204
- )
205
- result = _analyze_member_access(name, typ, mx, override_info)
206
- possible_literal = get_proper_type(result)
207
- if (
208
- in_literal_context
209
- and isinstance(possible_literal, Instance)
210
- and possible_literal.last_known_value is not None
211
- ):
212
- return possible_literal.last_known_value
213
- else:
214
- return result
215
-
216
-
217
- def _analyze_member_access(
218
- name: str, typ: Type, mx: MemberContext, override_info: TypeInfo | None = None
219
- ) -> Type:
220
- # TODO: This and following functions share some logic with subtypes.find_member;
221
- # consider refactoring.
222
- typ = get_proper_type(typ)
223
- if isinstance(typ, Instance):
224
- return analyze_instance_member_access(name, typ, mx, override_info)
225
- elif isinstance(typ, AnyType):
226
- # The base object has dynamic type.
227
- return AnyType(TypeOfAny.from_another_any, source_any=typ)
228
- elif isinstance(typ, UnionType):
229
- return analyze_union_member_access(name, typ, mx)
230
- elif isinstance(typ, FunctionLike) and typ.is_type_obj():
231
- return analyze_type_callable_member_access(name, typ, mx)
232
- elif isinstance(typ, TypeType):
233
- return analyze_type_type_member_access(name, typ, mx, override_info)
234
- elif isinstance(typ, TupleType):
235
- # Actually look up from the fallback instance type.
236
- return _analyze_member_access(name, tuple_fallback(typ), mx, override_info)
237
- elif isinstance(typ, (LiteralType, FunctionLike)):
238
- # Actually look up from the fallback instance type.
239
- return _analyze_member_access(name, typ.fallback, mx, override_info)
240
- elif isinstance(typ, TypedDictType):
241
- return analyze_typeddict_access(name, typ, mx, override_info)
242
- elif isinstance(typ, NoneType):
243
- return analyze_none_member_access(name, typ, mx)
244
- elif isinstance(typ, TypeVarLikeType):
245
- if isinstance(typ, TypeVarType) and typ.values:
246
- return _analyze_member_access(
247
- name, make_simplified_union(typ.values), mx, override_info
248
- )
249
- return _analyze_member_access(name, typ.upper_bound, mx, override_info)
250
- elif isinstance(typ, DeletedType):
251
- mx.msg.deleted_as_rvalue(typ, mx.context)
252
- return AnyType(TypeOfAny.from_error)
253
- return report_missing_attribute(mx.original_type, typ, name, mx)
254
-
255
-
256
- def may_be_awaitable_attribute(
257
- name: str, typ: Type, mx: MemberContext, override_info: TypeInfo | None = None
258
- ) -> bool:
259
- """Check if the given type has the attribute when awaited."""
260
- if mx.chk.checking_missing_await:
261
- # Avoid infinite recursion.
262
- return False
263
- with mx.chk.checking_await_set(), mx.msg.filter_errors() as local_errors:
264
- aw_type = mx.chk.get_precise_awaitable_type(typ, local_errors)
265
- if aw_type is None:
266
- return False
267
- _ = _analyze_member_access(name, aw_type, mx, override_info)
268
- return not local_errors.has_new_errors()
269
-
270
-
271
- def report_missing_attribute(
272
- original_type: Type,
273
- typ: Type,
274
- name: str,
275
- mx: MemberContext,
276
- override_info: TypeInfo | None = None,
277
- ) -> Type:
278
- error_code = mx.msg.has_no_attr(original_type, typ, name, mx.context, mx.module_symbol_table)
279
- if not mx.msg.prefer_simple_messages():
280
- if may_be_awaitable_attribute(name, typ, mx, override_info):
281
- mx.msg.possible_missing_await(mx.context, error_code)
282
- return AnyType(TypeOfAny.from_error)
283
-
284
-
285
- # The several functions that follow implement analyze_member_access for various
286
- # types and aren't documented individually.
287
-
288
-
289
- def analyze_instance_member_access(
290
- name: str, typ: Instance, mx: MemberContext, override_info: TypeInfo | None
291
- ) -> Type:
292
- if name == "__init__" and not mx.is_super:
293
- # Accessing __init__ in statically typed code would compromise
294
- # type safety unless used via super().
295
- mx.msg.fail(message_registry.CANNOT_ACCESS_INIT, mx.context)
296
- return AnyType(TypeOfAny.from_error)
297
-
298
- # The base object has an instance type.
299
-
300
- info = typ.type
301
- if override_info:
302
- info = override_info
303
-
304
- if (
305
- state.find_occurrences
306
- and info.name == state.find_occurrences[0]
307
- and name == state.find_occurrences[1]
308
- ):
309
- mx.msg.note("Occurrence of '{}.{}'".format(*state.find_occurrences), mx.context)
310
-
311
- # Look up the member. First look up the method dictionary.
312
- method = info.get_method(name)
313
- if method and not isinstance(method, Decorator):
314
- if mx.is_super:
315
- validate_super_call(method, mx)
316
-
317
- if method.is_property:
318
- assert isinstance(method, OverloadedFuncDef)
319
- first_item = method.items[0]
320
- assert isinstance(first_item, Decorator)
321
- return analyze_var(name, first_item.var, typ, info, mx)
322
- if mx.is_lvalue:
323
- mx.msg.cant_assign_to_method(mx.context)
324
- if not isinstance(method, OverloadedFuncDef):
325
- signature = function_type(method, mx.named_type("builtins.function"))
326
- else:
327
- if method.type is None:
328
- # Overloads may be not ready if they are decorated. Handle this in same
329
- # manner as we would handle a regular decorated function: defer if possible.
330
- if not mx.no_deferral and method.items:
331
- mx.not_ready_callback(method.name, mx.context)
332
- return AnyType(TypeOfAny.special_form)
333
- assert isinstance(method.type, Overloaded)
334
- signature = method.type
335
- signature = freshen_all_functions_type_vars(signature)
336
- if not method.is_static:
337
- # TODO: use proper treatment of special methods on unions instead
338
- # of this hack here and below (i.e. mx.self_type).
339
- dispatched_type = meet.meet_types(mx.original_type, typ)
340
- signature = check_self_arg(
341
- signature, dispatched_type, method.is_class, mx.context, name, mx.msg
342
- )
343
- signature = bind_self(signature, mx.self_type, is_classmethod=method.is_class)
344
- # TODO: should we skip these steps for static methods as well?
345
- # Since generic static methods should not be allowed.
346
- typ = map_instance_to_supertype(typ, method.info)
347
- member_type = expand_type_by_instance(signature, typ)
348
- freeze_all_type_vars(member_type)
349
- return member_type
350
- else:
351
- # Not a method.
352
- return analyze_member_var_access(name, typ, info, mx)
353
-
354
-
355
- def validate_super_call(node: FuncBase, mx: MemberContext) -> None:
356
- unsafe_super = False
357
- if isinstance(node, FuncDef) and node.is_trivial_body:
358
- unsafe_super = True
359
- impl = node
360
- elif isinstance(node, OverloadedFuncDef):
361
- if node.impl:
362
- impl = node.impl if isinstance(node.impl, FuncDef) else node.impl.func
363
- unsafe_super = impl.is_trivial_body
364
- if unsafe_super:
365
- mx.msg.unsafe_super(node.name, node.info.name, mx.context)
366
-
367
-
368
- def analyze_type_callable_member_access(name: str, typ: FunctionLike, mx: MemberContext) -> Type:
369
- # Class attribute.
370
- # TODO super?
371
- ret_type = typ.items[0].ret_type
372
- assert isinstance(ret_type, ProperType)
373
- if isinstance(ret_type, TupleType):
374
- ret_type = tuple_fallback(ret_type)
375
- if isinstance(ret_type, TypedDictType):
376
- ret_type = ret_type.fallback
377
- if isinstance(ret_type, Instance):
378
- if not mx.is_operator:
379
- # When Python sees an operator (eg `3 == 4`), it automatically translates that
380
- # into something like `int.__eq__(3, 4)` instead of `(3).__eq__(4)` as an
381
- # optimization.
382
- #
383
- # While it normally it doesn't matter which of the two versions are used, it
384
- # does cause inconsistencies when working with classes. For example, translating
385
- # `int == int` to `int.__eq__(int)` would not work since `int.__eq__` is meant to
386
- # compare two int _instances_. What we really want is `type(int).__eq__`, which
387
- # is meant to compare two types or classes.
388
- #
389
- # This check makes sure that when we encounter an operator, we skip looking up
390
- # the corresponding method in the current instance to avoid this edge case.
391
- # See https://github.com/python/mypy/pull/1787 for more info.
392
- # TODO: do not rely on same type variables being present in all constructor overloads.
393
- result = analyze_class_attribute_access(
394
- ret_type, name, mx, original_vars=typ.items[0].variables, mcs_fallback=typ.fallback
395
- )
396
- if result:
397
- return result
398
- # Look up from the 'type' type.
399
- return _analyze_member_access(name, typ.fallback, mx)
400
- else:
401
- assert False, f"Unexpected type {ret_type!r}"
402
-
403
-
404
- def analyze_type_type_member_access(
405
- name: str, typ: TypeType, mx: MemberContext, override_info: TypeInfo | None
406
- ) -> Type:
407
- # Similar to analyze_type_callable_attribute_access.
408
- item = None
409
- fallback = mx.named_type("builtins.type")
410
- if isinstance(typ.item, Instance):
411
- item = typ.item
412
- elif isinstance(typ.item, AnyType):
413
- with mx.msg.filter_errors():
414
- return _analyze_member_access(name, fallback, mx, override_info)
415
- elif isinstance(typ.item, TypeVarType):
416
- upper_bound = get_proper_type(typ.item.upper_bound)
417
- if isinstance(upper_bound, Instance):
418
- item = upper_bound
419
- elif isinstance(upper_bound, UnionType):
420
- return _analyze_member_access(
421
- name,
422
- TypeType.make_normalized(upper_bound, line=typ.line, column=typ.column),
423
- mx,
424
- override_info,
425
- )
426
- elif isinstance(upper_bound, TupleType):
427
- item = tuple_fallback(upper_bound)
428
- elif isinstance(upper_bound, AnyType):
429
- with mx.msg.filter_errors():
430
- return _analyze_member_access(name, fallback, mx, override_info)
431
- elif isinstance(typ.item, TupleType):
432
- item = tuple_fallback(typ.item)
433
- elif isinstance(typ.item, FunctionLike) and typ.item.is_type_obj():
434
- item = typ.item.fallback
435
- elif isinstance(typ.item, TypeType):
436
- # Access member on metaclass object via Type[Type[C]]
437
- if isinstance(typ.item.item, Instance):
438
- item = typ.item.item.type.metaclass_type
439
- ignore_messages = False
440
-
441
- if item is not None:
442
- fallback = item.type.metaclass_type or fallback
443
-
444
- if item and not mx.is_operator:
445
- # See comment above for why operators are skipped
446
- result = analyze_class_attribute_access(
447
- item, name, mx, mcs_fallback=fallback, override_info=override_info
448
- )
449
- if result:
450
- if not (isinstance(get_proper_type(result), AnyType) and item.type.fallback_to_any):
451
- return result
452
- else:
453
- # We don't want errors on metaclass lookup for classes with Any fallback
454
- ignore_messages = True
455
-
456
- with mx.msg.filter_errors(filter_errors=ignore_messages):
457
- return _analyze_member_access(name, fallback, mx, override_info)
458
-
459
-
460
- def analyze_union_member_access(name: str, typ: UnionType, mx: MemberContext) -> Type:
461
- with mx.msg.disable_type_names():
462
- results = []
463
- for subtype in typ.relevant_items():
464
- # Self types should be bound to every individual item of a union.
465
- item_mx = mx.copy_modified(self_type=subtype)
466
- results.append(_analyze_member_access(name, subtype, item_mx))
467
- return make_simplified_union(results)
468
-
469
-
470
- def analyze_none_member_access(name: str, typ: NoneType, mx: MemberContext) -> Type:
471
- if name == "__bool__":
472
- literal_false = LiteralType(False, fallback=mx.named_type("builtins.bool"))
473
- return CallableType(
474
- arg_types=[],
475
- arg_kinds=[],
476
- arg_names=[],
477
- ret_type=literal_false,
478
- fallback=mx.named_type("builtins.function"),
479
- )
480
- else:
481
- return _analyze_member_access(name, mx.named_type("builtins.object"), mx)
482
-
483
-
484
- def analyze_member_var_access(
485
- name: str, itype: Instance, info: TypeInfo, mx: MemberContext
486
- ) -> Type:
487
- """Analyse attribute access that does not target a method.
488
-
489
- This is logically part of analyze_member_access and the arguments are similar.
490
-
491
- original_type is the type of E in the expression E.var
492
- """
493
- # It was not a method. Try looking up a variable.
494
- v = lookup_member_var_or_accessor(info, name, mx.is_lvalue)
495
-
496
- vv = v
497
- if isinstance(vv, Decorator):
498
- # The associated Var node of a decorator contains the type.
499
- v = vv.var
500
- if mx.is_super:
501
- validate_super_call(vv.func, mx)
502
-
503
- if isinstance(vv, TypeInfo):
504
- # If the associated variable is a TypeInfo synthesize a Var node for
505
- # the purposes of type checking. This enables us to type check things
506
- # like accessing class attributes on an inner class.
507
- v = Var(name, type=type_object_type(vv, mx.named_type))
508
- v.info = info
509
-
510
- if isinstance(vv, TypeAlias):
511
- # Similar to the above TypeInfo case, we allow using
512
- # qualified type aliases in runtime context if it refers to an
513
- # instance type. For example:
514
- # class C:
515
- # A = List[int]
516
- # x = C.A() <- this is OK
517
- typ = mx.chk.expr_checker.alias_type_in_runtime_context(
518
- vv, ctx=mx.context, alias_definition=mx.is_lvalue
519
- )
520
- v = Var(name, type=typ)
521
- v.info = info
522
-
523
- if isinstance(v, Var):
524
- implicit = info[name].implicit
525
-
526
- # An assignment to final attribute is always an error,
527
- # independently of types.
528
- if mx.is_lvalue and not mx.chk.get_final_context():
529
- check_final_member(name, info, mx.msg, mx.context)
530
-
531
- return analyze_var(name, v, itype, info, mx, implicit=implicit)
532
- elif isinstance(v, FuncDef):
533
- assert False, "Did not expect a function"
534
- elif isinstance(v, MypyFile):
535
- mx.chk.module_refs.add(v.fullname)
536
- return mx.chk.expr_checker.module_type(v)
537
- elif (
538
- not v
539
- and name not in ["__getattr__", "__setattr__", "__getattribute__"]
540
- and not mx.is_operator
541
- and mx.module_symbol_table is None
542
- ):
543
- # Above we skip ModuleType.__getattr__ etc. if we have a
544
- # module symbol table, since the symbol table allows precise
545
- # checking.
546
- if not mx.is_lvalue:
547
- for method_name in ("__getattribute__", "__getattr__"):
548
- method = info.get_method(method_name)
549
-
550
- # __getattribute__ is defined on builtins.object and returns Any, so without
551
- # the guard this search will always find object.__getattribute__ and conclude
552
- # that the attribute exists
553
- if method and method.info.fullname != "builtins.object":
554
- bound_method = analyze_decorator_or_funcbase_access(
555
- defn=method,
556
- itype=itype,
557
- info=info,
558
- self_type=mx.self_type,
559
- name=method_name,
560
- mx=mx,
561
- )
562
- typ = map_instance_to_supertype(itype, method.info)
563
- getattr_type = get_proper_type(expand_type_by_instance(bound_method, typ))
564
- if isinstance(getattr_type, CallableType):
565
- result = getattr_type.ret_type
566
- else:
567
- result = getattr_type
568
-
569
- # Call the attribute hook before returning.
570
- fullname = f"{method.info.fullname}.{name}"
571
- hook = mx.chk.plugin.get_attribute_hook(fullname)
572
- if hook:
573
- result = hook(
574
- AttributeContext(
575
- get_proper_type(mx.original_type), result, mx.context, mx.chk
576
- )
577
- )
578
- return result
579
- else:
580
- setattr_meth = info.get_method("__setattr__")
581
- if setattr_meth and setattr_meth.info.fullname != "builtins.object":
582
- bound_type = analyze_decorator_or_funcbase_access(
583
- defn=setattr_meth,
584
- itype=itype,
585
- info=info,
586
- self_type=mx.self_type,
587
- name=name,
588
- mx=mx.copy_modified(is_lvalue=False),
589
- )
590
- typ = map_instance_to_supertype(itype, setattr_meth.info)
591
- setattr_type = get_proper_type(expand_type_by_instance(bound_type, typ))
592
- if isinstance(setattr_type, CallableType) and len(setattr_type.arg_types) > 0:
593
- return setattr_type.arg_types[-1]
594
-
595
- if itype.type.fallback_to_any:
596
- return AnyType(TypeOfAny.special_form)
597
-
598
- # Could not find the member.
599
- if itype.extra_attrs and name in itype.extra_attrs.attrs:
600
- # For modules use direct symbol table lookup.
601
- if not itype.extra_attrs.mod_name:
602
- return itype.extra_attrs.attrs[name]
603
-
604
- if mx.is_super:
605
- mx.msg.undefined_in_superclass(name, mx.context)
606
- return AnyType(TypeOfAny.from_error)
607
- else:
608
- ret = report_missing_attribute(mx.original_type, itype, name, mx)
609
- # Avoid paying double jeopardy if we can't find the member due to --no-implicit-reexport
610
- if (
611
- mx.module_symbol_table is not None
612
- and name in mx.module_symbol_table
613
- and not mx.module_symbol_table[name].module_public
614
- ):
615
- v = mx.module_symbol_table[name].node
616
- e = NameExpr(name)
617
- e.set_line(mx.context)
618
- e.node = v
619
- return mx.chk.expr_checker.analyze_ref_expr(e, lvalue=mx.is_lvalue)
620
- return ret
621
-
622
-
623
- def check_final_member(name: str, info: TypeInfo, msg: MessageBuilder, ctx: Context) -> None:
624
- """Give an error if the name being assigned was declared as final."""
625
- for base in info.mro:
626
- sym = base.names.get(name)
627
- if sym and is_final_node(sym.node):
628
- msg.cant_assign_to_final(name, attr_assign=True, ctx=ctx)
629
-
630
-
631
- def analyze_descriptor_access(descriptor_type: Type, mx: MemberContext) -> Type:
632
- """Type check descriptor access.
633
-
634
- Arguments:
635
- descriptor_type: The type of the descriptor attribute being accessed
636
- (the type of ``f`` in ``a.f`` when ``f`` is a descriptor).
637
- mx: The current member access context.
638
- Return:
639
- The return type of the appropriate ``__get__`` overload for the descriptor.
640
- """
641
- instance_type = get_proper_type(mx.original_type)
642
- orig_descriptor_type = descriptor_type
643
- descriptor_type = get_proper_type(descriptor_type)
644
-
645
- if isinstance(descriptor_type, UnionType):
646
- # Map the access over union types
647
- return make_simplified_union(
648
- [analyze_descriptor_access(typ, mx) for typ in descriptor_type.items]
649
- )
650
- elif isinstance(instance_type, UnionType):
651
- # map over the instance types
652
- return make_simplified_union(
653
- [
654
- analyze_descriptor_access(
655
- descriptor_type, mx.copy_modified(original_type=original_type)
656
- )
657
- for original_type in instance_type.items
658
- ]
659
- )
660
- elif not isinstance(descriptor_type, Instance):
661
- return orig_descriptor_type
662
-
663
- if not descriptor_type.type.has_readable_member("__get__"):
664
- return orig_descriptor_type
665
-
666
- dunder_get = descriptor_type.type.get_method("__get__")
667
- if dunder_get is None:
668
- mx.msg.fail(
669
- message_registry.DESCRIPTOR_GET_NOT_CALLABLE.format(
670
- descriptor_type.str_with_options(mx.msg.options)
671
- ),
672
- mx.context,
673
- )
674
- return AnyType(TypeOfAny.from_error)
675
-
676
- bound_method = analyze_decorator_or_funcbase_access(
677
- defn=dunder_get,
678
- itype=descriptor_type,
679
- info=descriptor_type.type,
680
- self_type=descriptor_type,
681
- name="__get__",
682
- mx=mx,
683
- )
684
-
685
- typ = map_instance_to_supertype(descriptor_type, dunder_get.info)
686
- dunder_get_type = expand_type_by_instance(bound_method, typ)
687
-
688
- if isinstance(instance_type, FunctionLike) and instance_type.is_type_obj():
689
- owner_type = instance_type.items[0].ret_type
690
- instance_type = NoneType()
691
- elif isinstance(instance_type, TypeType):
692
- owner_type = instance_type.item
693
- instance_type = NoneType()
694
- else:
695
- owner_type = instance_type
696
-
697
- callable_name = mx.chk.expr_checker.method_fullname(descriptor_type, "__get__")
698
- dunder_get_type = mx.chk.expr_checker.transform_callee_type(
699
- callable_name,
700
- dunder_get_type,
701
- [
702
- TempNode(instance_type, context=mx.context),
703
- TempNode(TypeType.make_normalized(owner_type), context=mx.context),
704
- ],
705
- [ARG_POS, ARG_POS],
706
- mx.context,
707
- object_type=descriptor_type,
708
- )
709
-
710
- _, inferred_dunder_get_type = mx.chk.expr_checker.check_call(
711
- dunder_get_type,
712
- [
713
- TempNode(instance_type, context=mx.context),
714
- TempNode(TypeType.make_normalized(owner_type), context=mx.context),
715
- ],
716
- [ARG_POS, ARG_POS],
717
- mx.context,
718
- object_type=descriptor_type,
719
- callable_name=callable_name,
720
- )
721
-
722
- inferred_dunder_get_type = get_proper_type(inferred_dunder_get_type)
723
- if isinstance(inferred_dunder_get_type, AnyType):
724
- # check_call failed, and will have reported an error
725
- return inferred_dunder_get_type
726
-
727
- if not isinstance(inferred_dunder_get_type, CallableType):
728
- mx.msg.fail(
729
- message_registry.DESCRIPTOR_GET_NOT_CALLABLE.format(
730
- descriptor_type.str_with_options(mx.msg.options)
731
- ),
732
- mx.context,
733
- )
734
- return AnyType(TypeOfAny.from_error)
735
-
736
- return inferred_dunder_get_type.ret_type
737
-
738
-
739
- def is_instance_var(var: Var) -> bool:
740
- """Return if var is an instance variable according to PEP 526."""
741
- return (
742
- # check the type_info node is the var (not a decorated function, etc.)
743
- var.name in var.info.names
744
- and var.info.names[var.name].node is var
745
- and not var.is_classvar
746
- # variables without annotations are treated as classvar
747
- and not var.is_inferred
748
- )
749
-
750
-
751
- def analyze_var(
752
- name: str,
753
- var: Var,
754
- itype: Instance,
755
- info: TypeInfo,
756
- mx: MemberContext,
757
- *,
758
- implicit: bool = False,
759
- ) -> Type:
760
- """Analyze access to an attribute via a Var node.
761
-
762
- This is conceptually part of analyze_member_access and the arguments are similar.
763
- itype is the instance type in which attribute should be looked up
764
- original_type is the type of E in the expression E.var
765
- if implicit is True, the original Var was created as an assignment to self
766
- """
767
- # Found a member variable.
768
- original_itype = itype
769
- itype = map_instance_to_supertype(itype, var.info)
770
- typ = var.type
771
- if typ:
772
- if isinstance(typ, PartialType):
773
- return mx.chk.handle_partial_var_type(typ, mx.is_lvalue, var, mx.context)
774
- if mx.is_lvalue and var.is_property and not var.is_settable_property:
775
- # TODO allow setting attributes in subclass (although it is probably an error)
776
- mx.msg.read_only_property(name, itype.type, mx.context)
777
- if mx.is_lvalue and var.is_classvar:
778
- mx.msg.cant_assign_to_classvar(name, mx.context)
779
- t = freshen_all_functions_type_vars(typ)
780
- if not (mx.is_self or mx.is_super) or supported_self_type(
781
- get_proper_type(mx.original_type)
782
- ):
783
- t = expand_self_type(var, t, mx.original_type)
784
- elif (
785
- mx.is_self
786
- and original_itype.type != var.info
787
- # If an attribute with Self-type was defined in a supertype, we need to
788
- # rebind the Self type variable to Self type variable of current class...
789
- and original_itype.type.self_type is not None
790
- # ...unless `self` has an explicit non-trivial annotation.
791
- and original_itype == mx.chk.scope.active_self_type()
792
- ):
793
- t = expand_self_type(var, t, original_itype.type.self_type)
794
- t = get_proper_type(expand_type_by_instance(t, itype))
795
- freeze_all_type_vars(t)
796
- result: Type = t
797
- typ = get_proper_type(typ)
798
-
799
- call_type: ProperType | None = None
800
- if var.is_initialized_in_class and (not is_instance_var(var) or mx.is_operator):
801
- if isinstance(typ, FunctionLike) and not typ.is_type_obj():
802
- call_type = typ
803
- elif var.is_property:
804
- call_type = get_proper_type(_analyze_member_access("__call__", typ, mx))
805
- else:
806
- call_type = typ
807
-
808
- if isinstance(call_type, FunctionLike) and not call_type.is_type_obj():
809
- if mx.is_lvalue:
810
- if var.is_property:
811
- if not var.is_settable_property:
812
- mx.msg.read_only_property(name, itype.type, mx.context)
813
- else:
814
- mx.msg.cant_assign_to_method(mx.context)
815
-
816
- if not var.is_staticmethod:
817
- # Class-level function objects and classmethods become bound methods:
818
- # the former to the instance, the latter to the class.
819
- functype: FunctionLike = call_type
820
- # Use meet to narrow original_type to the dispatched type.
821
- # For example, assume
822
- # * A.f: Callable[[A1], None] where A1 <: A (maybe A1 == A)
823
- # * B.f: Callable[[B1], None] where B1 <: B (maybe B1 == B)
824
- # * x: Union[A1, B1]
825
- # In `x.f`, when checking `x` against A1 we assume x is compatible with A
826
- # and similarly for B1 when checking against B
827
- dispatched_type = meet.meet_types(mx.original_type, itype)
828
- signature = freshen_all_functions_type_vars(functype)
829
- bound = get_proper_type(expand_self_type(var, signature, mx.original_type))
830
- assert isinstance(bound, FunctionLike)
831
- signature = bound
832
- signature = check_self_arg(
833
- signature, dispatched_type, var.is_classmethod, mx.context, name, mx.msg
834
- )
835
- signature = bind_self(signature, mx.self_type, var.is_classmethod)
836
- expanded_signature = expand_type_by_instance(signature, itype)
837
- freeze_all_type_vars(expanded_signature)
838
- if var.is_property:
839
- # A property cannot have an overloaded type => the cast is fine.
840
- assert isinstance(expanded_signature, CallableType)
841
- result = expanded_signature.ret_type
842
- else:
843
- result = expanded_signature
844
- else:
845
- if not var.is_ready and not mx.no_deferral:
846
- mx.not_ready_callback(var.name, mx.context)
847
- # Implicit 'Any' type.
848
- result = AnyType(TypeOfAny.special_form)
849
- fullname = f"{var.info.fullname}.{name}"
850
- hook = mx.chk.plugin.get_attribute_hook(fullname)
851
- if result and not mx.is_lvalue and not implicit:
852
- result = analyze_descriptor_access(result, mx)
853
- if hook:
854
- result = hook(
855
- AttributeContext(get_proper_type(mx.original_type), result, mx.context, mx.chk)
856
- )
857
- return result
858
-
859
-
860
- def freeze_all_type_vars(member_type: Type) -> None:
861
- member_type.accept(FreezeTypeVarsVisitor())
862
-
863
-
864
- class FreezeTypeVarsVisitor(TypeTraverserVisitor):
865
- def visit_callable_type(self, t: CallableType) -> None:
866
- for v in t.variables:
867
- v.id.meta_level = 0
868
- super().visit_callable_type(t)
869
-
870
-
871
- def lookup_member_var_or_accessor(info: TypeInfo, name: str, is_lvalue: bool) -> SymbolNode | None:
872
- """Find the attribute/accessor node that refers to a member of a type."""
873
- # TODO handle lvalues
874
- node = info.get(name)
875
- if node:
876
- return node.node
877
- else:
878
- return None
879
-
880
-
881
- def check_self_arg(
882
- functype: FunctionLike,
883
- dispatched_arg_type: Type,
884
- is_classmethod: bool,
885
- context: Context,
886
- name: str,
887
- msg: MessageBuilder,
888
- ) -> FunctionLike:
889
- """Check that an instance has a valid type for a method with annotated 'self'.
890
-
891
- For example if the method is defined as:
892
- class A:
893
- def f(self: S) -> T: ...
894
- then for 'x.f' we check that meet(type(x), A) <: S. If the method is overloaded, we
895
- select only overloads items that satisfy this requirement. If there are no matching
896
- overloads, an error is generated.
897
-
898
- Note: dispatched_arg_type uses a meet to select a relevant item in case if the
899
- original type of 'x' is a union. This is done because several special methods
900
- treat union types in ad-hoc manner, so we can't use MemberContext.self_type yet.
901
- """
902
- items = functype.items
903
- if not items:
904
- return functype
905
- new_items = []
906
- if is_classmethod:
907
- dispatched_arg_type = TypeType.make_normalized(dispatched_arg_type)
908
-
909
- for item in items:
910
- if not item.arg_types or item.arg_kinds[0] not in (ARG_POS, ARG_STAR):
911
- # No positional first (self) argument (*args is okay).
912
- msg.no_formal_self(name, item, context)
913
- # This is pretty bad, so just return the original signature if
914
- # there is at least one such error.
915
- return functype
916
- else:
917
- selfarg = get_proper_type(item.arg_types[0])
918
- # This level of erasure matches the one in checker.check_func_def(),
919
- # better keep these two checks consistent.
920
- if subtypes.is_subtype(dispatched_arg_type, erase_typevars(erase_to_bound(selfarg))):
921
- new_items.append(item)
922
- elif isinstance(selfarg, ParamSpecType):
923
- # TODO: This is not always right. What's the most reasonable thing to do here?
924
- new_items.append(item)
925
- elif isinstance(selfarg, TypeVarTupleType):
926
- raise NotImplementedError
927
- if not new_items:
928
- # Choose first item for the message (it may be not very helpful for overloads).
929
- msg.incompatible_self_argument(
930
- name, dispatched_arg_type, items[0], is_classmethod, context
931
- )
932
- return functype
933
- if len(new_items) == 1:
934
- return new_items[0]
935
- return Overloaded(new_items)
936
-
937
-
938
- def analyze_class_attribute_access(
939
- itype: Instance,
940
- name: str,
941
- mx: MemberContext,
942
- *,
943
- mcs_fallback: Instance,
944
- override_info: TypeInfo | None = None,
945
- original_vars: Sequence[TypeVarLikeType] | None = None,
946
- ) -> Type | None:
947
- """Analyze access to an attribute on a class object.
948
-
949
- itype is the return type of the class object callable, original_type is the type
950
- of E in the expression E.var, original_vars are type variables of the class callable
951
- (for generic classes).
952
- """
953
- info = itype.type
954
- if override_info:
955
- info = override_info
956
-
957
- fullname = f"{info.fullname}.{name}"
958
- hook = mx.chk.plugin.get_class_attribute_hook(fullname)
959
-
960
- node = info.get(name)
961
- if not node:
962
- if itype.extra_attrs and name in itype.extra_attrs.attrs:
963
- # For modules use direct symbol table lookup.
964
- if not itype.extra_attrs.mod_name:
965
- return itype.extra_attrs.attrs[name]
966
- if info.fallback_to_any or info.meta_fallback_to_any:
967
- return apply_class_attr_hook(mx, hook, AnyType(TypeOfAny.special_form))
968
- return None
969
-
970
- if (
971
- isinstance(node.node, Var)
972
- and not node.node.is_classvar
973
- and not hook
974
- and mcs_fallback.type.get(name)
975
- ):
976
- # If the same attribute is declared on the metaclass and the class but with different types,
977
- # and the attribute on the class is not a ClassVar,
978
- # the type of the attribute on the metaclass should take priority
979
- # over the type of the attribute on the class,
980
- # when the attribute is being accessed from the class object itself.
981
- #
982
- # Return `None` here to signify that the name should be looked up
983
- # on the class object itself rather than the instance.
984
- return None
985
-
986
- is_decorated = isinstance(node.node, Decorator)
987
- is_method = is_decorated or isinstance(node.node, FuncBase)
988
- if mx.is_lvalue:
989
- if is_method:
990
- mx.msg.cant_assign_to_method(mx.context)
991
- if isinstance(node.node, TypeInfo):
992
- mx.msg.fail(message_registry.CANNOT_ASSIGN_TO_TYPE, mx.context)
993
-
994
- # Refuse class attribute access if slot defined
995
- if info.slots and name in info.slots:
996
- mx.msg.fail(message_registry.CLASS_VAR_CONFLICTS_SLOTS.format(name), mx.context)
997
-
998
- # If a final attribute was declared on `self` in `__init__`, then it
999
- # can't be accessed on the class object.
1000
- if node.implicit and isinstance(node.node, Var) and node.node.is_final:
1001
- mx.msg.fail(
1002
- message_registry.CANNOT_ACCESS_FINAL_INSTANCE_ATTR.format(node.node.name), mx.context
1003
- )
1004
-
1005
- # An assignment to final attribute on class object is also always an error,
1006
- # independently of types.
1007
- if mx.is_lvalue and not mx.chk.get_final_context():
1008
- check_final_member(name, info, mx.msg, mx.context)
1009
-
1010
- if info.is_enum and not (mx.is_lvalue or is_decorated or is_method):
1011
- enum_class_attribute_type = analyze_enum_class_attribute_access(itype, name, mx)
1012
- if enum_class_attribute_type:
1013
- return apply_class_attr_hook(mx, hook, enum_class_attribute_type)
1014
-
1015
- t = node.type
1016
- if t:
1017
- if isinstance(t, PartialType):
1018
- symnode = node.node
1019
- assert isinstance(symnode, Var)
1020
- return apply_class_attr_hook(
1021
- mx, hook, mx.chk.handle_partial_var_type(t, mx.is_lvalue, symnode, mx.context)
1022
- )
1023
-
1024
- # Find the class where method/variable was defined.
1025
- if isinstance(node.node, Decorator):
1026
- super_info: TypeInfo | None = node.node.var.info
1027
- elif isinstance(node.node, (Var, SYMBOL_FUNCBASE_TYPES)):
1028
- super_info = node.node.info
1029
- else:
1030
- super_info = None
1031
-
1032
- # Map the type to how it would look as a defining class. For example:
1033
- # class C(Generic[T]): ...
1034
- # class D(C[Tuple[T, S]]): ...
1035
- # D[int, str].method()
1036
- # Here itype is D[int, str], isuper is C[Tuple[int, str]].
1037
- if not super_info:
1038
- isuper = None
1039
- else:
1040
- isuper = map_instance_to_supertype(itype, super_info)
1041
-
1042
- if isinstance(node.node, Var):
1043
- assert isuper is not None
1044
- # Check if original variable type has type variables. For example:
1045
- # class C(Generic[T]):
1046
- # x: T
1047
- # C.x # Error, ambiguous access
1048
- # C[int].x # Also an error, since C[int] is same as C at runtime
1049
- # Exception is Self type wrapped in ClassVar, that is safe.
1050
- def_vars = set(node.node.info.defn.type_vars)
1051
- if not node.node.is_classvar and node.node.info.self_type:
1052
- def_vars.add(node.node.info.self_type)
1053
- typ_vars = set(get_type_vars(t))
1054
- if def_vars & typ_vars:
1055
- # Exception: access on Type[...], including first argument of class methods is OK.
1056
- if not isinstance(get_proper_type(mx.original_type), TypeType) or node.implicit:
1057
- if node.node.is_classvar:
1058
- message = message_registry.GENERIC_CLASS_VAR_ACCESS
1059
- else:
1060
- message = message_registry.GENERIC_INSTANCE_VAR_CLASS_ACCESS
1061
- mx.msg.fail(message, mx.context)
1062
-
1063
- # Erase non-mapped variables, but keep mapped ones, even if there is an error.
1064
- # In the above example this means that we infer following types:
1065
- # C.x -> Any
1066
- # C[int].x -> int
1067
- t = get_proper_type(expand_self_type(node.node, t, itype))
1068
- t = erase_typevars(expand_type_by_instance(t, isuper), {tv.id for tv in def_vars})
1069
-
1070
- is_classmethod = (is_decorated and cast(Decorator, node.node).func.is_class) or (
1071
- isinstance(node.node, FuncBase) and node.node.is_class
1072
- )
1073
- is_staticmethod = (is_decorated and cast(Decorator, node.node).func.is_static) or (
1074
- isinstance(node.node, FuncBase) and node.node.is_static
1075
- )
1076
- t = get_proper_type(t)
1077
- if isinstance(t, FunctionLike) and is_classmethod:
1078
- t = check_self_arg(t, mx.self_type, False, mx.context, name, mx.msg)
1079
- result = add_class_tvars(
1080
- t, isuper, is_classmethod, is_staticmethod, mx.self_type, original_vars=original_vars
1081
- )
1082
- if not mx.is_lvalue:
1083
- result = analyze_descriptor_access(result, mx)
1084
-
1085
- return apply_class_attr_hook(mx, hook, result)
1086
- elif isinstance(node.node, Var):
1087
- mx.not_ready_callback(name, mx.context)
1088
- return AnyType(TypeOfAny.special_form)
1089
-
1090
- if isinstance(node.node, TypeVarExpr):
1091
- mx.msg.fail(
1092
- message_registry.CANNOT_USE_TYPEVAR_AS_EXPRESSION.format(info.name, name), mx.context
1093
- )
1094
- return AnyType(TypeOfAny.from_error)
1095
-
1096
- if isinstance(node.node, TypeInfo):
1097
- return type_object_type(node.node, mx.named_type)
1098
-
1099
- if isinstance(node.node, MypyFile):
1100
- # Reference to a module object.
1101
- return mx.named_type("types.ModuleType")
1102
-
1103
- if isinstance(node.node, TypeAlias):
1104
- return mx.chk.expr_checker.alias_type_in_runtime_context(
1105
- node.node, ctx=mx.context, alias_definition=mx.is_lvalue
1106
- )
1107
-
1108
- if is_decorated:
1109
- assert isinstance(node.node, Decorator)
1110
- if node.node.type:
1111
- return apply_class_attr_hook(mx, hook, node.node.type)
1112
- else:
1113
- mx.not_ready_callback(name, mx.context)
1114
- return AnyType(TypeOfAny.from_error)
1115
- else:
1116
- assert isinstance(node.node, FuncBase)
1117
- typ = function_type(node.node, mx.named_type("builtins.function"))
1118
- # Note: if we are accessing class method on class object, the cls argument is bound.
1119
- # Annotated and/or explicit class methods go through other code paths above, for
1120
- # unannotated implicit class methods we do this here.
1121
- if node.node.is_class:
1122
- typ = bind_self(typ, is_classmethod=True)
1123
- return apply_class_attr_hook(mx, hook, typ)
1124
-
1125
-
1126
- def apply_class_attr_hook(
1127
- mx: MemberContext, hook: Callable[[AttributeContext], Type] | None, result: Type
1128
- ) -> Type | None:
1129
- if hook:
1130
- result = hook(
1131
- AttributeContext(get_proper_type(mx.original_type), result, mx.context, mx.chk)
1132
- )
1133
- return result
1134
-
1135
-
1136
- def analyze_enum_class_attribute_access(
1137
- itype: Instance, name: str, mx: MemberContext
1138
- ) -> Type | None:
1139
- # Skip these since Enum will remove it
1140
- if name in ENUM_REMOVED_PROPS:
1141
- return report_missing_attribute(mx.original_type, itype, name, mx)
1142
- # For other names surrendered by underscores, we don't make them Enum members
1143
- if name.startswith("__") and name.endswith("__") and name.replace("_", "") != "":
1144
- return None
1145
-
1146
- enum_literal = LiteralType(name, fallback=itype)
1147
- return itype.copy_modified(last_known_value=enum_literal)
1148
-
1149
-
1150
- def analyze_typeddict_access(
1151
- name: str, typ: TypedDictType, mx: MemberContext, override_info: TypeInfo | None
1152
- ) -> Type:
1153
- if name == "__setitem__":
1154
- if isinstance(mx.context, IndexExpr):
1155
- # Since we can get this during `a['key'] = ...`
1156
- # it is safe to assume that the context is `IndexExpr`.
1157
- item_type = mx.chk.expr_checker.visit_typeddict_index_expr(
1158
- typ, mx.context.index, setitem=True
1159
- )
1160
- else:
1161
- # It can also be `a.__setitem__(...)` direct call.
1162
- # In this case `item_type` can be `Any`,
1163
- # because we don't have args available yet.
1164
- # TODO: check in `default` plugin that `__setitem__` is correct.
1165
- item_type = AnyType(TypeOfAny.implementation_artifact)
1166
- return CallableType(
1167
- arg_types=[mx.chk.named_type("builtins.str"), item_type],
1168
- arg_kinds=[ARG_POS, ARG_POS],
1169
- arg_names=[None, None],
1170
- ret_type=NoneType(),
1171
- fallback=mx.chk.named_type("builtins.function"),
1172
- name=name,
1173
- )
1174
- elif name == "__delitem__":
1175
- return CallableType(
1176
- arg_types=[mx.chk.named_type("builtins.str")],
1177
- arg_kinds=[ARG_POS],
1178
- arg_names=[None],
1179
- ret_type=NoneType(),
1180
- fallback=mx.chk.named_type("builtins.function"),
1181
- name=name,
1182
- )
1183
- return _analyze_member_access(name, typ.fallback, mx, override_info)
1184
-
1185
-
1186
- def add_class_tvars(
1187
- t: ProperType,
1188
- isuper: Instance | None,
1189
- is_classmethod: bool,
1190
- is_staticmethod: bool,
1191
- original_type: Type,
1192
- original_vars: Sequence[TypeVarLikeType] | None = None,
1193
- ) -> Type:
1194
- """Instantiate type variables during analyze_class_attribute_access,
1195
- e.g T and Q in the following:
1196
-
1197
- class A(Generic[T]):
1198
- @classmethod
1199
- def foo(cls: Type[Q]) -> Tuple[T, Q]: ...
1200
-
1201
- class B(A[str]): pass
1202
- B.foo()
1203
-
1204
- Args:
1205
- t: Declared type of the method (or property)
1206
- isuper: Current instance mapped to the superclass where method was defined, this
1207
- is usually done by map_instance_to_supertype()
1208
- is_classmethod: True if this method is decorated with @classmethod
1209
- is_staticmethod: True if this method is decorated with @staticmethod
1210
- original_type: The value of the type B in the expression B.foo() or the corresponding
1211
- component in case of a union (this is used to bind the self-types)
1212
- original_vars: Type variables of the class callable on which the method was accessed
1213
- Returns:
1214
- Expanded method type with added type variables (when needed).
1215
- """
1216
- # TODO: verify consistency between Q and T
1217
-
1218
- # We add class type variables if the class method is accessed on class object
1219
- # without applied type arguments, this matches the behavior of __init__().
1220
- # For example (continuing the example in docstring):
1221
- # A # The type of callable is def [T] () -> A[T], _not_ def () -> A[Any]
1222
- # A[int] # The type of callable is def () -> A[int]
1223
- # and
1224
- # A.foo # The type is generic def [T] () -> Tuple[T, A[T]]
1225
- # A[int].foo # The type is non-generic def () -> Tuple[int, A[int]]
1226
- #
1227
- # This behaviour is useful for defining alternative constructors for generic classes.
1228
- # To achieve such behaviour, we add the class type variables that are still free
1229
- # (i.e. appear in the return type of the class object on which the method was accessed).
1230
- if isinstance(t, CallableType):
1231
- tvars = original_vars if original_vars is not None else []
1232
- t = freshen_all_functions_type_vars(t)
1233
- if is_classmethod:
1234
- t = bind_self(t, original_type, is_classmethod=True)
1235
- if is_classmethod or is_staticmethod:
1236
- assert isuper is not None
1237
- t = expand_type_by_instance(t, isuper)
1238
- freeze_all_type_vars(t)
1239
- return t.copy_modified(variables=list(tvars) + list(t.variables))
1240
- elif isinstance(t, Overloaded):
1241
- return Overloaded(
1242
- [
1243
- cast(
1244
- CallableType,
1245
- add_class_tvars(
1246
- item,
1247
- isuper,
1248
- is_classmethod,
1249
- is_staticmethod,
1250
- original_type,
1251
- original_vars=original_vars,
1252
- ),
1253
- )
1254
- for item in t.items
1255
- ]
1256
- )
1257
- if isuper is not None:
1258
- t = expand_type_by_instance(t, isuper)
1259
- return t
1260
-
1261
-
1262
- def type_object_type(info: TypeInfo, named_type: Callable[[str], Instance]) -> ProperType:
1263
- """Return the type of a type object.
1264
-
1265
- For a generic type G with type variables T and S the type is generally of form
1266
-
1267
- Callable[..., G[T, S]]
1268
-
1269
- where ... are argument types for the __init__/__new__ method (without the self
1270
- argument). Also, the fallback type will be 'type' instead of 'function'.
1271
- """
1272
-
1273
- # We take the type from whichever of __init__ and __new__ is first
1274
- # in the MRO, preferring __init__ if there is a tie.
1275
- init_method = info.get("__init__")
1276
- new_method = info.get("__new__")
1277
- if not init_method or not is_valid_constructor(init_method.node):
1278
- # Must be an invalid class definition.
1279
- return AnyType(TypeOfAny.from_error)
1280
- # There *should* always be a __new__ method except the test stubs
1281
- # lack it, so just copy init_method in that situation
1282
- new_method = new_method or init_method
1283
- if not is_valid_constructor(new_method.node):
1284
- # Must be an invalid class definition.
1285
- return AnyType(TypeOfAny.from_error)
1286
-
1287
- # The two is_valid_constructor() checks ensure this.
1288
- assert isinstance(new_method.node, (SYMBOL_FUNCBASE_TYPES, Decorator))
1289
- assert isinstance(init_method.node, (SYMBOL_FUNCBASE_TYPES, Decorator))
1290
-
1291
- init_index = info.mro.index(init_method.node.info)
1292
- new_index = info.mro.index(new_method.node.info)
1293
-
1294
- fallback = info.metaclass_type or named_type("builtins.type")
1295
- if init_index < new_index:
1296
- method: FuncBase | Decorator = init_method.node
1297
- is_new = False
1298
- elif init_index > new_index:
1299
- method = new_method.node
1300
- is_new = True
1301
- else:
1302
- if init_method.node.info.fullname == "builtins.object":
1303
- # Both are defined by object. But if we've got a bogus
1304
- # base class, we can't know for sure, so check for that.
1305
- if info.fallback_to_any:
1306
- # Construct a universal callable as the prototype.
1307
- any_type = AnyType(TypeOfAny.special_form)
1308
- sig = CallableType(
1309
- arg_types=[any_type, any_type],
1310
- arg_kinds=[ARG_STAR, ARG_STAR2],
1311
- arg_names=["_args", "_kwds"],
1312
- ret_type=any_type,
1313
- fallback=named_type("builtins.function"),
1314
- )
1315
- return class_callable(sig, info, fallback, None, is_new=False)
1316
-
1317
- # Otherwise prefer __init__ in a tie. It isn't clear that this
1318
- # is the right thing, but __new__ caused problems with
1319
- # typeshed (#5647).
1320
- method = init_method.node
1321
- is_new = False
1322
- # Construct callable type based on signature of __init__. Adjust
1323
- # return type and insert type arguments.
1324
- if isinstance(method, FuncBase):
1325
- t = function_type(method, fallback)
1326
- else:
1327
- assert isinstance(method.type, ProperType)
1328
- assert isinstance(method.type, FunctionLike) # is_valid_constructor() ensures this
1329
- t = method.type
1330
- return type_object_type_from_function(t, info, method.info, fallback, is_new)
1331
-
1332
-
1333
- def analyze_decorator_or_funcbase_access(
1334
- defn: Decorator | FuncBase,
1335
- itype: Instance,
1336
- info: TypeInfo,
1337
- self_type: Type | None,
1338
- name: str,
1339
- mx: MemberContext,
1340
- ) -> Type:
1341
- """Analyzes the type behind method access.
1342
-
1343
- The function itself can possibly be decorated.
1344
- See: https://github.com/python/mypy/issues/10409
1345
- """
1346
- if isinstance(defn, Decorator):
1347
- return analyze_var(name, defn.var, itype, info, mx)
1348
- return bind_self(
1349
- function_type(defn, mx.chk.named_type("builtins.function")), original_type=self_type
1350
- )
1351
-
1352
-
1353
- def is_valid_constructor(n: SymbolNode | None) -> bool:
1354
- """Does this node represents a valid constructor method?
1355
-
1356
- This includes normal functions, overloaded functions, and decorators
1357
- that return a callable type.
1358
- """
1359
- if isinstance(n, FuncBase):
1360
- return True
1361
- if isinstance(n, Decorator):
1362
- return isinstance(get_proper_type(n.type), FunctionLike)
1363
- return False