jaclang 0.6.1__py3-none-any.whl → 0.7.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.
- jaclang/__init__.py +1 -9
- jaclang/cli/.gitignore +3 -0
- jaclang/cli/cli.md +190 -0
- jaclang/cli/cli.py +25 -4
- jaclang/compiler/.gitignore +1 -0
- jaclang/compiler/__init__.py +1 -0
- jaclang/compiler/absyntree.py +9 -7
- jaclang/compiler/compile.py +4 -4
- jaclang/compiler/jac.lark +1 -0
- jaclang/compiler/parser.py +28 -6
- jaclang/compiler/passes/main/def_impl_match_pass.py +4 -0
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py +10 -1
- jaclang/compiler/passes/main/import_pass.py +47 -33
- jaclang/compiler/passes/main/pyast_load_pass.py +33 -6
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac +3 -0
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl.jac +3 -0
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.jac +9 -0
- jaclang/compiler/passes/main/tests/fixtures/autoimpl.something.else.impl.jac +3 -0
- jaclang/compiler/passes/main/tests/fixtures/base.jac +13 -0
- jaclang/compiler/passes/main/tests/fixtures/base2.jac +14 -0
- jaclang/compiler/passes/main/tests/fixtures/blip.jac +2 -0
- jaclang/compiler/passes/main/tests/fixtures/codegentext.jac +31 -0
- jaclang/compiler/passes/main/tests/fixtures/decls.jac +10 -0
- jaclang/compiler/passes/main/tests/fixtures/defs_and_uses.jac +44 -0
- jaclang/compiler/passes/main/tests/fixtures/fstrings.jac +4 -0
- jaclang/compiler/passes/main/tests/fixtures/func.jac +18 -0
- jaclang/compiler/passes/main/tests/fixtures/func2.jac +8 -0
- jaclang/compiler/passes/main/tests/fixtures/game1.jac +15 -0
- jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac +8 -0
- jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac +8 -0
- jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac +11 -0
- jaclang/compiler/passes/main/tests/fixtures/multi_def_err.jac +7 -0
- jaclang/compiler/passes/main/tests/fixtures/registry.jac +36 -0
- jaclang/compiler/passes/main/tests/fixtures/type_info.jac +31 -0
- jaclang/compiler/passes/main/tests/test_type_check_pass.py +15 -0
- jaclang/compiler/passes/tool/jac_formatter_pass.py +2 -2
- jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +480 -0
- jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +480 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac +36 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac +17 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac +32 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/odd_word_out.jac +27 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/personality_finder.jac +35 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/text_to_type.jac +25 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/translator.jac +13 -0
- jaclang/compiler/passes/tool/tests/fixtures/genai/wikipedia.jac +63 -0
- jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.dot +39 -0
- jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.jac +7 -0
- jaclang/compiler/passes/tool/tests/fixtures/multi_def_err.txt +20 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/ability_impl_long_comprehension.jac +15 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/call_with_many_parameters.jac +24 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/entry_main.jac +4 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/long_line_nested_dict_access.jac +10 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/multiline_fstrings.jac +16 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_dict.jac +15 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/nested_loop_and_incrementer.jac +13 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/simple_walker.jac +25 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/try_block_and_walker_spawn_and_fstrings.jac +26 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/tuple_iteration_and_not_negation.jac +20 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/type_annotation.jac +3 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_decl_only.jac +12 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_default_values_types_and_docstrings.jac +18 -0
- jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_inline_ability_impl.jac +8 -0
- jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac +47 -0
- jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac +47 -0
- jaclang/compiler/passes/transform.py +13 -4
- jaclang/compiler/passes/utils/mypy_ast_build.py +8 -0
- jaclang/compiler/tests/fixtures/fam.jac +67 -0
- jaclang/compiler/tests/fixtures/hello_world.jac +5 -0
- jaclang/compiler/tests/fixtures/kwesc.jac +5 -0
- jaclang/compiler/tests/fixtures/mod_doc_test.jac +3 -0
- jaclang/compiler/tests/fixtures/staticcheck.jac +20 -0
- jaclang/compiler/tests/fixtures/stuff.jac +6 -0
- jaclang/langserve/__init__.py +1 -0
- jaclang/langserve/engine.py +287 -0
- jaclang/langserve/server.py +139 -0
- jaclang/langserve/tests/__init__.py +1 -0
- jaclang/langserve/tests/defaults.py +226 -0
- jaclang/langserve/tests/fixtures/hello.jac +1 -0
- jaclang/langserve/tests/pylsp_jsonrpc/__init__.py +2 -0
- jaclang/langserve/tests/pylsp_jsonrpc/dispatchers.py +37 -0
- jaclang/langserve/tests/pylsp_jsonrpc/endpoint.py +294 -0
- jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py +114 -0
- jaclang/langserve/tests/pylsp_jsonrpc/streams.py +113 -0
- jaclang/langserve/tests/session.py +255 -0
- jaclang/langserve/tests/test_server.py +36 -0
- jaclang/langserve/utils.py +55 -0
- jaclang/plugin/default.py +1 -1
- jaclang/plugin/tests/fixtures/impl_match.jac +9 -0
- jaclang/plugin/tests/fixtures/impl_match_impl.jac +3 -0
- jaclang/plugin/tests/fixtures/simple_node_connection.jac +55 -0
- jaclang/plugin/tests/fixtures/simple_persistent.jac +41 -0
- jaclang/settings.py +5 -0
- jaclang/tests/fixtures/abc.jac +73 -0
- jaclang/tests/fixtures/access_checker.jac +19 -0
- jaclang/tests/fixtures/access_modifier.jac +49 -0
- jaclang/tests/fixtures/aott_raise.jac +25 -0
- jaclang/tests/fixtures/arithmetic_bug.jac +13 -0
- jaclang/tests/fixtures/assign_compr.jac +15 -0
- jaclang/tests/fixtures/assign_compr_dup.jac +15 -0
- jaclang/tests/fixtures/builtin_dotgen.jac +41 -0
- jaclang/tests/fixtures/chandra_bugs.jac +11 -0
- jaclang/tests/fixtures/chandra_bugs2.jac +26 -0
- jaclang/tests/fixtures/circle_pysolo.py +91 -0
- jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac +9 -0
- jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac +9 -0
- jaclang/tests/fixtures/deep/deeper/snd_lev.jac +6 -0
- jaclang/tests/fixtures/deep/mycode.jac +4 -0
- jaclang/tests/fixtures/deep/one_lev.jac +6 -0
- jaclang/tests/fixtures/deep/one_lev_dup.jac +6 -0
- jaclang/tests/fixtures/deep/one_lev_dup_py.py +6 -0
- jaclang/tests/fixtures/deep_convert.jac +5 -0
- jaclang/tests/fixtures/deep_convo.py +6 -0
- jaclang/tests/fixtures/deep_import.jac +7 -0
- jaclang/tests/fixtures/deferred_field.jac +13 -0
- jaclang/tests/fixtures/disconn.jac +29 -0
- jaclang/tests/fixtures/edge_node_walk.jac +46 -0
- jaclang/tests/fixtures/edge_ops.jac +45 -0
- jaclang/tests/fixtures/edges_walk.jac +38 -0
- jaclang/tests/fixtures/enum_inside_archtype.jac +20 -0
- jaclang/tests/fixtures/err.jac +5 -0
- jaclang/tests/fixtures/err2.jac +5 -0
- jaclang/tests/fixtures/game1.jac +15 -0
- jaclang/tests/fixtures/gendot_bubble_sort.jac +77 -0
- jaclang/tests/fixtures/guess_game.jac +47 -0
- jaclang/tests/fixtures/has_goodness.jac +15 -0
- jaclang/tests/fixtures/hashcheck.jac +12 -0
- jaclang/tests/fixtures/hashcheck_dup.jac +12 -0
- jaclang/tests/fixtures/hello.jac +5 -0
- jaclang/tests/fixtures/hello_nc.jac +5 -0
- jaclang/tests/fixtures/ignore.jac +43 -0
- jaclang/tests/fixtures/ignore_dup.jac +43 -0
- jaclang/tests/fixtures/impl_grab.impl.jac +4 -0
- jaclang/tests/fixtures/impl_grab.jac +2 -0
- jaclang/tests/fixtures/inherit_check.jac +33 -0
- jaclang/tests/fixtures/jacsamp.jac +6 -0
- jaclang/tests/fixtures/jp_importer.jac +17 -0
- jaclang/tests/fixtures/lambda.jac +6 -0
- jaclang/tests/fixtures/maxfail_run_test.jac +5 -0
- jaclang/tests/fixtures/mtest.impl.jac +6 -0
- jaclang/tests/fixtures/mtest.jac +6 -0
- jaclang/tests/fixtures/needs_import.jac +18 -0
- jaclang/tests/fixtures/needs_import_1.jac +6 -0
- jaclang/tests/fixtures/needs_import_2.jac +6 -0
- jaclang/tests/fixtures/needs_import_3.jac +6 -0
- jaclang/tests/fixtures/needs_import_dup.jac +18 -0
- jaclang/tests/fixtures/package_import.jac +6 -0
- jaclang/tests/fixtures/pyfunc.py +11 -0
- jaclang/tests/fixtures/pyfunc_1.py +311 -0
- jaclang/tests/fixtures/pyfunc_2.py +279 -0
- jaclang/tests/fixtures/pyfunc_3.py +310 -0
- jaclang/tests/fixtures/random_check.jac +62 -0
- jaclang/tests/fixtures/raw_byte_string.jac +18 -0
- jaclang/tests/fixtures/registry.jac +37 -0
- jaclang/tests/fixtures/run_test.jac +5 -0
- jaclang/tests/fixtures/semstr.jac +33 -0
- jaclang/tests/fixtures/simple_archs.jac +26 -0
- jaclang/tests/fixtures/slice_vals.jac +7 -0
- jaclang/tests/fixtures/sub_abil_sep.jac +15 -0
- jaclang/tests/fixtures/sub_abil_sep_multilev.jac +17 -0
- jaclang/tests/fixtures/try_finally.jac +34 -0
- jaclang/tests/fixtures/tupleunpack.jac +6 -0
- jaclang/tests/fixtures/tuplytuples.jac +8 -0
- jaclang/tests/fixtures/type_info.jac +15 -0
- jaclang/tests/fixtures/with_context.jac +30 -0
- jaclang/tests/fixtures/with_llm_function.jac +33 -0
- jaclang/tests/fixtures/with_llm_lower.jac +45 -0
- jaclang/tests/fixtures/with_llm_method.jac +51 -0
- jaclang/tests/fixtures/with_llm_type.jac +52 -0
- jaclang/tests/test_cli.py +239 -0
- jaclang/tests/test_language.py +831 -0
- jaclang/tests/test_man_code.py +148 -0
- jaclang/tests/test_reference.py +95 -0
- jaclang/tests/test_settings.py +46 -0
- jaclang/utils/helpers.py +11 -0
- jaclang/utils/tests/test_lang_tools.py +17 -0
- jaclang/utils/treeprinter.py +12 -4
- jaclang/vendor/__init__.py +12 -1
- jaclang/vendor/attr/__init__.py +134 -0
- jaclang/vendor/attr/__init__.pyi +555 -0
- jaclang/vendor/attr/_cmp.py +150 -0
- jaclang/vendor/attr/_cmp.pyi +13 -0
- jaclang/vendor/attr/_compat.py +87 -0
- jaclang/vendor/attr/_config.py +31 -0
- jaclang/vendor/attr/_funcs.py +483 -0
- jaclang/vendor/attr/_make.py +3119 -0
- jaclang/vendor/attr/_next_gen.py +229 -0
- jaclang/vendor/attr/_typing_compat.pyi +15 -0
- jaclang/vendor/attr/_version_info.py +86 -0
- jaclang/vendor/attr/_version_info.pyi +9 -0
- jaclang/vendor/attr/converters.py +144 -0
- jaclang/vendor/attr/converters.pyi +13 -0
- jaclang/vendor/attr/exceptions.py +95 -0
- jaclang/vendor/attr/exceptions.pyi +17 -0
- jaclang/vendor/attr/filters.py +66 -0
- jaclang/vendor/attr/filters.pyi +6 -0
- jaclang/vendor/attr/setters.py +73 -0
- jaclang/vendor/attr/setters.pyi +19 -0
- jaclang/vendor/attr/validators.py +681 -0
- jaclang/vendor/attr/validators.pyi +88 -0
- jaclang/vendor/attrs/__init__.py +65 -0
- jaclang/vendor/attrs/__init__.pyi +67 -0
- jaclang/vendor/attrs/converters.py +3 -0
- jaclang/vendor/attrs/exceptions.py +3 -0
- jaclang/vendor/attrs/filters.py +3 -0
- jaclang/vendor/attrs/py.typed +0 -0
- jaclang/vendor/attrs/setters.py +3 -0
- jaclang/vendor/attrs/validators.py +3 -0
- jaclang/vendor/attrs-23.2.0.dist-info/METADATA +202 -0
- jaclang/vendor/attrs-23.2.0.dist-info/RECORD +35 -0
- jaclang/vendor/attrs-23.2.0.dist-info/WHEEL +4 -0
- jaclang/vendor/attrs-23.2.0.dist-info/licenses/LICENSE +21 -0
- jaclang/vendor/cattr/__init__.py +25 -0
- jaclang/vendor/cattr/converters.py +8 -0
- jaclang/vendor/cattr/disambiguators.py +3 -0
- jaclang/vendor/cattr/dispatch.py +3 -0
- jaclang/vendor/cattr/errors.py +15 -0
- jaclang/vendor/cattr/gen.py +21 -0
- jaclang/vendor/cattr/preconf/__init__.py +3 -0
- jaclang/vendor/cattr/preconf/bson.py +4 -0
- jaclang/vendor/cattr/preconf/json.py +4 -0
- jaclang/vendor/cattr/preconf/msgpack.py +4 -0
- jaclang/vendor/cattr/preconf/orjson.py +4 -0
- jaclang/vendor/cattr/preconf/pyyaml.py +4 -0
- jaclang/vendor/cattr/preconf/tomlkit.py +4 -0
- jaclang/vendor/cattr/preconf/ujson.py +4 -0
- jaclang/vendor/cattr/py.typed +0 -0
- jaclang/vendor/cattrs/__init__.py +55 -0
- jaclang/vendor/cattrs/_compat.py +465 -0
- jaclang/vendor/cattrs/_generics.py +22 -0
- jaclang/vendor/cattrs/converters.py +1101 -0
- jaclang/vendor/cattrs/disambiguators.py +132 -0
- jaclang/vendor/cattrs/dispatch.py +164 -0
- jaclang/vendor/cattrs/errors.py +129 -0
- jaclang/vendor/cattrs/fns.py +17 -0
- jaclang/vendor/cattrs/gen/__init__.py +890 -0
- jaclang/vendor/cattrs/gen/_consts.py +19 -0
- jaclang/vendor/cattrs/gen/_generics.py +43 -0
- jaclang/vendor/cattrs/gen/_lc.py +28 -0
- jaclang/vendor/cattrs/gen/_shared.py +51 -0
- jaclang/vendor/cattrs/gen/typeddicts.py +624 -0
- jaclang/vendor/cattrs/preconf/__init__.py +7 -0
- jaclang/vendor/cattrs/preconf/bson.py +107 -0
- jaclang/vendor/cattrs/preconf/cbor2.py +47 -0
- jaclang/vendor/cattrs/preconf/json.py +52 -0
- jaclang/vendor/cattrs/preconf/msgpack.py +51 -0
- jaclang/vendor/cattrs/preconf/orjson.py +82 -0
- jaclang/vendor/cattrs/preconf/pyyaml.py +60 -0
- jaclang/vendor/cattrs/preconf/tomlkit.py +85 -0
- jaclang/vendor/cattrs/preconf/ujson.py +52 -0
- jaclang/vendor/cattrs/py.typed +0 -0
- jaclang/vendor/cattrs/strategies/__init__.py +11 -0
- jaclang/vendor/cattrs/strategies/_class_methods.py +64 -0
- jaclang/vendor/cattrs/strategies/_subclasses.py +224 -0
- jaclang/vendor/cattrs/strategies/_unions.py +235 -0
- jaclang/vendor/cattrs/v.py +111 -0
- jaclang/vendor/cattrs-23.2.3.dist-info/METADATA +221 -0
- jaclang/vendor/cattrs-23.2.3.dist-info/RECORD +48 -0
- jaclang/vendor/cattrs-23.2.3.dist-info/WHEEL +4 -0
- jaclang/vendor/cattrs-23.2.3.dist-info/licenses/LICENSE +11 -0
- jaclang/vendor/lark/__init__.py +38 -38
- jaclang/vendor/lark/__pyinstaller/__init__.py +6 -7
- jaclang/vendor/lark/__pyinstaller/hook-lark.py +14 -14
- jaclang/vendor/lark/ast_utils.py +59 -70
- jaclang/vendor/lark/common.py +89 -113
- jaclang/vendor/lark/exceptions.py +292 -352
- jaclang/vendor/lark/grammar.py +130 -158
- jaclang/vendor/lark/grammars/common.lark +59 -59
- jaclang/vendor/lark/grammars/lark.lark +62 -62
- jaclang/vendor/lark/grammars/python.lark +302 -302
- jaclang/vendor/lark/grammars/unicode.lark +7 -7
- jaclang/vendor/lark/indenter.py +112 -118
- jaclang/vendor/lark/lark.py +661 -800
- jaclang/vendor/lark/lexer.py +678 -829
- jaclang/vendor/lark/load_grammar.py +1428 -1673
- jaclang/vendor/lark/parse_tree_builder.py +391 -466
- jaclang/vendor/lark/parser_frontends.py +257 -305
- jaclang/vendor/lark/parsers/cyk.py +340 -391
- jaclang/vendor/lark/parsers/earley.py +308 -385
- jaclang/vendor/lark/parsers/earley_common.py +42 -59
- jaclang/vendor/lark/parsers/earley_forest.py +810 -923
- jaclang/vendor/lark/parsers/grammar_analysis.py +203 -239
- jaclang/vendor/lark/parsers/lalr_analysis.py +332 -378
- jaclang/vendor/lark/parsers/lalr_interactive_parser.py +157 -171
- jaclang/vendor/lark/parsers/lalr_parser.py +122 -145
- jaclang/vendor/lark/parsers/lalr_parser_state.py +110 -141
- jaclang/vendor/lark/parsers/xearley.py +165 -209
- jaclang/vendor/lark/reconstruct.py +107 -131
- jaclang/vendor/lark/tools/__init__.py +71 -93
- jaclang/vendor/lark/tools/nearley.py +202 -240
- jaclang/vendor/lark/tools/serialize.py +32 -35
- jaclang/vendor/lark/tools/standalone.py +196 -225
- jaclang/vendor/lark/tree.py +272 -302
- jaclang/vendor/lark/tree_matcher.py +186 -194
- jaclang/vendor/lark/tree_templates.py +18 -26
- jaclang/vendor/lark/utils.py +361 -393
- jaclang/vendor/lark/visitors.py +593 -645
- jaclang/vendor/lark-1.1.9.dist-info/LICENSE +18 -0
- jaclang/vendor/lark-1.1.9.dist-info/METADATA +47 -0
- jaclang/vendor/lark-1.1.9.dist-info/RECORD +46 -0
- jaclang/vendor/lark-1.1.9.dist-info/WHEEL +5 -0
- jaclang/vendor/lark-1.1.9.dist-info/entry_points.txt +2 -0
- jaclang/vendor/lark-1.1.9.dist-info/top_level.txt +1 -0
- jaclang/vendor/lsprotocol/__init__.py +2 -0
- jaclang/vendor/lsprotocol/_hooks.py +1237 -0
- jaclang/vendor/lsprotocol/converters.py +17 -0
- jaclang/vendor/lsprotocol/py.typed +0 -0
- jaclang/vendor/lsprotocol/types.py +12898 -0
- jaclang/vendor/lsprotocol/validators.py +47 -0
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/LICENSE +21 -0
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/METADATA +65 -0
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/RECORD +10 -0
- jaclang/vendor/lsprotocol-2023.0.1.dist-info/WHEEL +4 -0
- jaclang/vendor/mypy/api.py +1 -3
- jaclang/vendor/mypy/applytype.py +24 -24
- jaclang/vendor/mypy/argmap.py +5 -9
- jaclang/vendor/mypy/binder.py +11 -42
- jaclang/vendor/mypy/build.py +78 -260
- jaclang/vendor/mypy/checker.py +394 -930
- jaclang/vendor/mypy/checkexpr.py +210 -640
- jaclang/vendor/mypy/checkmember.py +44 -94
- jaclang/vendor/mypy/checkpattern.py +32 -104
- jaclang/vendor/mypy/checkstrformat.py +38 -131
- jaclang/vendor/mypy/config_parser.py +8 -31
- jaclang/vendor/mypy/constant_fold.py +1 -3
- jaclang/vendor/mypy/constraints.py +94 -253
- jaclang/vendor/mypy/copytype.py +3 -13
- jaclang/vendor/mypy/defaults.py +2 -4
- jaclang/vendor/mypy/dmypy/client.py +30 -102
- jaclang/vendor/mypy/dmypy_server.py +31 -118
- jaclang/vendor/mypy/erasetype.py +6 -18
- jaclang/vendor/mypy/errorcodes.py +26 -64
- jaclang/vendor/mypy/errors.py +23 -117
- jaclang/vendor/mypy/evalexpr.py +1 -3
- jaclang/vendor/mypy/expandtype.py +37 -40
- jaclang/vendor/mypy/exprtotype.py +14 -27
- jaclang/vendor/mypy/fastparse.py +66 -215
- jaclang/vendor/mypy/find_sources.py +4 -14
- jaclang/vendor/mypy/fixup.py +5 -10
- jaclang/vendor/mypy/indirection.py +1 -3
- jaclang/vendor/mypy/infer.py +2 -6
- jaclang/vendor/mypy/inspections.py +3 -13
- jaclang/vendor/mypy/ipc.py +7 -28
- jaclang/vendor/mypy/join.py +20 -39
- jaclang/vendor/mypy/literals.py +2 -10
- jaclang/vendor/mypy/main.py +39 -138
- jaclang/vendor/mypy/maptype.py +2 -6
- jaclang/vendor/mypy/meet.py +23 -77
- jaclang/vendor/mypy/message_registry.py +33 -88
- jaclang/vendor/mypy/messages.py +146 -447
- jaclang/vendor/mypy/metastore.py +2 -6
- jaclang/vendor/mypy/modulefinder.py +29 -76
- jaclang/vendor/mypy/moduleinspect.py +5 -17
- jaclang/vendor/mypy/mro.py +1 -3
- jaclang/vendor/mypy/nodes.py +35 -119
- jaclang/vendor/mypy/operators.py +2 -11
- jaclang/vendor/mypy/options.py +3 -9
- jaclang/vendor/mypy/parse.py +1 -3
- jaclang/vendor/mypy/plugin.py +25 -75
- jaclang/vendor/mypy/plugins/attrs.py +53 -119
- jaclang/vendor/mypy/plugins/common.py +9 -29
- jaclang/vendor/mypy/plugins/ctypes.py +5 -15
- jaclang/vendor/mypy/plugins/dataclasses.py +42 -107
- jaclang/vendor/mypy/plugins/default.py +26 -45
- jaclang/vendor/mypy/plugins/enums.py +4 -17
- jaclang/vendor/mypy/plugins/functools.py +2 -11
- jaclang/vendor/mypy/plugins/proper_plugin.py +2 -6
- jaclang/vendor/mypy/plugins/singledispatch.py +7 -33
- jaclang/vendor/mypy/reachability.py +2 -8
- jaclang/vendor/mypy/refinfo.py +1 -3
- jaclang/vendor/mypy/report.py +23 -52
- jaclang/vendor/mypy/semanal.py +385 -693
- jaclang/vendor/mypy/semanal_classprop.py +9 -34
- jaclang/vendor/mypy/semanal_enum.py +7 -19
- jaclang/vendor/mypy/semanal_infer.py +1 -3
- jaclang/vendor/mypy/semanal_main.py +5 -25
- jaclang/vendor/mypy/semanal_namedtuple.py +17 -56
- jaclang/vendor/mypy/semanal_newtype.py +8 -27
- jaclang/vendor/mypy/semanal_pass1.py +2 -6
- jaclang/vendor/mypy/semanal_shared.py +9 -27
- jaclang/vendor/mypy/semanal_typeargs.py +12 -41
- jaclang/vendor/mypy/semanal_typeddict.py +18 -59
- jaclang/vendor/mypy/server/astdiff.py +9 -34
- jaclang/vendor/mypy/server/astmerge.py +2 -6
- jaclang/vendor/mypy/server/deps.py +22 -71
- jaclang/vendor/mypy/server/mergecheck.py +1 -3
- jaclang/vendor/mypy/server/objgraph.py +2 -8
- jaclang/vendor/mypy/server/update.py +18 -54
- jaclang/vendor/mypy/solve.py +4 -17
- jaclang/vendor/mypy/split_namespace.py +1 -3
- jaclang/vendor/mypy/stats.py +6 -24
- jaclang/vendor/mypy/strconv.py +8 -31
- jaclang/vendor/mypy/stubdoc.py +8 -38
- jaclang/vendor/mypy/stubgen.py +79 -144
- jaclang/vendor/mypy/stubgenc.py +22 -69
- jaclang/vendor/mypy/stubtest.py +62 -167
- jaclang/vendor/mypy/stubutil.py +45 -61
- jaclang/vendor/mypy/subtypes.py +57 -133
- jaclang/vendor/mypy/suggestions.py +19 -53
- jaclang/vendor/mypy/test/data.py +13 -40
- jaclang/vendor/mypy/test/helpers.py +18 -43
- jaclang/vendor/mypy/test/meta/_pytest.py +2 -13
- jaclang/vendor/mypy/test/meta/test_parse_data.py +5 -9
- jaclang/vendor/mypy/test/meta/test_update_data.py +1 -3
- jaclang/vendor/mypy/test/test_find_sources.py +14 -32
- jaclang/vendor/mypy/test/test_ref_info.py +3 -9
- jaclang/vendor/mypy/test/testargs.py +1 -4
- jaclang/vendor/mypy/test/testcheck.py +14 -47
- jaclang/vendor/mypy/test/testcmdline.py +3 -14
- jaclang/vendor/mypy/test/testconstraints.py +8 -26
- jaclang/vendor/mypy/test/testdaemon.py +2 -9
- jaclang/vendor/mypy/test/testdeps.py +4 -12
- jaclang/vendor/mypy/test/testdiff.py +2 -6
- jaclang/vendor/mypy/test/testerrorstream.py +1 -3
- jaclang/vendor/mypy/test/testfinegrained.py +18 -56
- jaclang/vendor/mypy/test/testgraph.py +3 -18
- jaclang/vendor/mypy/test/testinfer.py +13 -55
- jaclang/vendor/mypy/test/testipc.py +3 -9
- jaclang/vendor/mypy/test/testmerge.py +5 -17
- jaclang/vendor/mypy/test/testmodulefinder.py +8 -30
- jaclang/vendor/mypy/test/testmypyc.py +1 -3
- jaclang/vendor/mypy/test/testparse.py +1 -3
- jaclang/vendor/mypy/test/testpep561.py +4 -13
- jaclang/vendor/mypy/test/testpythoneval.py +2 -6
- jaclang/vendor/mypy/test/testreports.py +1 -2
- jaclang/vendor/mypy/test/testsemanal.py +3 -10
- jaclang/vendor/mypy/test/testsolve.py +5 -15
- jaclang/vendor/mypy/test/teststubgen.py +69 -210
- jaclang/vendor/mypy/test/teststubtest.py +123 -163
- jaclang/vendor/mypy/test/testsubtypes.py +14 -34
- jaclang/vendor/mypy/test/testtransform.py +2 -8
- jaclang/vendor/mypy/test/testtypegen.py +2 -8
- jaclang/vendor/mypy/test/testtypes.py +77 -253
- jaclang/vendor/mypy/test/testutil.py +1 -3
- jaclang/vendor/mypy/test/typefixture.py +11 -38
- jaclang/vendor/mypy/test/update_data.py +4 -15
- jaclang/vendor/mypy/test/visitors.py +1 -9
- jaclang/vendor/mypy/treetransform.py +8 -25
- jaclang/vendor/mypy/tvar_scope.py +23 -3
- jaclang/vendor/mypy/type_visitor.py +3 -10
- jaclang/vendor/mypy/typeanal.py +183 -309
- jaclang/vendor/mypy/typeops.py +27 -73
- jaclang/vendor/mypy/types.py +77 -185
- jaclang/vendor/mypy/types_utils.py +7 -20
- jaclang/vendor/mypy/typeshed/LICENSE +237 -0
- jaclang/vendor/mypy/typeshed/stdlib/VERSIONS +309 -0
- jaclang/vendor/mypy/typeshed/stdlib/__future__.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/__main__.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/_ast.pyi +591 -0
- jaclang/vendor/mypy/typeshed/stdlib/_bisect.pyi +84 -0
- jaclang/vendor/mypy/typeshed/stdlib/_bootlocale.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/_codecs.pyi +133 -0
- jaclang/vendor/mypy/typeshed/stdlib/_collections_abc.pyi +94 -0
- jaclang/vendor/mypy/typeshed/stdlib/_compat_pickle.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/_compression.pyi +25 -0
- jaclang/vendor/mypy/typeshed/stdlib/_csv.pyi +90 -0
- jaclang/vendor/mypy/typeshed/stdlib/_ctypes.pyi +207 -0
- jaclang/vendor/mypy/typeshed/stdlib/_curses.pyi +566 -0
- jaclang/vendor/mypy/typeshed/stdlib/_decimal.pyi +281 -0
- jaclang/vendor/mypy/typeshed/stdlib/_dummy_thread.pyi +33 -0
- jaclang/vendor/mypy/typeshed/stdlib/_dummy_threading.pyi +164 -0
- jaclang/vendor/mypy/typeshed/stdlib/_heapq.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/_imp.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/_json.pyi +49 -0
- jaclang/vendor/mypy/typeshed/stdlib/_locale.pyi +100 -0
- jaclang/vendor/mypy/typeshed/stdlib/_lsprof.pyi +35 -0
- jaclang/vendor/mypy/typeshed/stdlib/_markupbase.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/_msi.pyi +92 -0
- jaclang/vendor/mypy/typeshed/stdlib/_operator.pyi +147 -0
- jaclang/vendor/mypy/typeshed/stdlib/_osx_support.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/_posixsubprocess.pyi +33 -0
- jaclang/vendor/mypy/typeshed/stdlib/_py_abc.pyi +14 -0
- jaclang/vendor/mypy/typeshed/stdlib/_pydecimal.pyi +43 -0
- jaclang/vendor/mypy/typeshed/stdlib/_random.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/_sitebuiltins.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/_socket.pyi +803 -0
- jaclang/vendor/mypy/typeshed/stdlib/_stat.pyi +103 -0
- jaclang/vendor/mypy/typeshed/stdlib/_thread.pyi +59 -0
- jaclang/vendor/mypy/typeshed/stdlib/_threading_local.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/_tkinter.pyi +121 -0
- jaclang/vendor/mypy/typeshed/stdlib/_tracemalloc.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/__init__.pyi +347 -0
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/dbapi.pyi +37 -0
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/wsgi.pyi +44 -0
- jaclang/vendor/mypy/typeshed/stdlib/_typeshed/xml.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/_warnings.pyi +55 -0
- jaclang/vendor/mypy/typeshed/stdlib/_weakref.pyi +41 -0
- jaclang/vendor/mypy/typeshed/stdlib/_weakrefset.pyi +51 -0
- jaclang/vendor/mypy/typeshed/stdlib/_winapi.pyi +255 -0
- jaclang/vendor/mypy/typeshed/stdlib/abc.pyi +51 -0
- jaclang/vendor/mypy/typeshed/stdlib/aifc.pyi +91 -0
- jaclang/vendor/mypy/typeshed/stdlib/antigravity.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/argparse.pyi +595 -0
- jaclang/vendor/mypy/typeshed/stdlib/array.pyi +92 -0
- jaclang/vendor/mypy/typeshed/stdlib/ast.pyi +277 -0
- jaclang/vendor/mypy/typeshed/stdlib/asynchat.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/__init__.pyi +41 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_events.pyi +440 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_futures.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_subprocess.pyi +63 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/base_tasks.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/constants.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/coroutines.pyi +26 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/events.pyi +580 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/exceptions.pyi +43 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/format_helpers.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/futures.pyi +57 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/locks.pyi +121 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/log.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/mixins.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/proactor_events.pyi +64 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/protocols.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/queues.pyi +47 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/runners.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/selector_events.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/sslproto.pyi +165 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/staggered.pyi +10 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/streams.pyi +153 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/subprocess.pyi +229 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/taskgroups.pyi +25 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/tasks.pyi +497 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/threads.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/timeouts.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/transports.pyi +47 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/trsock.pyi +94 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/unix_events.pyi +196 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_events.pyi +85 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncio/windows_utils.pyi +49 -0
- jaclang/vendor/mypy/typeshed/stdlib/asyncore.pyi +90 -0
- jaclang/vendor/mypy/typeshed/stdlib/atexit.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/audioop.pyi +43 -0
- jaclang/vendor/mypy/typeshed/stdlib/base64.pyi +59 -0
- jaclang/vendor/mypy/typeshed/stdlib/bdb.pyi +102 -0
- jaclang/vendor/mypy/typeshed/stdlib/binascii.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/binhex.pyi +45 -0
- jaclang/vendor/mypy/typeshed/stdlib/bisect.pyi +4 -0
- jaclang/vendor/mypy/typeshed/stdlib/builtins.pyi +1936 -0
- jaclang/vendor/mypy/typeshed/stdlib/bz2.pyi +146 -0
- jaclang/vendor/mypy/typeshed/stdlib/cProfile.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/calendar.pyi +208 -0
- jaclang/vendor/mypy/typeshed/stdlib/cgi.pyi +118 -0
- jaclang/vendor/mypy/typeshed/stdlib/cgitb.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/chunk.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/cmath.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/cmd.pyi +45 -0
- jaclang/vendor/mypy/typeshed/stdlib/code.pyi +33 -0
- jaclang/vendor/mypy/typeshed/stdlib/codecs.pyi +285 -0
- jaclang/vendor/mypy/typeshed/stdlib/codeop.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/collections/__init__.pyi +485 -0
- jaclang/vendor/mypy/typeshed/stdlib/collections/abc.pyi +2 -0
- jaclang/vendor/mypy/typeshed/stdlib/colorsys.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/compileall.pyi +111 -0
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/__init__.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/_base.pyi +126 -0
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/process.pyi +233 -0
- jaclang/vendor/mypy/typeshed/stdlib/concurrent/futures/thread.pyi +80 -0
- jaclang/vendor/mypy/typeshed/stdlib/configparser.pyi +313 -0
- jaclang/vendor/mypy/typeshed/stdlib/contextlib.pyi +208 -0
- jaclang/vendor/mypy/typeshed/stdlib/contextvars.pyi +63 -0
- jaclang/vendor/mypy/typeshed/stdlib/copy.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/copyreg.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/crypt.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/csv.pyi +147 -0
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/__init__.pyi +187 -0
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/_endian.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/util.pyi +6 -0
- jaclang/vendor/mypy/typeshed/stdlib/ctypes/wintypes.pyi +298 -0
- jaclang/vendor/mypy/typeshed/stdlib/curses/__init__.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/curses/ascii.pyi +62 -0
- jaclang/vendor/mypy/typeshed/stdlib/curses/has_key.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/curses/panel.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/curses/textpad.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/dataclasses.pyi +315 -0
- jaclang/vendor/mypy/typeshed/stdlib/datetime.pyi +295 -0
- jaclang/vendor/mypy/typeshed/stdlib/dbm/__init__.pyi +95 -0
- jaclang/vendor/mypy/typeshed/stdlib/dbm/dumb.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/dbm/gnu.pyi +41 -0
- jaclang/vendor/mypy/typeshed/stdlib/dbm/ndbm.pyi +37 -0
- jaclang/vendor/mypy/typeshed/stdlib/decimal.pyi +2 -0
- jaclang/vendor/mypy/typeshed/stdlib/difflib.pyi +140 -0
- jaclang/vendor/mypy/typeshed/stdlib/dis.pyi +144 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/__init__.pyi +5 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/archive_util.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/bcppcompiler.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/ccompiler.pyi +152 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/cmd.pyi +66 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist.pyi +25 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_dumb.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_msi.pyi +45 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_packager.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_rpm.pyi +52 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/bdist_wininst.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_clib.pyi +27 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_ext.pyi +50 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_py.pyi +44 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/build_scripts.pyi +24 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/check.pyi +39 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/clean.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/config.pyi +83 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install.pyi +63 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_data.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_egg_info.pyi +18 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_headers.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_lib.pyi +25 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/install_scripts.pyi +18 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/register.pyi +18 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/sdist.pyi +42 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/command/upload.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/config.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/core.pyi +57 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/cygwinccompiler.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/debug.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/dep_util.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/dir_util.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/dist.pyi +146 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/errors.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/extension.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/fancy_getopt.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/file_util.pyi +14 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/filelist.pyi +50 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/log.pyi +25 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/msvccompiler.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/spawn.pyi +2 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/sysconfig.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/text_file.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/unixccompiler.pyi +3 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/util.pyi +46 -0
- jaclang/vendor/mypy/typeshed/stdlib/distutils/version.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/doctest.pyi +248 -0
- jaclang/vendor/mypy/typeshed/stdlib/dummy_threading.pyi +2 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/__init__.pyi +29 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/_header_value_parser.pyi +392 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/_policybase.pyi +51 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/base64mime.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/charset.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/contentmanager.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/encoders.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/errors.pyi +39 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/feedparser.pyi +23 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/generator.pyi +40 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/header.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/headerregistry.pyi +178 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/iterators.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/message.pyi +165 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/application.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/audio.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/base.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/image.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/message.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/multipart.pyi +18 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/nonmultipart.pyi +5 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/mime/text.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/parser.pyi +26 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/policy.pyi +38 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/quoprimime.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/email/utils.pyi +70 -0
- jaclang/vendor/mypy/typeshed/stdlib/encodings/__init__.pyi +10 -0
- jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/encodings/utf_8_sig.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/ensurepip/__init__.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/enum.pyi +320 -0
- jaclang/vendor/mypy/typeshed/stdlib/errno.pyi +222 -0
- jaclang/vendor/mypy/typeshed/stdlib/faulthandler.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/fcntl.pyi +127 -0
- jaclang/vendor/mypy/typeshed/stdlib/filecmp.pyi +57 -0
- jaclang/vendor/mypy/typeshed/stdlib/fileinput.pyi +213 -0
- jaclang/vendor/mypy/typeshed/stdlib/fnmatch.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/formatter.pyi +88 -0
- jaclang/vendor/mypy/typeshed/stdlib/fractions.pyi +150 -0
- jaclang/vendor/mypy/typeshed/stdlib/ftplib.pyi +178 -0
- jaclang/vendor/mypy/typeshed/stdlib/functools.pyi +213 -0
- jaclang/vendor/mypy/typeshed/stdlib/gc.pyi +37 -0
- jaclang/vendor/mypy/typeshed/stdlib/genericpath.pyi +52 -0
- jaclang/vendor/mypy/typeshed/stdlib/getopt.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/getpass.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/gettext.pyi +169 -0
- jaclang/vendor/mypy/typeshed/stdlib/glob.pyi +42 -0
- jaclang/vendor/mypy/typeshed/stdlib/graphlib.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/grp.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/gzip.pyi +160 -0
- jaclang/vendor/mypy/typeshed/stdlib/hashlib.pyi +167 -0
- jaclang/vendor/mypy/typeshed/stdlib/heapq.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/hmac.pyi +38 -0
- jaclang/vendor/mypy/typeshed/stdlib/html/__init__.pyi +6 -0
- jaclang/vendor/mypy/typeshed/stdlib/html/entities.pyi +6 -0
- jaclang/vendor/mypy/typeshed/stdlib/html/parser.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/http/__init__.pyi +105 -0
- jaclang/vendor/mypy/typeshed/stdlib/http/client.pyi +259 -0
- jaclang/vendor/mypy/typeshed/stdlib/http/cookiejar.pyi +159 -0
- jaclang/vendor/mypy/typeshed/stdlib/http/cookies.pyi +60 -0
- jaclang/vendor/mypy/typeshed/stdlib/http/server.pyi +83 -0
- jaclang/vendor/mypy/typeshed/stdlib/imaplib.pyi +168 -0
- jaclang/vendor/mypy/typeshed/stdlib/imghdr.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/imp.pyi +62 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/__init__.pyi +24 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/_abc.pyi +15 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/abc.pyi +172 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/machinery.pyi +179 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/__init__.pyi +285 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/metadata/_meta.pyi +49 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/readers.pyi +68 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/__init__.pyi +46 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/abc.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/readers.pyi +14 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/resources/simple.pyi +56 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/simple.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/importlib/util.pyi +43 -0
- jaclang/vendor/mypy/typeshed/stdlib/inspect.pyi +632 -0
- jaclang/vendor/mypy/typeshed/stdlib/io.pyi +238 -0
- jaclang/vendor/mypy/typeshed/stdlib/ipaddress.pyi +208 -0
- jaclang/vendor/mypy/typeshed/stdlib/itertools.pyi +273 -0
- jaclang/vendor/mypy/typeshed/stdlib/json/__init__.pyi +61 -0
- jaclang/vendor/mypy/typeshed/stdlib/json/decoder.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/json/encoder.pyi +40 -0
- jaclang/vendor/mypy/typeshed/stdlib/json/tool.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/keyword.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/btm_matcher.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixer_base.pyi +42 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi +10 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_except.pyi +14 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_future.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi +15 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_import.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi +6 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_input.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi +7 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_long.pyi +7 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_map.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi +10 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_next.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_print.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi +7 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi +17 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_types.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi +15 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi +12 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/main.pyi +42 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/__init__.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/driver.pyi +27 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/grammar.pyi +24 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/literals.pyi +7 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/parse.pyi +30 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/pgen.pyi +50 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/token.pyi +67 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi +96 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pygram.pyi +114 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/pytree.pyi +117 -0
- jaclang/vendor/mypy/typeshed/stdlib/lib2to3/refactor.pyi +82 -0
- jaclang/vendor/mypy/typeshed/stdlib/linecache.pyi +23 -0
- jaclang/vendor/mypy/typeshed/stdlib/locale.pyi +152 -0
- jaclang/vendor/mypy/typeshed/stdlib/logging/__init__.pyi +658 -0
- jaclang/vendor/mypy/typeshed/stdlib/logging/config.pyi +134 -0
- jaclang/vendor/mypy/typeshed/stdlib/logging/handlers.pyi +275 -0
- jaclang/vendor/mypy/typeshed/stdlib/lzma.pyi +197 -0
- jaclang/vendor/mypy/typeshed/stdlib/mailbox.pyi +256 -0
- jaclang/vendor/mypy/typeshed/stdlib/mailcap.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/marshal.pyi +33 -0
- jaclang/vendor/mypy/typeshed/stdlib/math.pyi +125 -0
- jaclang/vendor/mypy/typeshed/stdlib/mimetypes.pyi +46 -0
- jaclang/vendor/mypy/typeshed/stdlib/mmap.pyi +113 -0
- jaclang/vendor/mypy/typeshed/stdlib/modulefinder.pyi +66 -0
- jaclang/vendor/mypy/typeshed/stdlib/msilib/__init__.pyi +177 -0
- jaclang/vendor/mypy/typeshed/stdlib/msilib/schema.pyi +94 -0
- jaclang/vendor/mypy/typeshed/stdlib/msilib/sequence.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/msilib/text.pyi +7 -0
- jaclang/vendor/mypy/typeshed/stdlib/msvcrt.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/__init__.pyi +90 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/connection.pyi +75 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/context.pyi +189 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/__init__.pyi +77 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/dummy/connection.pyi +39 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/forkserver.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/heap.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/managers.pyi +212 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/pool.pyi +103 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_fork.pyi +23 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_forkserver.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi +30 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/process.pyi +39 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/queues.pyi +41 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/reduction.pyi +90 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_sharer.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/resource_tracker.pyi +18 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/shared_memory.pyi +40 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/sharedctypes.pyi +107 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/spawn.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/synchronize.pyi +54 -0
- jaclang/vendor/mypy/typeshed/stdlib/multiprocessing/util.pyi +98 -0
- jaclang/vendor/mypy/typeshed/stdlib/netrc.pyi +23 -0
- jaclang/vendor/mypy/typeshed/stdlib/nis.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/nntplib.pyi +125 -0
- jaclang/vendor/mypy/typeshed/stdlib/nt.pyi +111 -0
- jaclang/vendor/mypy/typeshed/stdlib/ntpath.pyi +119 -0
- jaclang/vendor/mypy/typeshed/stdlib/nturl2path.pyi +2 -0
- jaclang/vendor/mypy/typeshed/stdlib/numbers.pyi +209 -0
- jaclang/vendor/mypy/typeshed/stdlib/opcode.pyi +59 -0
- jaclang/vendor/mypy/typeshed/stdlib/operator.pyi +110 -0
- jaclang/vendor/mypy/typeshed/stdlib/optparse.pyi +255 -0
- jaclang/vendor/mypy/typeshed/stdlib/os/__init__.pyi +1157 -0
- jaclang/vendor/mypy/typeshed/stdlib/os/path.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/ossaudiodev.pyi +131 -0
- jaclang/vendor/mypy/typeshed/stdlib/parser.pyi +24 -0
- jaclang/vendor/mypy/typeshed/stdlib/pathlib.pyi +232 -0
- jaclang/vendor/mypy/typeshed/stdlib/pdb.pyi +181 -0
- jaclang/vendor/mypy/typeshed/stdlib/pickle.pyi +271 -0
- jaclang/vendor/mypy/typeshed/stdlib/pickletools.pyi +167 -0
- jaclang/vendor/mypy/typeshed/stdlib/pipes.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/pkgutil.pyi +53 -0
- jaclang/vendor/mypy/typeshed/stdlib/platform.pyi +42 -0
- jaclang/vendor/mypy/typeshed/stdlib/plistlib.pyi +113 -0
- jaclang/vendor/mypy/typeshed/stdlib/poplib.pyi +71 -0
- jaclang/vendor/mypy/typeshed/stdlib/posix.pyi +361 -0
- jaclang/vendor/mypy/typeshed/stdlib/posixpath.pyi +161 -0
- jaclang/vendor/mypy/typeshed/stdlib/pprint.pyi +112 -0
- jaclang/vendor/mypy/typeshed/stdlib/profile.pyi +31 -0
- jaclang/vendor/mypy/typeshed/stdlib/pstats.pyi +80 -0
- jaclang/vendor/mypy/typeshed/stdlib/pty.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/pwd.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/py_compile.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/pyclbr.pyi +74 -0
- jaclang/vendor/mypy/typeshed/stdlib/pydoc.pyi +261 -0
- jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/pydoc_data/topics.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/pyexpat/__init__.pyi +85 -0
- jaclang/vendor/mypy/typeshed/stdlib/pyexpat/errors.pyi +49 -0
- jaclang/vendor/mypy/typeshed/stdlib/pyexpat/model.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/queue.pyi +66 -0
- jaclang/vendor/mypy/typeshed/stdlib/quopri.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/random.pyi +138 -0
- jaclang/vendor/mypy/typeshed/stdlib/re.pyi +290 -0
- jaclang/vendor/mypy/typeshed/stdlib/readline.pyi +36 -0
- jaclang/vendor/mypy/typeshed/stdlib/reprlib.pyi +65 -0
- jaclang/vendor/mypy/typeshed/stdlib/resource.pyi +94 -0
- jaclang/vendor/mypy/typeshed/stdlib/rlcompleter.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/runpy.pyi +24 -0
- jaclang/vendor/mypy/typeshed/stdlib/sched.pyi +42 -0
- jaclang/vendor/mypy/typeshed/stdlib/secrets.pyi +15 -0
- jaclang/vendor/mypy/typeshed/stdlib/select.pyi +155 -0
- jaclang/vendor/mypy/typeshed/stdlib/selectors.pyi +67 -0
- jaclang/vendor/mypy/typeshed/stdlib/shelve.pyi +46 -0
- jaclang/vendor/mypy/typeshed/stdlib/shlex.pyi +63 -0
- jaclang/vendor/mypy/typeshed/stdlib/shutil.pyi +185 -0
- jaclang/vendor/mypy/typeshed/stdlib/signal.pyi +188 -0
- jaclang/vendor/mypy/typeshed/stdlib/site.pyi +27 -0
- jaclang/vendor/mypy/typeshed/stdlib/smtpd.pyi +91 -0
- jaclang/vendor/mypy/typeshed/stdlib/smtplib.pyi +204 -0
- jaclang/vendor/mypy/typeshed/stdlib/sndhdr.pyi +14 -0
- jaclang/vendor/mypy/typeshed/stdlib/socket.pyi +825 -0
- jaclang/vendor/mypy/typeshed/stdlib/socketserver.pyi +168 -0
- jaclang/vendor/mypy/typeshed/stdlib/spwd.pyi +41 -0
- jaclang/vendor/mypy/typeshed/stdlib/sqlite3/__init__.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/sqlite3/dbapi2.pyi +551 -0
- jaclang/vendor/mypy/typeshed/stdlib/sre_compile.pyi +11 -0
- jaclang/vendor/mypy/typeshed/stdlib/sre_constants.pyi +130 -0
- jaclang/vendor/mypy/typeshed/stdlib/sre_parse.pyi +104 -0
- jaclang/vendor/mypy/typeshed/stdlib/ssl.pyi +537 -0
- jaclang/vendor/mypy/typeshed/stdlib/stat.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/statistics.pyi +132 -0
- jaclang/vendor/mypy/typeshed/stdlib/string.pyi +83 -0
- jaclang/vendor/mypy/typeshed/stdlib/stringprep.pyi +27 -0
- jaclang/vendor/mypy/typeshed/stdlib/struct.pyi +26 -0
- jaclang/vendor/mypy/typeshed/stdlib/subprocess.pyi +2615 -0
- jaclang/vendor/mypy/typeshed/stdlib/sunau.pyi +86 -0
- jaclang/vendor/mypy/typeshed/stdlib/symbol.pyi +93 -0
- jaclang/vendor/mypy/typeshed/stdlib/symtable.pyi +58 -0
- jaclang/vendor/mypy/typeshed/stdlib/sys/__init__.pyi +373 -0
- jaclang/vendor/mypy/typeshed/stdlib/sys/_monitoring.pyi +52 -0
- jaclang/vendor/mypy/typeshed/stdlib/sysconfig.pyi +48 -0
- jaclang/vendor/mypy/typeshed/stdlib/syslog.pyi +46 -0
- jaclang/vendor/mypy/typeshed/stdlib/tabnanny.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/tarfile.pyi +441 -0
- jaclang/vendor/mypy/typeshed/stdlib/telnetlib.pyi +122 -0
- jaclang/vendor/mypy/typeshed/stdlib/tempfile.pyi +477 -0
- jaclang/vendor/mypy/typeshed/stdlib/termios.pyi +267 -0
- jaclang/vendor/mypy/typeshed/stdlib/textwrap.pyi +103 -0
- jaclang/vendor/mypy/typeshed/stdlib/this.pyi +2 -0
- jaclang/vendor/mypy/typeshed/stdlib/threading.pyi +187 -0
- jaclang/vendor/mypy/typeshed/stdlib/time.pyi +108 -0
- jaclang/vendor/mypy/typeshed/stdlib/timeit.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/__init__.pyi +3654 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/colorchooser.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/commondialog.pyi +14 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/constants.pyi +80 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/dialog.pyi +16 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/dnd.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/filedialog.pyi +151 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/font.pyi +116 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/messagebox.pyi +44 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/scrolledtext.pyi +9 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/simpledialog.pyi +54 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/tix.pyi +299 -0
- jaclang/vendor/mypy/typeshed/stdlib/tkinter/ttk.pyi +1204 -0
- jaclang/vendor/mypy/typeshed/stdlib/token.pyi +159 -0
- jaclang/vendor/mypy/typeshed/stdlib/tokenize.pyi +177 -0
- jaclang/vendor/mypy/typeshed/stdlib/tomllib.pyi +10 -0
- jaclang/vendor/mypy/typeshed/stdlib/trace.pyi +79 -0
- jaclang/vendor/mypy/typeshed/stdlib/traceback.pyi +262 -0
- jaclang/vendor/mypy/typeshed/stdlib/tracemalloc.pyi +124 -0
- jaclang/vendor/mypy/typeshed/stdlib/tty.pyi +30 -0
- jaclang/vendor/mypy/typeshed/stdlib/turtle.pyi +713 -0
- jaclang/vendor/mypy/typeshed/stdlib/types.pyi +614 -0
- jaclang/vendor/mypy/typeshed/stdlib/typing.pyi +976 -0
- jaclang/vendor/mypy/typeshed/stdlib/typing_extensions.pyi +509 -0
- jaclang/vendor/mypy/typeshed/stdlib/unicodedata.pyi +73 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/__init__.pyi +67 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/_log.pyi +27 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/async_case.pyi +21 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/case.pyi +342 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/loader.pyi +51 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/main.pyi +69 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/mock.pyi +430 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/result.pyi +47 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/runner.pyi +72 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/signals.pyi +15 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/suite.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/unittest/util.pyi +23 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/error.pyi +23 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/parse.pyi +210 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/request.pyi +400 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/response.pyi +43 -0
- jaclang/vendor/mypy/typeshed/stdlib/urllib/robotparser.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/uu.pyi +13 -0
- jaclang/vendor/mypy/typeshed/stdlib/uuid.pyi +100 -0
- jaclang/vendor/mypy/typeshed/stdlib/warnings.pyi +112 -0
- jaclang/vendor/mypy/typeshed/stdlib/wave.pyi +85 -0
- jaclang/vendor/mypy/typeshed/stdlib/weakref.pyi +149 -0
- jaclang/vendor/mypy/typeshed/stdlib/webbrowser.pyi +74 -0
- jaclang/vendor/mypy/typeshed/stdlib/winreg.pyi +132 -0
- jaclang/vendor/mypy/typeshed/stdlib/winsound.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/handlers.pyi +91 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/headers.pyi +26 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/simple_server.pyi +37 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/types.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/util.pyi +24 -0
- jaclang/vendor/mypy/typeshed/stdlib/wsgiref/validate.pyi +50 -0
- jaclang/vendor/mypy/typeshed/stdlib/xdrlib.pyi +57 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/__init__.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/NodeFilter.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/__init__.pyi +69 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/domreg.pyi +8 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/expatbuilder.pyi +100 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minicompat.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/minidom.pyi +404 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/pulldom.pyi +94 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/dom/xmlbuilder.pyi +108 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementInclude.pyi +28 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementPath.pyi +34 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/ElementTree.pyi +327 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/etree/cElementTree.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/__init__.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/__init__.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/errors.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/parsers/expat/model.pyi +1 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/__init__.pyi +25 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/_exceptions.pyi +19 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/handler.pyi +55 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/saxutils.pyi +60 -0
- jaclang/vendor/mypy/typeshed/stdlib/xml/sax/xmlreader.pyi +87 -0
- jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/__init__.pyi +0 -0
- jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/client.pyi +296 -0
- jaclang/vendor/mypy/typeshed/stdlib/xmlrpc/server.pyi +143 -0
- jaclang/vendor/mypy/typeshed/stdlib/xxlimited.pyi +22 -0
- jaclang/vendor/mypy/typeshed/stdlib/zipapp.pyi +20 -0
- jaclang/vendor/mypy/typeshed/stdlib/zipfile/__init__.pyi +306 -0
- jaclang/vendor/mypy/typeshed/stdlib/zipfile/_path.pyi +95 -0
- jaclang/vendor/mypy/typeshed/stdlib/zipimport.pyi +32 -0
- jaclang/vendor/mypy/typeshed/stdlib/zlib.pyi +56 -0
- jaclang/vendor/mypy/typeshed/stdlib/zoneinfo/__init__.pyi +38 -0
- jaclang/vendor/mypy/typeshed/stubs/mypy-extensions/mypy_extensions.pyi +218 -0
- jaclang/vendor/mypy/typestate.py +5 -15
- jaclang/vendor/mypy/typetraverser.py +9 -3
- jaclang/vendor/mypy/typevars.py +2 -8
- jaclang/vendor/mypy/util.py +14 -45
- jaclang/vendor/mypy/version.py +1 -19
- jaclang/vendor/mypy/visitor.py +3 -9
- jaclang/vendor/mypy/xml/mypy-html.css +104 -0
- jaclang/vendor/mypy/xml/mypy-html.xslt +81 -0
- jaclang/vendor/mypy/xml/mypy-txt.xslt +100 -0
- jaclang/vendor/mypy/xml/mypy.xsd +50 -0
- jaclang/vendor/mypy-1.10.0.dist-info/LICENSE +229 -0
- jaclang/vendor/mypy-1.10.0.dist-info/METADATA +48 -0
- jaclang/vendor/mypy-1.10.0.dist-info/RECORD +1241 -0
- jaclang/vendor/mypy-1.10.0.dist-info/WHEEL +6 -0
- jaclang/vendor/mypy-1.10.0.dist-info/entry_points.txt +6 -0
- jaclang/vendor/mypy-1.10.0.dist-info/top_level.txt +3 -0
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/LICENSE +27 -0
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/METADATA +29 -0
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/RECORD +6 -0
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/WHEEL +5 -0
- jaclang/vendor/mypy_extensions-1.0.0.dist-info/top_level.txt +1 -0
- jaclang/vendor/mypy_extensions.py +21 -40
- jaclang/vendor/mypyc/README.md +133 -0
- jaclang/vendor/mypyc/__main__.py +1 -3
- jaclang/vendor/mypyc/analysis/attrdefined.py +6 -22
- jaclang/vendor/mypyc/analysis/dataflow.py +5 -3
- jaclang/vendor/mypyc/analysis/ircheck.py +13 -26
- jaclang/vendor/mypyc/analysis/selfleaks.py +4 -0
- jaclang/vendor/mypyc/build.py +6 -19
- jaclang/vendor/mypyc/codegen/emit.py +20 -73
- jaclang/vendor/mypyc/codegen/emitclass.py +22 -72
- jaclang/vendor/mypyc/codegen/emitfunc.py +20 -62
- jaclang/vendor/mypyc/codegen/emitmodule.py +50 -117
- jaclang/vendor/mypyc/codegen/emitwrapper.py +22 -78
- jaclang/vendor/mypyc/codegen/literals.py +1 -3
- jaclang/vendor/mypyc/common.py +1 -3
- jaclang/vendor/mypyc/doc/Makefile +20 -0
- jaclang/vendor/mypyc/doc/bool_operations.rst +27 -0
- jaclang/vendor/mypyc/doc/compilation_units.rst +20 -0
- jaclang/vendor/mypyc/doc/conf.py +59 -0
- jaclang/vendor/mypyc/doc/cpython-timings.md +25 -0
- jaclang/vendor/mypyc/doc/dev-intro.md +548 -0
- jaclang/vendor/mypyc/doc/dict_operations.rst +59 -0
- jaclang/vendor/mypyc/doc/differences_from_python.rst +332 -0
- jaclang/vendor/mypyc/doc/float_operations.rst +50 -0
- jaclang/vendor/mypyc/doc/future.md +42 -0
- jaclang/vendor/mypyc/doc/getting_started.rst +240 -0
- jaclang/vendor/mypyc/doc/index.rst +61 -0
- jaclang/vendor/mypyc/doc/int_operations.rst +162 -0
- jaclang/vendor/mypyc/doc/introduction.rst +150 -0
- jaclang/vendor/mypyc/doc/list_operations.rst +65 -0
- jaclang/vendor/mypyc/doc/make.bat +35 -0
- jaclang/vendor/mypyc/doc/native_classes.rst +206 -0
- jaclang/vendor/mypyc/doc/native_operations.rst +55 -0
- jaclang/vendor/mypyc/doc/performance_tips_and_tricks.rst +244 -0
- jaclang/vendor/mypyc/doc/set_operations.rst +47 -0
- jaclang/vendor/mypyc/doc/str_operations.rst +35 -0
- jaclang/vendor/mypyc/doc/tuple_operations.rst +33 -0
- jaclang/vendor/mypyc/doc/using_type_annotations.rst +398 -0
- jaclang/vendor/mypyc/external/googletest/LICENSE +28 -0
- jaclang/vendor/mypyc/external/googletest/README.md +280 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-death-test.h +294 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-message.h +250 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h +1444 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-param-test.h.pump +510 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-printers.h +993 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-spi.h +232 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-test-part.h +179 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest-typed-test.h +263 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest.h +2236 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_pred_impl.h +358 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/gtest_prod.h +58 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/custom/gtest.h +41 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-filepath.h +206 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-internal.h +1238 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-param-util.h +731 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-port.h +2560 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-string.h +167 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
- jaclang/vendor/mypyc/external/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
- jaclang/vendor/mypyc/external/googletest/make/Makefile +61 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-all.cc +48 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-death-test.cc +1342 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-filepath.cc +387 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-internal-inl.h +1183 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-port.cc +1259 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-printers.cc +373 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-test-part.cc +110 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest-typed-test.cc +118 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest.cc +5388 -0
- jaclang/vendor/mypyc/external/googletest/src/gtest_main.cc +38 -0
- jaclang/vendor/mypyc/ir/class_ir.py +8 -24
- jaclang/vendor/mypyc/ir/func_ir.py +3 -16
- jaclang/vendor/mypyc/ir/module_ir.py +2 -6
- jaclang/vendor/mypyc/ir/ops.py +103 -66
- jaclang/vendor/mypyc/ir/pprint.py +35 -55
- jaclang/vendor/mypyc/ir/rtypes.py +16 -48
- jaclang/vendor/mypyc/irbuild/ast_helpers.py +4 -1
- jaclang/vendor/mypyc/irbuild/builder.py +46 -148
- jaclang/vendor/mypyc/irbuild/callable_class.py +5 -19
- jaclang/vendor/mypyc/irbuild/classdef.py +27 -83
- jaclang/vendor/mypyc/irbuild/env_class.py +3 -9
- jaclang/vendor/mypyc/irbuild/expression.py +42 -100
- jaclang/vendor/mypyc/irbuild/for_helpers.py +56 -105
- jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +1 -4
- jaclang/vendor/mypyc/irbuild/function.py +40 -132
- jaclang/vendor/mypyc/irbuild/generator.py +14 -49
- jaclang/vendor/mypyc/irbuild/ll_builder.py +197 -426
- jaclang/vendor/mypyc/irbuild/mapper.py +2 -13
- jaclang/vendor/mypyc/irbuild/match.py +11 -36
- jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +2 -7
- jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +1 -4
- jaclang/vendor/mypyc/irbuild/prepare.py +25 -83
- jaclang/vendor/mypyc/irbuild/specialize.py +22 -72
- jaclang/vendor/mypyc/irbuild/statement.py +30 -96
- jaclang/vendor/mypyc/irbuild/targets.py +1 -3
- jaclang/vendor/mypyc/irbuild/util.py +2 -8
- jaclang/vendor/mypyc/irbuild/vtable.py +1 -3
- jaclang/vendor/mypyc/lib-rt/CPy.h +638 -0
- jaclang/vendor/mypyc/lib-rt/bytes_ops.c +143 -0
- jaclang/vendor/mypyc/lib-rt/dict_ops.c +446 -0
- jaclang/vendor/mypyc/lib-rt/exc_ops.c +259 -0
- jaclang/vendor/mypyc/lib-rt/float_ops.c +192 -0
- jaclang/vendor/mypyc/lib-rt/generic_ops.c +64 -0
- jaclang/vendor/mypyc/lib-rt/getargs.c +450 -0
- jaclang/vendor/mypyc/lib-rt/getargsfast.c +569 -0
- jaclang/vendor/mypyc/lib-rt/init.c +13 -0
- jaclang/vendor/mypyc/lib-rt/int_ops.c +803 -0
- jaclang/vendor/mypyc/lib-rt/list_ops.c +335 -0
- jaclang/vendor/mypyc/lib-rt/misc_ops.c +942 -0
- jaclang/vendor/mypyc/lib-rt/module_shim.tmpl +18 -0
- jaclang/vendor/mypyc/lib-rt/mypyc_util.h +118 -0
- jaclang/vendor/mypyc/lib-rt/pythoncapi_compat.h +497 -0
- jaclang/vendor/mypyc/lib-rt/pythonsupport.h +533 -0
- jaclang/vendor/mypyc/lib-rt/set_ops.c +17 -0
- jaclang/vendor/mypyc/lib-rt/setup.py +70 -0
- jaclang/vendor/mypyc/lib-rt/str_ops.c +241 -0
- jaclang/vendor/mypyc/lib-rt/test_capi.cc +585 -0
- jaclang/vendor/mypyc/lib-rt/tuple_ops.c +61 -0
- jaclang/vendor/mypyc/lower/__init__.py +0 -0
- jaclang/vendor/mypyc/lower/int_ops.py +113 -0
- jaclang/vendor/mypyc/lower/list_ops.py +45 -0
- jaclang/vendor/mypyc/lower/misc_ops.py +12 -0
- jaclang/vendor/mypyc/lower/registry.py +26 -0
- jaclang/vendor/mypyc/options.py +1 -3
- jaclang/vendor/mypyc/primitives/dict_ops.py +1 -4
- jaclang/vendor/mypyc/primitives/exc_ops.py +3 -12
- jaclang/vendor/mypyc/primitives/int_ops.py +22 -32
- jaclang/vendor/mypyc/primitives/list_ops.py +10 -0
- jaclang/vendor/mypyc/primitives/misc_ops.py +28 -22
- jaclang/vendor/mypyc/primitives/registry.py +56 -19
- jaclang/vendor/mypyc/primitives/set_ops.py +1 -3
- jaclang/vendor/mypyc/rt_subtype.py +1 -2
- jaclang/vendor/mypyc/sametype.py +2 -5
- jaclang/vendor/mypyc/subtype.py +3 -12
- jaclang/vendor/mypyc/test/test_alwaysdefined.py +2 -6
- jaclang/vendor/mypyc/test/test_analysis.py +8 -24
- jaclang/vendor/mypyc/test/test_cheader.py +12 -4
- jaclang/vendor/mypyc/test/test_emit.py +4 -14
- jaclang/vendor/mypyc/test/test_emitclass.py +1 -8
- jaclang/vendor/mypyc/test/test_emitfunc.py +30 -77
- jaclang/vendor/mypyc/test/test_emitwrapper.py +1 -3
- jaclang/vendor/mypyc/test/test_exceptions.py +4 -12
- jaclang/vendor/mypyc/test/test_external.py +1 -5
- jaclang/vendor/mypyc/test/test_irbuild.py +2 -6
- jaclang/vendor/mypyc/test/test_ircheck.py +6 -17
- jaclang/vendor/mypyc/test/test_literals.py +1 -4
- jaclang/vendor/mypyc/test/test_lowering.py +56 -0
- jaclang/vendor/mypyc/test/test_namegen.py +1 -4
- jaclang/vendor/mypyc/test/test_optimizations.py +68 -0
- jaclang/vendor/mypyc/test/test_refcount.py +3 -9
- jaclang/vendor/mypyc/test/test_run.py +12 -38
- jaclang/vendor/mypyc/test/test_serialization.py +1 -3
- jaclang/vendor/mypyc/test/test_struct.py +3 -11
- jaclang/vendor/mypyc/test/test_tuplename.py +4 -13
- jaclang/vendor/mypyc/test/test_typeops.py +1 -4
- jaclang/vendor/mypyc/test/testutil.py +2 -6
- jaclang/vendor/mypyc/test-data/alwaysdefined.test +732 -0
- jaclang/vendor/mypyc/test-data/analysis.test +470 -0
- jaclang/vendor/mypyc/test-data/commandline.test +245 -0
- jaclang/vendor/mypyc/test-data/driver/driver.py +48 -0
- jaclang/vendor/mypyc/test-data/exceptions-freq.test +125 -0
- jaclang/vendor/mypyc/test-data/exceptions.test +699 -0
- jaclang/vendor/mypyc/test-data/fixtures/ir.py +373 -0
- jaclang/vendor/mypyc/test-data/fixtures/testutil.py +103 -0
- jaclang/vendor/mypyc/test-data/fixtures/typing-full.pyi +169 -0
- jaclang/vendor/mypyc/test-data/irbuild-any.test +236 -0
- jaclang/vendor/mypyc/test-data/irbuild-basic.test +3399 -0
- jaclang/vendor/mypyc/test-data/irbuild-bool.test +424 -0
- jaclang/vendor/mypyc/test-data/irbuild-bytes.test +181 -0
- jaclang/vendor/mypyc/test-data/irbuild-classes.test +1302 -0
- jaclang/vendor/mypyc/test-data/irbuild-constant-fold.test +480 -0
- jaclang/vendor/mypyc/test-data/irbuild-dict.test +584 -0
- jaclang/vendor/mypyc/test-data/irbuild-dunders.test +215 -0
- jaclang/vendor/mypyc/test-data/irbuild-float.test +497 -0
- jaclang/vendor/mypyc/test-data/irbuild-generics.test +150 -0
- jaclang/vendor/mypyc/test-data/irbuild-glue-methods.test +437 -0
- jaclang/vendor/mypyc/test-data/irbuild-i16.test +526 -0
- jaclang/vendor/mypyc/test-data/irbuild-i32.test +598 -0
- jaclang/vendor/mypyc/test-data/irbuild-i64.test +2144 -0
- jaclang/vendor/mypyc/test-data/irbuild-int.test +194 -0
- jaclang/vendor/mypyc/test-data/irbuild-isinstance.test +109 -0
- jaclang/vendor/mypyc/test-data/irbuild-lists.test +513 -0
- jaclang/vendor/mypyc/test-data/irbuild-match.test +1717 -0
- jaclang/vendor/mypyc/test-data/irbuild-math.test +64 -0
- jaclang/vendor/mypyc/test-data/irbuild-nested.test +807 -0
- jaclang/vendor/mypyc/test-data/irbuild-optional.test +536 -0
- jaclang/vendor/mypyc/test-data/irbuild-set.test +806 -0
- jaclang/vendor/mypyc/test-data/irbuild-singledispatch.test +257 -0
- jaclang/vendor/mypyc/test-data/irbuild-statements.test +1060 -0
- jaclang/vendor/mypyc/test-data/irbuild-str.test +312 -0
- jaclang/vendor/mypyc/test-data/irbuild-strip-asserts.test +12 -0
- jaclang/vendor/mypyc/test-data/irbuild-try.test +523 -0
- jaclang/vendor/mypyc/test-data/irbuild-tuple.test +386 -0
- jaclang/vendor/mypyc/test-data/irbuild-u8.test +543 -0
- jaclang/vendor/mypyc/test-data/irbuild-unreachable.test +241 -0
- jaclang/vendor/mypyc/test-data/irbuild-vectorcall.test +153 -0
- jaclang/vendor/mypyc/test-data/lowering-int.test +377 -0
- jaclang/vendor/mypyc/test-data/lowering-list.test +33 -0
- jaclang/vendor/mypyc/test-data/opt-copy-propagation.test +400 -0
- jaclang/vendor/mypyc/test-data/opt-flag-elimination.test +296 -0
- jaclang/vendor/mypyc/test-data/refcount.test +1482 -0
- jaclang/vendor/mypyc/test-data/run-async.test +173 -0
- jaclang/vendor/mypyc/test-data/run-attrs.test +318 -0
- jaclang/vendor/mypyc/test-data/run-bench.test +196 -0
- jaclang/vendor/mypyc/test-data/run-bools.test +229 -0
- jaclang/vendor/mypyc/test-data/run-bytes.test +302 -0
- jaclang/vendor/mypyc/test-data/run-classes.test +2505 -0
- jaclang/vendor/mypyc/test-data/run-dicts.test +334 -0
- jaclang/vendor/mypyc/test-data/run-dunders.test +945 -0
- jaclang/vendor/mypyc/test-data/run-exceptions.test +448 -0
- jaclang/vendor/mypyc/test-data/run-floats.test +516 -0
- jaclang/vendor/mypyc/test-data/run-functions.test +1310 -0
- jaclang/vendor/mypyc/test-data/run-generators.test +682 -0
- jaclang/vendor/mypyc/test-data/run-i16.test +338 -0
- jaclang/vendor/mypyc/test-data/run-i32.test +336 -0
- jaclang/vendor/mypyc/test-data/run-i64.test +1519 -0
- jaclang/vendor/mypyc/test-data/run-imports.test +265 -0
- jaclang/vendor/mypyc/test-data/run-integers.test +540 -0
- jaclang/vendor/mypyc/test-data/run-lists.test +411 -0
- jaclang/vendor/mypyc/test-data/run-loops.test +485 -0
- jaclang/vendor/mypyc/test-data/run-match.test +283 -0
- jaclang/vendor/mypyc/test-data/run-math.test +106 -0
- jaclang/vendor/mypyc/test-data/run-misc.test +1170 -0
- jaclang/vendor/mypyc/test-data/run-multimodule.test +887 -0
- jaclang/vendor/mypyc/test-data/run-mypy-sim.test +138 -0
- jaclang/vendor/mypyc/test-data/run-primitives.test +375 -0
- jaclang/vendor/mypyc/test-data/run-python37.test +159 -0
- jaclang/vendor/mypyc/test-data/run-python38.test +88 -0
- jaclang/vendor/mypyc/test-data/run-sets.test +150 -0
- jaclang/vendor/mypyc/test-data/run-singledispatch.test +698 -0
- jaclang/vendor/mypyc/test-data/run-strings.test +641 -0
- jaclang/vendor/mypyc/test-data/run-traits.test +411 -0
- jaclang/vendor/mypyc/test-data/run-tuples.test +258 -0
- jaclang/vendor/mypyc/test-data/run-u8.test +303 -0
- jaclang/vendor/mypyc/transform/copy_propagation.py +94 -0
- jaclang/vendor/mypyc/transform/exceptions.py +1 -5
- jaclang/vendor/mypyc/transform/flag_elimination.py +108 -0
- jaclang/vendor/mypyc/transform/ir_transform.py +368 -0
- jaclang/vendor/mypyc/transform/lower.py +33 -0
- jaclang/vendor/mypyc/transform/refcount.py +7 -30
- jaclang/vendor/mypyc/transform/uninit.py +4 -15
- jaclang/vendor/pluggy/__init__.py +15 -11
- jaclang/vendor/pluggy/_callers.py +34 -5
- jaclang/vendor/pluggy/_hooks.py +35 -7
- jaclang/vendor/pluggy/_manager.py +26 -3
- jaclang/vendor/pluggy/_result.py +0 -15
- jaclang/vendor/pluggy/_version.py +16 -0
- jaclang/vendor/pluggy/_warnings.py +27 -0
- jaclang/vendor/pluggy-1.5.0.dist-info/LICENSE +21 -0
- jaclang/vendor/pluggy-1.5.0.dist-info/METADATA +155 -0
- jaclang/vendor/pluggy-1.5.0.dist-info/RECORD +14 -0
- jaclang/vendor/pluggy-1.5.0.dist-info/top_level.txt +1 -0
- jaclang/vendor/pygls/__init__.py +25 -0
- jaclang/vendor/pygls/capabilities.py +460 -0
- jaclang/vendor/pygls/client.py +176 -0
- jaclang/vendor/pygls/constants.py +26 -0
- jaclang/vendor/pygls/exceptions.py +215 -0
- jaclang/vendor/pygls/feature_manager.py +244 -0
- jaclang/vendor/pygls/lsp/__init__.py +139 -0
- jaclang/vendor/pygls/lsp/client.py +1961 -0
- jaclang/vendor/pygls/progress.py +79 -0
- jaclang/vendor/pygls/protocol/__init__.py +78 -0
- jaclang/vendor/pygls/protocol/json_rpc.py +560 -0
- jaclang/vendor/pygls/protocol/language_server.py +569 -0
- jaclang/vendor/pygls/protocol/lsp_meta.py +51 -0
- jaclang/vendor/pygls/py.typed +2 -0
- jaclang/vendor/pygls/server.py +616 -0
- jaclang/vendor/pygls/uris.py +184 -0
- jaclang/vendor/pygls/workspace/__init__.py +97 -0
- jaclang/vendor/pygls/workspace/position_codec.py +206 -0
- jaclang/vendor/pygls/workspace/text_document.py +238 -0
- jaclang/vendor/pygls/workspace/workspace.py +323 -0
- jaclang/vendor/pygls-1.3.1.dist-info/LICENSE.txt +201 -0
- jaclang/vendor/pygls-1.3.1.dist-info/METADATA +105 -0
- jaclang/vendor/pygls-1.3.1.dist-info/RECORD +24 -0
- jaclang/vendor/pygls-1.3.1.dist-info/WHEEL +4 -0
- jaclang/vendor/typing_extensions-4.12.2.dist-info/LICENSE +279 -0
- jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA +67 -0
- jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD +5 -0
- jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL +4 -0
- jaclang/vendor/typing_extensions.py +1209 -641
- jaclang-0.7.0.dist-info/METADATA +98 -0
- jaclang-0.7.0.dist-info/RECORD +1475 -0
- jaclang-0.7.0.dist-info/WHEEL +4 -0
- jaclang-0.7.0.dist-info/entry_points.txt +3 -0
- jaclang/compiler/generated/jac_parser.py +0 -4069
- jaclang/compiler/tests/test_workspace.py +0 -93
- jaclang/compiler/workspace.py +0 -234
- jaclang-0.6.1.dist-info/METADATA +0 -17
- jaclang-0.6.1.dist-info/RECORD +0 -430
- jaclang-0.6.1.dist-info/entry_points.txt +0 -2
- jaclang-0.6.1.dist-info/top_level.txt +0 -1
- /jaclang/{compiler/generated/__init__.py → vendor/attr/py.typed} +0 -0
- {jaclang-0.6.1.dist-info → jaclang/vendor/pluggy-1.5.0.dist-info}/WHEEL +0 -0
jaclang/vendor/mypy/typeanal.py
CHANGED
|
@@ -10,12 +10,7 @@ from typing_extensions import Protocol
|
|
|
10
10
|
from mypy import errorcodes as codes, message_registry, nodes
|
|
11
11
|
from mypy.errorcodes import ErrorCode
|
|
12
12
|
from mypy.expandtype import expand_type
|
|
13
|
-
from mypy.messages import
|
|
14
|
-
MessageBuilder,
|
|
15
|
-
format_type_bare,
|
|
16
|
-
quote_type_string,
|
|
17
|
-
wrong_type_arg_count,
|
|
18
|
-
)
|
|
13
|
+
from mypy.messages import MessageBuilder, format_type_bare, quote_type_string, wrong_type_arg_count
|
|
19
14
|
from mypy.nodes import (
|
|
20
15
|
ARG_NAMED,
|
|
21
16
|
ARG_NAMED_OPT,
|
|
@@ -45,6 +40,7 @@ from mypy.options import Options
|
|
|
45
40
|
from mypy.plugin import AnalyzeTypeContext, Plugin, TypeAnalyzerPluginInterface
|
|
46
41
|
from mypy.semanal_shared import (
|
|
47
42
|
SemanticAnalyzerCoreInterface,
|
|
43
|
+
SemanticAnalyzerInterface,
|
|
48
44
|
paramspec_args,
|
|
49
45
|
paramspec_kwargs,
|
|
50
46
|
)
|
|
@@ -145,6 +141,7 @@ def analyze_type_alias(
|
|
|
145
141
|
in_dynamic_func: bool = False,
|
|
146
142
|
global_scope: bool = True,
|
|
147
143
|
allowed_alias_tvars: list[TypeVarLikeType] | None = None,
|
|
144
|
+
alias_type_params_names: list[str] | None = None,
|
|
148
145
|
) -> tuple[Type, set[str]]:
|
|
149
146
|
"""Analyze r.h.s. of a (potential) type alias definition.
|
|
150
147
|
|
|
@@ -162,6 +159,7 @@ def analyze_type_alias(
|
|
|
162
159
|
allow_placeholder=allow_placeholder,
|
|
163
160
|
prohibit_self_type="type alias target",
|
|
164
161
|
allowed_alias_tvars=allowed_alias_tvars,
|
|
162
|
+
alias_type_params_names=alias_type_params_names,
|
|
165
163
|
)
|
|
166
164
|
analyzer.in_dynamic_func = in_dynamic_func
|
|
167
165
|
analyzer.global_scope = global_scope
|
|
@@ -214,6 +212,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
214
212
|
prohibit_self_type: str | None = None,
|
|
215
213
|
allowed_alias_tvars: list[TypeVarLikeType] | None = None,
|
|
216
214
|
allow_type_any: bool = False,
|
|
215
|
+
alias_type_params_names: list[str] | None = None,
|
|
217
216
|
) -> None:
|
|
218
217
|
self.api = api
|
|
219
218
|
self.fail_func = api.fail
|
|
@@ -226,8 +225,8 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
226
225
|
self.nesting_level = 0
|
|
227
226
|
# Should we allow new type syntax when targeting older Python versions
|
|
228
227
|
# like 'list[int]' or 'X | Y' (allowed in stubs and with `__future__` import)?
|
|
229
|
-
self.always_allow_new_syntax = (
|
|
230
|
-
|
|
228
|
+
self.always_allow_new_syntax = self.api.is_stub_file or self.api.is_future_flag_set(
|
|
229
|
+
"annotations"
|
|
231
230
|
)
|
|
232
231
|
# Should we accept unbound type variables? This is currently used for class bases,
|
|
233
232
|
# and alias right hand sides (before they are analyzed as type aliases).
|
|
@@ -235,6 +234,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
235
234
|
if allowed_alias_tvars is None:
|
|
236
235
|
allowed_alias_tvars = []
|
|
237
236
|
self.allowed_alias_tvars = allowed_alias_tvars
|
|
237
|
+
self.alias_type_params_names = alias_type_params_names
|
|
238
238
|
# If false, record incomplete ref if we generate PlaceholderType.
|
|
239
239
|
self.allow_placeholder = allow_placeholder
|
|
240
240
|
# Are we in a context where Required[] is allowed?
|
|
@@ -267,9 +267,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
267
267
|
def lookup_fully_qualified(self, name: str) -> SymbolTableNode:
|
|
268
268
|
return self.api.lookup_fully_qualified(name)
|
|
269
269
|
|
|
270
|
-
def visit_unbound_type(
|
|
271
|
-
self, t: UnboundType, defining_literal: bool = False
|
|
272
|
-
) -> Type:
|
|
270
|
+
def visit_unbound_type(self, t: UnboundType, defining_literal: bool = False) -> Type:
|
|
273
271
|
typ = self.visit_unbound_type_nonoptional(t, defining_literal)
|
|
274
272
|
if t.optional:
|
|
275
273
|
# We don't need to worry about double-wrapping Optionals or
|
|
@@ -277,9 +275,13 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
277
275
|
return make_optional_type(typ)
|
|
278
276
|
return typ
|
|
279
277
|
|
|
280
|
-
def
|
|
281
|
-
|
|
282
|
-
|
|
278
|
+
def not_declared_in_type_params(self, tvar_name: str) -> bool:
|
|
279
|
+
return (
|
|
280
|
+
self.alias_type_params_names is not None
|
|
281
|
+
and tvar_name not in self.alias_type_params_names
|
|
282
|
+
)
|
|
283
|
+
|
|
284
|
+
def visit_unbound_type_nonoptional(self, t: UnboundType, defining_literal: bool) -> Type:
|
|
283
285
|
sym = self.lookup_qualified(t.name, t)
|
|
284
286
|
if sym is not None:
|
|
285
287
|
node = sym.node
|
|
@@ -326,26 +328,23 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
326
328
|
and not self.always_allow_new_syntax
|
|
327
329
|
):
|
|
328
330
|
self.fail(
|
|
329
|
-
no_subscript_builtin_alias(
|
|
330
|
-
fullname, propose_alt=not self.defining_alias
|
|
331
|
-
),
|
|
332
|
-
t,
|
|
331
|
+
no_subscript_builtin_alias(fullname, propose_alt=not self.defining_alias), t
|
|
333
332
|
)
|
|
334
333
|
tvar_def = self.tvar_scope.get_binding(sym)
|
|
335
334
|
if isinstance(sym.node, ParamSpecExpr):
|
|
336
335
|
if tvar_def is None:
|
|
337
336
|
if self.allow_unbound_tvars:
|
|
338
337
|
return t
|
|
339
|
-
self.
|
|
340
|
-
f'ParamSpec "{t.name}" is
|
|
341
|
-
|
|
338
|
+
if self.defining_alias and self.not_declared_in_type_params(t.name):
|
|
339
|
+
msg = f'ParamSpec "{t.name}" is not included in type_params'
|
|
340
|
+
else:
|
|
341
|
+
msg = f'ParamSpec "{t.name}" is unbound'
|
|
342
|
+
self.fail(msg, t, code=codes.VALID_TYPE)
|
|
342
343
|
return AnyType(TypeOfAny.from_error)
|
|
343
344
|
assert isinstance(tvar_def, ParamSpecType)
|
|
344
345
|
if len(t.args) > 0:
|
|
345
346
|
self.fail(
|
|
346
|
-
f'ParamSpec "{t.name}" used with arguments',
|
|
347
|
-
t,
|
|
348
|
-
code=codes.VALID_TYPE,
|
|
347
|
+
f'ParamSpec "{t.name}" used with arguments', t, code=codes.VALID_TYPE
|
|
349
348
|
)
|
|
350
349
|
# Change the line number
|
|
351
350
|
return ParamSpecType(
|
|
@@ -364,19 +363,17 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
364
363
|
and not defining_literal
|
|
365
364
|
and (tvar_def is None or tvar_def not in self.allowed_alias_tvars)
|
|
366
365
|
):
|
|
367
|
-
self.
|
|
368
|
-
f'
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
)
|
|
366
|
+
if self.not_declared_in_type_params(t.name):
|
|
367
|
+
msg = f'Type variable "{t.name}" is not included in type_params'
|
|
368
|
+
else:
|
|
369
|
+
msg = f'Can\'t use bound type variable "{t.name}" to define generic alias'
|
|
370
|
+
self.fail(msg, t, code=codes.VALID_TYPE)
|
|
372
371
|
return AnyType(TypeOfAny.from_error)
|
|
373
372
|
if isinstance(sym.node, TypeVarExpr) and tvar_def is not None:
|
|
374
373
|
assert isinstance(tvar_def, TypeVarType)
|
|
375
374
|
if len(t.args) > 0:
|
|
376
375
|
self.fail(
|
|
377
|
-
f'Type variable "{t.name}" used with arguments',
|
|
378
|
-
t,
|
|
379
|
-
code=codes.VALID_TYPE,
|
|
376
|
+
f'Type variable "{t.name}" used with arguments', t, code=codes.VALID_TYPE
|
|
380
377
|
)
|
|
381
378
|
# Change the line number
|
|
382
379
|
return tvar_def.copy_modified(line=t.line, column=t.column)
|
|
@@ -385,19 +382,21 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
385
382
|
and self.defining_alias
|
|
386
383
|
and tvar_def not in self.allowed_alias_tvars
|
|
387
384
|
):
|
|
388
|
-
self.
|
|
389
|
-
f'
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
)
|
|
385
|
+
if self.not_declared_in_type_params(t.name):
|
|
386
|
+
msg = f'Type variable "{t.name}" is not included in type_params'
|
|
387
|
+
else:
|
|
388
|
+
msg = f'Can\'t use bound type variable "{t.name}" to define generic alias'
|
|
389
|
+
self.fail(msg, t, code=codes.VALID_TYPE)
|
|
393
390
|
return AnyType(TypeOfAny.from_error)
|
|
394
391
|
if isinstance(sym.node, TypeVarTupleExpr):
|
|
395
392
|
if tvar_def is None:
|
|
396
393
|
if self.allow_unbound_tvars:
|
|
397
394
|
return t
|
|
398
|
-
self.
|
|
399
|
-
f'TypeVarTuple "{t.name}" is
|
|
400
|
-
|
|
395
|
+
if self.defining_alias and self.not_declared_in_type_params(t.name):
|
|
396
|
+
msg = f'TypeVarTuple "{t.name}" is not included in type_params'
|
|
397
|
+
else:
|
|
398
|
+
msg = f'TypeVarTuple "{t.name}" is unbound'
|
|
399
|
+
self.fail(msg, t, code=codes.VALID_TYPE)
|
|
401
400
|
return AnyType(TypeOfAny.from_error)
|
|
402
401
|
assert isinstance(tvar_def, TypeVarTupleType)
|
|
403
402
|
if not self.allow_type_var_tuple:
|
|
@@ -409,9 +408,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
409
408
|
return AnyType(TypeOfAny.from_error)
|
|
410
409
|
if len(t.args) > 0:
|
|
411
410
|
self.fail(
|
|
412
|
-
f'Type variable "{t.name}" used with arguments',
|
|
413
|
-
t,
|
|
414
|
-
code=codes.VALID_TYPE,
|
|
411
|
+
f'Type variable "{t.name}" used with arguments', t, code=codes.VALID_TYPE
|
|
415
412
|
)
|
|
416
413
|
|
|
417
414
|
# Change the line number
|
|
@@ -439,9 +436,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
439
436
|
if node.has_param_spec_type and len(node.alias_tvars) == 1:
|
|
440
437
|
an_args = self.pack_paramspec_args(an_args)
|
|
441
438
|
|
|
442
|
-
disallow_any =
|
|
443
|
-
self.options.disallow_any_generics and not self.is_typeshed_stub
|
|
444
|
-
)
|
|
439
|
+
disallow_any = self.options.disallow_any_generics and not self.is_typeshed_stub
|
|
445
440
|
res = instantiate_type_alias(
|
|
446
441
|
node,
|
|
447
442
|
an_args,
|
|
@@ -474,22 +469,15 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
474
469
|
res = get_proper_type(res)
|
|
475
470
|
return res
|
|
476
471
|
elif isinstance(node, TypeInfo):
|
|
477
|
-
return self.analyze_type_with_type_info(
|
|
478
|
-
node, t.args, t, t.empty_tuple_index
|
|
479
|
-
)
|
|
472
|
+
return self.analyze_type_with_type_info(node, t.args, t, t.empty_tuple_index)
|
|
480
473
|
elif node.fullname in TYPE_ALIAS_NAMES:
|
|
481
474
|
return AnyType(TypeOfAny.special_form)
|
|
482
475
|
# Concatenate is an operator, no need for a proper type
|
|
483
|
-
elif node.fullname in (
|
|
484
|
-
"typing_extensions.Concatenate",
|
|
485
|
-
"typing.Concatenate",
|
|
486
|
-
):
|
|
476
|
+
elif node.fullname in ("typing_extensions.Concatenate", "typing.Concatenate"):
|
|
487
477
|
# We check the return type further up the stack for valid use locations
|
|
488
478
|
return self.apply_concatenate_operator(t)
|
|
489
479
|
else:
|
|
490
|
-
return self.analyze_unbound_type_without_type_info(
|
|
491
|
-
t, sym, defining_literal
|
|
492
|
-
)
|
|
480
|
+
return self.analyze_unbound_type_without_type_info(t, sym, defining_literal)
|
|
493
481
|
else: # sym is None
|
|
494
482
|
return AnyType(TypeOfAny.special_form)
|
|
495
483
|
|
|
@@ -507,9 +495,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
507
495
|
if any(isinstance(a, (Parameters, ParamSpecType)) for a in an_args):
|
|
508
496
|
if len(an_args) > 1:
|
|
509
497
|
first_wrong = next(
|
|
510
|
-
arg
|
|
511
|
-
for arg in an_args
|
|
512
|
-
if isinstance(arg, (Parameters, ParamSpecType))
|
|
498
|
+
arg for arg in an_args if isinstance(arg, (Parameters, ParamSpecType))
|
|
513
499
|
)
|
|
514
500
|
self.fail(
|
|
515
501
|
"Nested parameter specifications are not allowed",
|
|
@@ -521,11 +507,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
521
507
|
first = an_args[0]
|
|
522
508
|
return [
|
|
523
509
|
Parameters(
|
|
524
|
-
an_args,
|
|
525
|
-
[ARG_POS] * count,
|
|
526
|
-
[None] * count,
|
|
527
|
-
line=first.line,
|
|
528
|
-
column=first.column,
|
|
510
|
+
an_args, [ARG_POS] * count, [None] * count, line=first.line, column=first.column
|
|
529
511
|
)
|
|
530
512
|
]
|
|
531
513
|
|
|
@@ -573,9 +555,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
573
555
|
)
|
|
574
556
|
return ps.copy_modified(prefix=pre) if isinstance(ps, ParamSpecType) else pre
|
|
575
557
|
|
|
576
|
-
def try_analyze_special_unbound_type(
|
|
577
|
-
self, t: UnboundType, fullname: str
|
|
578
|
-
) -> Type | None:
|
|
558
|
+
def try_analyze_special_unbound_type(self, t: UnboundType, fullname: str) -> Type | None:
|
|
579
559
|
"""Bind special type that is recognized through magic name such as 'typing.Any'.
|
|
580
560
|
|
|
581
561
|
Return the bound type if successful, and return None if the type is a normal type.
|
|
@@ -607,14 +587,10 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
607
587
|
if len(t.args) == 0 and not t.empty_tuple_index:
|
|
608
588
|
# Bare 'Tuple' is same as 'tuple'
|
|
609
589
|
any_type = self.get_omitted_any(t)
|
|
610
|
-
return self.named_type(
|
|
611
|
-
"builtins.tuple", [any_type], line=t.line, column=t.column
|
|
612
|
-
)
|
|
590
|
+
return self.named_type("builtins.tuple", [any_type], line=t.line, column=t.column)
|
|
613
591
|
if len(t.args) == 2 and isinstance(t.args[1], EllipsisType):
|
|
614
592
|
# Tuple[T, ...] (uniform, variable-length tuple)
|
|
615
|
-
instance = self.named_type(
|
|
616
|
-
"builtins.tuple", [self.anal_type(t.args[0])]
|
|
617
|
-
)
|
|
593
|
+
instance = self.named_type("builtins.tuple", [self.anal_type(t.args[0])])
|
|
618
594
|
instance.line = t.line
|
|
619
595
|
return instance
|
|
620
596
|
return self.tuple_type(
|
|
@@ -626,9 +602,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
626
602
|
elif fullname == "typing.Optional":
|
|
627
603
|
if len(t.args) != 1:
|
|
628
604
|
self.fail(
|
|
629
|
-
"Optional[...] must have exactly one type argument",
|
|
630
|
-
t,
|
|
631
|
-
code=codes.VALID_TYPE,
|
|
605
|
+
"Optional[...] must have exactly one type argument", t, code=codes.VALID_TYPE
|
|
632
606
|
)
|
|
633
607
|
return AnyType(TypeOfAny.from_error)
|
|
634
608
|
item = self.anal_type(t.args[0])
|
|
@@ -650,35 +624,23 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
650
624
|
if len(t.args) != 1:
|
|
651
625
|
type_str = "Type[...]" if fullname == "typing.Type" else "type[...]"
|
|
652
626
|
self.fail(
|
|
653
|
-
type_str + " must have exactly one type argument",
|
|
654
|
-
t,
|
|
655
|
-
code=codes.VALID_TYPE,
|
|
627
|
+
type_str + " must have exactly one type argument", t, code=codes.VALID_TYPE
|
|
656
628
|
)
|
|
657
629
|
item = self.anal_type(t.args[0])
|
|
658
630
|
if is_bad_type_type_item(item):
|
|
659
|
-
self.fail(
|
|
660
|
-
"Type[...] can't contain another Type[...]",
|
|
661
|
-
t,
|
|
662
|
-
code=codes.VALID_TYPE,
|
|
663
|
-
)
|
|
631
|
+
self.fail("Type[...] can't contain another Type[...]", t, code=codes.VALID_TYPE)
|
|
664
632
|
item = AnyType(TypeOfAny.from_error)
|
|
665
633
|
return TypeType.make_normalized(item, line=t.line, column=t.column)
|
|
666
634
|
elif fullname == "typing.ClassVar":
|
|
667
635
|
if self.nesting_level > 0:
|
|
668
636
|
self.fail(
|
|
669
|
-
"Invalid type: ClassVar nested inside other type",
|
|
670
|
-
t,
|
|
671
|
-
code=codes.VALID_TYPE,
|
|
637
|
+
"Invalid type: ClassVar nested inside other type", t, code=codes.VALID_TYPE
|
|
672
638
|
)
|
|
673
639
|
if len(t.args) == 0:
|
|
674
|
-
return AnyType(
|
|
675
|
-
TypeOfAny.from_omitted_generics, line=t.line, column=t.column
|
|
676
|
-
)
|
|
640
|
+
return AnyType(TypeOfAny.from_omitted_generics, line=t.line, column=t.column)
|
|
677
641
|
if len(t.args) != 1:
|
|
678
642
|
self.fail(
|
|
679
|
-
"ClassVar[...] must have at most one type argument",
|
|
680
|
-
t,
|
|
681
|
-
code=codes.VALID_TYPE,
|
|
643
|
+
"ClassVar[...] must have at most one type argument", t, code=codes.VALID_TYPE
|
|
682
644
|
)
|
|
683
645
|
return AnyType(TypeOfAny.from_error)
|
|
684
646
|
return self.anal_type(t.args[0])
|
|
@@ -706,9 +668,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
706
668
|
return AnyType(TypeOfAny.from_error)
|
|
707
669
|
if len(t.args) != 1:
|
|
708
670
|
self.fail(
|
|
709
|
-
"Required[] must have exactly one type argument",
|
|
710
|
-
t,
|
|
711
|
-
code=codes.VALID_TYPE,
|
|
671
|
+
"Required[] must have exactly one type argument", t, code=codes.VALID_TYPE
|
|
712
672
|
)
|
|
713
673
|
return AnyType(TypeOfAny.from_error)
|
|
714
674
|
return RequiredType(self.anal_type(t.args[0]), required=True)
|
|
@@ -722,13 +682,14 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
722
682
|
return AnyType(TypeOfAny.from_error)
|
|
723
683
|
if len(t.args) != 1:
|
|
724
684
|
self.fail(
|
|
725
|
-
"NotRequired[] must have exactly one type argument",
|
|
726
|
-
t,
|
|
727
|
-
code=codes.VALID_TYPE,
|
|
685
|
+
"NotRequired[] must have exactly one type argument", t, code=codes.VALID_TYPE
|
|
728
686
|
)
|
|
729
687
|
return AnyType(TypeOfAny.from_error)
|
|
730
688
|
return RequiredType(self.anal_type(t.args[0]), required=False)
|
|
731
|
-
elif
|
|
689
|
+
elif (
|
|
690
|
+
self.anal_type_guard_arg(t, fullname) is not None
|
|
691
|
+
or self.anal_type_is_arg(t, fullname) is not None
|
|
692
|
+
):
|
|
732
693
|
# In most contexts, TypeGuard[...] acts as an alias for bool (ignoring its args)
|
|
733
694
|
return self.named_type("builtins.bool")
|
|
734
695
|
elif fullname in ("typing.Unpack", "typing_extensions.Unpack"):
|
|
@@ -736,9 +697,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
736
697
|
self.fail("Unpack[...] requires exactly one type argument", t)
|
|
737
698
|
return AnyType(TypeOfAny.from_error)
|
|
738
699
|
if not self.allow_unpack:
|
|
739
|
-
self.fail(
|
|
740
|
-
message_registry.INVALID_UNPACK_POSITION, t, code=codes.VALID_TYPE
|
|
741
|
-
)
|
|
700
|
+
self.fail(message_registry.INVALID_UNPACK_POSITION, t, code=codes.VALID_TYPE)
|
|
742
701
|
return AnyType(TypeOfAny.from_error)
|
|
743
702
|
self.allow_type_var_tuple = True
|
|
744
703
|
result = UnpackType(self.anal_type(t.args[0]), line=t.line, column=t.column)
|
|
@@ -751,19 +710,14 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
751
710
|
self.fail(f"Self type cannot be used in {self.prohibit_self_type}", t)
|
|
752
711
|
return AnyType(TypeOfAny.from_error)
|
|
753
712
|
if self.api.type is None:
|
|
754
|
-
self.fail(
|
|
755
|
-
"Self type is only allowed in annotations within class definition",
|
|
756
|
-
t,
|
|
757
|
-
)
|
|
713
|
+
self.fail("Self type is only allowed in annotations within class definition", t)
|
|
758
714
|
return AnyType(TypeOfAny.from_error)
|
|
759
715
|
if self.api.type.has_base("builtins.type"):
|
|
760
716
|
self.fail("Self type cannot be used in a metaclass", t)
|
|
761
717
|
if self.api.type.self_type is not None:
|
|
762
718
|
if self.api.type.is_final:
|
|
763
719
|
return fill_typevars(self.api.type)
|
|
764
|
-
return self.api.type.self_type.copy_modified(
|
|
765
|
-
line=t.line, column=t.column
|
|
766
|
-
)
|
|
720
|
+
return self.api.type.self_type.copy_modified(line=t.line, column=t.column)
|
|
767
721
|
# TODO: verify this is unreachable and replace with an assert?
|
|
768
722
|
self.fail("Unexpected Self type", t)
|
|
769
723
|
return AnyType(TypeOfAny.from_error)
|
|
@@ -771,16 +725,10 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
771
725
|
|
|
772
726
|
def get_omitted_any(self, typ: Type, fullname: str | None = None) -> AnyType:
|
|
773
727
|
disallow_any = not self.is_typeshed_stub and self.options.disallow_any_generics
|
|
774
|
-
return get_omitted_any(
|
|
775
|
-
disallow_any, self.fail, self.note, typ, self.options, fullname
|
|
776
|
-
)
|
|
728
|
+
return get_omitted_any(disallow_any, self.fail, self.note, typ, self.options, fullname)
|
|
777
729
|
|
|
778
730
|
def analyze_type_with_type_info(
|
|
779
|
-
self,
|
|
780
|
-
info: TypeInfo,
|
|
781
|
-
args: Sequence[Type],
|
|
782
|
-
ctx: Context,
|
|
783
|
-
empty_tuple_index: bool,
|
|
731
|
+
self, info: TypeInfo, args: Sequence[Type], ctx: Context, empty_tuple_index: bool
|
|
784
732
|
) -> Type:
|
|
785
733
|
"""Bind unbound type when were able to find target TypeInfo.
|
|
786
734
|
|
|
@@ -789,9 +737,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
789
737
|
|
|
790
738
|
if len(args) > 0 and info.fullname == "builtins.tuple":
|
|
791
739
|
fallback = Instance(info, [AnyType(TypeOfAny.special_form)], ctx.line)
|
|
792
|
-
return TupleType(
|
|
793
|
-
self.anal_array(args, allow_unpack=True), fallback, ctx.line
|
|
794
|
-
)
|
|
740
|
+
return TupleType(self.anal_array(args, allow_unpack=True), fallback, ctx.line)
|
|
795
741
|
|
|
796
742
|
# Analyze arguments and (usually) construct Instance type. The
|
|
797
743
|
# number of type arguments and their values are
|
|
@@ -817,15 +763,14 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
817
763
|
|
|
818
764
|
# Check type argument count.
|
|
819
765
|
instance.args = tuple(flatten_nested_tuples(instance.args))
|
|
820
|
-
if not (
|
|
821
|
-
|
|
822
|
-
)
|
|
766
|
+
if not (self.defining_alias and self.nesting_level == 0) and not validate_instance(
|
|
767
|
+
instance, self.fail, empty_tuple_index
|
|
768
|
+
):
|
|
823
769
|
fix_instance(
|
|
824
770
|
instance,
|
|
825
771
|
self.fail,
|
|
826
772
|
self.note,
|
|
827
|
-
disallow_any=self.options.disallow_any_generics
|
|
828
|
-
and not self.is_typeshed_stub,
|
|
773
|
+
disallow_any=self.options.disallow_any_generics and not self.is_typeshed_stub,
|
|
829
774
|
options=self.options,
|
|
830
775
|
)
|
|
831
776
|
|
|
@@ -897,8 +842,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
897
842
|
typ = get_proper_type(sym.node.type)
|
|
898
843
|
if isinstance(typ, AnyType):
|
|
899
844
|
return AnyType(
|
|
900
|
-
TypeOfAny.from_unimported_type,
|
|
901
|
-
missing_import_name=typ.missing_import_name,
|
|
845
|
+
TypeOfAny.from_unimported_type, missing_import_name=typ.missing_import_name
|
|
902
846
|
)
|
|
903
847
|
elif self.allow_type_any:
|
|
904
848
|
if isinstance(typ, Instance) and typ.type.fullname == "builtins.type":
|
|
@@ -956,16 +900,12 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
956
900
|
if name == "builtins.any":
|
|
957
901
|
notes.append('Perhaps you meant "typing.Any" instead of "any"?')
|
|
958
902
|
elif name == "builtins.callable":
|
|
959
|
-
notes.append(
|
|
960
|
-
'Perhaps you meant "typing.Callable" instead of "callable"?'
|
|
961
|
-
)
|
|
903
|
+
notes.append('Perhaps you meant "typing.Callable" instead of "callable"?')
|
|
962
904
|
else:
|
|
963
905
|
notes.append('Perhaps you need "Callable[...]" or a callback protocol?')
|
|
964
906
|
elif isinstance(sym.node, MypyFile):
|
|
965
907
|
message = 'Module "{}" is not valid as a type'
|
|
966
|
-
notes.append(
|
|
967
|
-
"Perhaps you meant to use a protocol matching the module structure?"
|
|
968
|
-
)
|
|
908
|
+
notes.append("Perhaps you meant to use a protocol matching the module structure?")
|
|
969
909
|
elif unbound_tvar:
|
|
970
910
|
message = 'Type variable "{}" is unbound'
|
|
971
911
|
short = name.split(".")[-1]
|
|
@@ -1016,16 +956,12 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1016
956
|
if params:
|
|
1017
957
|
ts, kinds, names = params
|
|
1018
958
|
# bind these types
|
|
1019
|
-
return Parameters(
|
|
1020
|
-
self.anal_array(ts), kinds, names, line=t.line, column=t.column
|
|
1021
|
-
)
|
|
959
|
+
return Parameters(self.anal_array(ts), kinds, names, line=t.line, column=t.column)
|
|
1022
960
|
else:
|
|
1023
961
|
return AnyType(TypeOfAny.from_error)
|
|
1024
962
|
else:
|
|
1025
963
|
self.fail(
|
|
1026
|
-
'Bracketed expression "[...]" is not valid as a type',
|
|
1027
|
-
t,
|
|
1028
|
-
code=codes.VALID_TYPE,
|
|
964
|
+
'Bracketed expression "[...]" is not valid as a type', t, code=codes.VALID_TYPE
|
|
1029
965
|
)
|
|
1030
966
|
if len(t.items) == 1:
|
|
1031
967
|
self.note('Did you mean "List[...]"?', t)
|
|
@@ -1053,9 +989,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1053
989
|
|
|
1054
990
|
def visit_unpack_type(self, t: UnpackType) -> Type:
|
|
1055
991
|
if not self.allow_unpack:
|
|
1056
|
-
self.fail(
|
|
1057
|
-
message_registry.INVALID_UNPACK_POSITION, t.type, code=codes.VALID_TYPE
|
|
1058
|
-
)
|
|
992
|
+
self.fail(message_registry.INVALID_UNPACK_POSITION, t.type, code=codes.VALID_TYPE)
|
|
1059
993
|
return AnyType(TypeOfAny.from_error)
|
|
1060
994
|
self.allow_type_var_tuple = True
|
|
1061
995
|
result = UnpackType(self.anal_type(t.type), from_star_syntax=t.from_star_syntax)
|
|
@@ -1073,13 +1007,10 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1073
1007
|
variables = t.variables
|
|
1074
1008
|
else:
|
|
1075
1009
|
variables, _ = self.bind_function_type_variables(t, t)
|
|
1076
|
-
|
|
1010
|
+
type_guard = self.anal_type_guard(t.ret_type)
|
|
1011
|
+
type_is = self.anal_type_is(t.ret_type)
|
|
1077
1012
|
arg_kinds = t.arg_kinds
|
|
1078
|
-
if (
|
|
1079
|
-
len(arg_kinds) >= 2
|
|
1080
|
-
and arg_kinds[-2] == ARG_STAR
|
|
1081
|
-
and arg_kinds[-1] == ARG_STAR2
|
|
1082
|
-
):
|
|
1013
|
+
if len(arg_kinds) >= 2 and arg_kinds[-2] == ARG_STAR and arg_kinds[-1] == ARG_STAR2:
|
|
1083
1014
|
arg_types = self.anal_array(t.arg_types[:-2], nested=nested) + [
|
|
1084
1015
|
self.anal_star_arg_type(t.arg_types[-2], ARG_STAR, nested=nested),
|
|
1085
1016
|
self.anal_star_arg_type(t.arg_types[-1], ARG_STAR2, nested=nested),
|
|
@@ -1130,13 +1061,10 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1130
1061
|
ret_type=self.anal_type(t.ret_type, nested=nested),
|
|
1131
1062
|
# If the fallback isn't filled in yet,
|
|
1132
1063
|
# its type will be the falsey FakeInfo
|
|
1133
|
-
fallback=(
|
|
1134
|
-
t.fallback
|
|
1135
|
-
if t.fallback.type
|
|
1136
|
-
else self.named_type("builtins.function")
|
|
1137
|
-
),
|
|
1064
|
+
fallback=(t.fallback if t.fallback.type else self.named_type("builtins.function")),
|
|
1138
1065
|
variables=self.anal_var_defs(variables),
|
|
1139
|
-
type_guard=
|
|
1066
|
+
type_guard=type_guard,
|
|
1067
|
+
type_is=type_is,
|
|
1140
1068
|
unpack_kwargs=unpacked_kwargs,
|
|
1141
1069
|
)
|
|
1142
1070
|
return ret
|
|
@@ -1153,14 +1081,28 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1153
1081
|
if fullname in ("typing_extensions.TypeGuard", "typing.TypeGuard"):
|
|
1154
1082
|
if len(t.args) != 1:
|
|
1155
1083
|
self.fail(
|
|
1156
|
-
"TypeGuard must have exactly one type argument",
|
|
1157
|
-
t,
|
|
1158
|
-
code=codes.VALID_TYPE,
|
|
1084
|
+
"TypeGuard must have exactly one type argument", t, code=codes.VALID_TYPE
|
|
1159
1085
|
)
|
|
1160
1086
|
return AnyType(TypeOfAny.from_error)
|
|
1161
1087
|
return self.anal_type(t.args[0])
|
|
1162
1088
|
return None
|
|
1163
1089
|
|
|
1090
|
+
def anal_type_is(self, t: Type) -> Type | None:
|
|
1091
|
+
if isinstance(t, UnboundType):
|
|
1092
|
+
sym = self.lookup_qualified(t.name, t)
|
|
1093
|
+
if sym is not None and sym.node is not None:
|
|
1094
|
+
return self.anal_type_is_arg(t, sym.node.fullname)
|
|
1095
|
+
# TODO: What if it's an Instance? Then use t.type.fullname?
|
|
1096
|
+
return None
|
|
1097
|
+
|
|
1098
|
+
def anal_type_is_arg(self, t: UnboundType, fullname: str) -> Type | None:
|
|
1099
|
+
if fullname in ("typing_extensions.TypeIs", "typing.TypeIs"):
|
|
1100
|
+
if len(t.args) != 1:
|
|
1101
|
+
self.fail("TypeIs must have exactly one type argument", t, code=codes.VALID_TYPE)
|
|
1102
|
+
return AnyType(TypeOfAny.from_error)
|
|
1103
|
+
return self.anal_type(t.args[0])
|
|
1104
|
+
return None
|
|
1105
|
+
|
|
1164
1106
|
def anal_star_arg_type(self, t: Type, kind: ArgKind, nested: bool) -> Type:
|
|
1165
1107
|
"""Analyze signature argument type for *args and **kwargs argument."""
|
|
1166
1108
|
if isinstance(t, UnboundType) and t.name and "." in t.name and not t.args:
|
|
@@ -1219,11 +1161,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1219
1161
|
code=codes.SYNTAX,
|
|
1220
1162
|
)
|
|
1221
1163
|
elif len(t.items) == 1:
|
|
1222
|
-
self.note(
|
|
1223
|
-
"Suggestion: Is there a spurious trailing comma?",
|
|
1224
|
-
t,
|
|
1225
|
-
code=codes.SYNTAX,
|
|
1226
|
-
)
|
|
1164
|
+
self.note("Suggestion: Is there a spurious trailing comma?", t, code=codes.SYNTAX)
|
|
1227
1165
|
else:
|
|
1228
1166
|
self.note(
|
|
1229
1167
|
"Suggestion: Use Tuple[T1, ..., Tn] instead of (T1, ..., Tn)",
|
|
@@ -1243,8 +1181,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1243
1181
|
|
|
1244
1182
|
def visit_typeddict_type(self, t: TypedDictType) -> Type:
|
|
1245
1183
|
items = {
|
|
1246
|
-
item_name: self.anal_type(item_type)
|
|
1247
|
-
for (item_name, item_type) in t.items.items()
|
|
1184
|
+
item_name: self.anal_type(item_type) for (item_name, item_type) in t.items.items()
|
|
1248
1185
|
}
|
|
1249
1186
|
return TypedDictType(items, set(t.required_keys), t.fallback)
|
|
1250
1187
|
|
|
@@ -1263,14 +1200,10 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1263
1200
|
if t.base_type_name in ("builtins.int", "builtins.bool"):
|
|
1264
1201
|
# The only time it makes sense to use an int or bool is inside of
|
|
1265
1202
|
# a literal type.
|
|
1266
|
-
msg = (
|
|
1267
|
-
f"Invalid type: try using Literal[{repr(t.literal_value)}] instead?"
|
|
1268
|
-
)
|
|
1203
|
+
msg = f"Invalid type: try using Literal[{repr(t.literal_value)}] instead?"
|
|
1269
1204
|
elif t.base_type_name in ("builtins.float", "builtins.complex"):
|
|
1270
1205
|
# We special-case warnings for floats and complex numbers.
|
|
1271
|
-
msg = (
|
|
1272
|
-
f"Invalid type: {t.simple_name()} literals cannot be used as a type"
|
|
1273
|
-
)
|
|
1206
|
+
msg = f"Invalid type: {t.simple_name()} literals cannot be used as a type"
|
|
1274
1207
|
else:
|
|
1275
1208
|
# And in all other cases, we default to a generic error message.
|
|
1276
1209
|
# Note: the reason why we use a generic error message for strings
|
|
@@ -1295,9 +1228,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1295
1228
|
and not self.always_allow_new_syntax
|
|
1296
1229
|
and not self.options.python_version >= (3, 10)
|
|
1297
1230
|
):
|
|
1298
|
-
self.fail(
|
|
1299
|
-
"X | Y syntax for unions requires Python 3.10", t, code=codes.SYNTAX
|
|
1300
|
-
)
|
|
1231
|
+
self.fail("X | Y syntax for unions requires Python 3.10", t, code=codes.SYNTAX)
|
|
1301
1232
|
return UnionType(self.anal_array(t.items), t.line)
|
|
1302
1233
|
|
|
1303
1234
|
def visit_partial_type(self, t: PartialType) -> Type:
|
|
@@ -1307,10 +1238,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1307
1238
|
if self.allow_ellipsis or self.allow_param_spec_literals:
|
|
1308
1239
|
any_type = AnyType(TypeOfAny.explicit)
|
|
1309
1240
|
return Parameters(
|
|
1310
|
-
[any_type, any_type],
|
|
1311
|
-
[ARG_STAR, ARG_STAR2],
|
|
1312
|
-
[None, None],
|
|
1313
|
-
is_ellipsis_args=True,
|
|
1241
|
+
[any_type, any_type], [ARG_STAR, ARG_STAR2], [None, None], is_ellipsis_args=True
|
|
1314
1242
|
)
|
|
1315
1243
|
else:
|
|
1316
1244
|
self.fail('Unexpected "..."', t)
|
|
@@ -1357,20 +1285,27 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1357
1285
|
AnyType(TypeOfAny.explicit), ret_type=ret_type, fallback=fallback
|
|
1358
1286
|
)
|
|
1359
1287
|
return None
|
|
1288
|
+
elif (
|
|
1289
|
+
self.defining_alias
|
|
1290
|
+
and self.not_declared_in_type_params(tvar_def.name)
|
|
1291
|
+
and tvar_def not in self.allowed_alias_tvars
|
|
1292
|
+
):
|
|
1293
|
+
self.fail(
|
|
1294
|
+
f'ParamSpec "{tvar_def.name}" is not included in type_params',
|
|
1295
|
+
callable_args,
|
|
1296
|
+
code=codes.VALID_TYPE,
|
|
1297
|
+
)
|
|
1298
|
+
return callable_with_ellipsis(
|
|
1299
|
+
AnyType(TypeOfAny.special_form), ret_type=ret_type, fallback=fallback
|
|
1300
|
+
)
|
|
1360
1301
|
|
|
1361
1302
|
return CallableType(
|
|
1362
1303
|
[
|
|
1363
1304
|
paramspec_args(
|
|
1364
|
-
tvar_def.name,
|
|
1365
|
-
tvar_def.fullname,
|
|
1366
|
-
tvar_def.id,
|
|
1367
|
-
named_type_func=self.named_type,
|
|
1305
|
+
tvar_def.name, tvar_def.fullname, tvar_def.id, named_type_func=self.named_type
|
|
1368
1306
|
),
|
|
1369
1307
|
paramspec_kwargs(
|
|
1370
|
-
tvar_def.name,
|
|
1371
|
-
tvar_def.fullname,
|
|
1372
|
-
tvar_def.id,
|
|
1373
|
-
named_type_func=self.named_type,
|
|
1308
|
+
tvar_def.name, tvar_def.fullname, tvar_def.id, named_type_func=self.named_type
|
|
1374
1309
|
),
|
|
1375
1310
|
],
|
|
1376
1311
|
[nodes.ARG_STAR, nodes.ARG_STAR2],
|
|
@@ -1392,10 +1327,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1392
1327
|
return None
|
|
1393
1328
|
if sym.node is None:
|
|
1394
1329
|
return None
|
|
1395
|
-
if sym.node.fullname not in (
|
|
1396
|
-
"typing_extensions.Concatenate",
|
|
1397
|
-
"typing.Concatenate",
|
|
1398
|
-
):
|
|
1330
|
+
if sym.node.fullname not in ("typing_extensions.Concatenate", "typing.Concatenate"):
|
|
1399
1331
|
return None
|
|
1400
1332
|
|
|
1401
1333
|
tvar_def = self.anal_type(callable_args, allow_param_spec=True)
|
|
@@ -1406,9 +1338,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1406
1338
|
# We are analyzing this type in runtime context (e.g. as type application).
|
|
1407
1339
|
# If it is not valid as a type in this position an error will be given later.
|
|
1408
1340
|
return callable_with_ellipsis(
|
|
1409
|
-
AnyType(TypeOfAny.explicit),
|
|
1410
|
-
ret_type=ret_type,
|
|
1411
|
-
fallback=fallback,
|
|
1341
|
+
AnyType(TypeOfAny.explicit), ret_type=ret_type, fallback=fallback
|
|
1412
1342
|
)
|
|
1413
1343
|
# Error was already given, so prevent further errors.
|
|
1414
1344
|
return AnyType(TypeOfAny.from_error)
|
|
@@ -1431,16 +1361,10 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1431
1361
|
[
|
|
1432
1362
|
*prefix.arg_types,
|
|
1433
1363
|
paramspec_args(
|
|
1434
|
-
tvar_def.name,
|
|
1435
|
-
tvar_def.fullname,
|
|
1436
|
-
tvar_def.id,
|
|
1437
|
-
named_type_func=self.named_type,
|
|
1364
|
+
tvar_def.name, tvar_def.fullname, tvar_def.id, named_type_func=self.named_type
|
|
1438
1365
|
),
|
|
1439
1366
|
paramspec_kwargs(
|
|
1440
|
-
tvar_def.name,
|
|
1441
|
-
tvar_def.fullname,
|
|
1442
|
-
tvar_def.id,
|
|
1443
|
-
named_type_func=self.named_type,
|
|
1367
|
+
tvar_def.name, tvar_def.fullname, tvar_def.id, named_type_func=self.named_type
|
|
1444
1368
|
),
|
|
1445
1369
|
],
|
|
1446
1370
|
[*prefix.arg_kinds, nodes.ARG_STAR, nodes.ARG_STAR2],
|
|
@@ -1465,9 +1389,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1465
1389
|
if analyzed_args is None:
|
|
1466
1390
|
return AnyType(TypeOfAny.from_error)
|
|
1467
1391
|
args, kinds, names = analyzed_args
|
|
1468
|
-
ret = CallableType(
|
|
1469
|
-
args, kinds, names, ret_type=ret_type, fallback=fallback
|
|
1470
|
-
)
|
|
1392
|
+
ret = CallableType(args, kinds, names, ret_type=ret_type, fallback=fallback)
|
|
1471
1393
|
elif isinstance(callable_args, EllipsisType):
|
|
1472
1394
|
# Callable[..., RET] (with literal ellipsis; accept arbitrary arguments)
|
|
1473
1395
|
ret = callable_with_ellipsis(
|
|
@@ -1510,10 +1432,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1510
1432
|
if self.options.disallow_any_generics:
|
|
1511
1433
|
self.fail('Please use "Callable[[<parameters>], <return type>]"', t)
|
|
1512
1434
|
else:
|
|
1513
|
-
self.fail(
|
|
1514
|
-
'Please use "Callable[[<parameters>], <return type>]" or "Callable"',
|
|
1515
|
-
t,
|
|
1516
|
-
)
|
|
1435
|
+
self.fail('Please use "Callable[[<parameters>], <return type>]" or "Callable"', t)
|
|
1517
1436
|
return AnyType(TypeOfAny.from_error)
|
|
1518
1437
|
assert isinstance(ret, CallableType)
|
|
1519
1438
|
return ret.accept(self)
|
|
@@ -1553,15 +1472,11 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1553
1472
|
kind = ARG_KINDS_BY_CONSTRUCTOR[found.fullname]
|
|
1554
1473
|
kinds.append(kind)
|
|
1555
1474
|
if arg.name is not None and kind.is_star():
|
|
1556
|
-
self.fail(
|
|
1557
|
-
f"{arg.constructor} arguments should not have names", arg
|
|
1558
|
-
)
|
|
1475
|
+
self.fail(f"{arg.constructor} arguments should not have names", arg)
|
|
1559
1476
|
return None
|
|
1560
1477
|
elif (
|
|
1561
1478
|
isinstance(arg, UnboundType)
|
|
1562
|
-
and self.refers_to_full_names(
|
|
1563
|
-
arg, ("typing_extensions.Unpack", "typing.Unpack")
|
|
1564
|
-
)
|
|
1479
|
+
and self.refers_to_full_names(arg, ("typing_extensions.Unpack", "typing.Unpack"))
|
|
1565
1480
|
or isinstance(arg, UnpackType)
|
|
1566
1481
|
):
|
|
1567
1482
|
if seen_unpack:
|
|
@@ -1592,11 +1507,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1592
1507
|
# so use the unpacked type for error messages.
|
|
1593
1508
|
first = first.type
|
|
1594
1509
|
args.append(
|
|
1595
|
-
UnpackType(
|
|
1596
|
-
self.tuple_type(
|
|
1597
|
-
unpack_types, line=first.line, column=first.column
|
|
1598
|
-
)
|
|
1599
|
-
)
|
|
1510
|
+
UnpackType(self.tuple_type(unpack_types, line=first.line, column=first.column))
|
|
1600
1511
|
)
|
|
1601
1512
|
kinds.append(ARG_STAR)
|
|
1602
1513
|
names.append(None)
|
|
@@ -1611,11 +1522,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1611
1522
|
|
|
1612
1523
|
def analyze_literal_type(self, t: UnboundType) -> Type:
|
|
1613
1524
|
if len(t.args) == 0:
|
|
1614
|
-
self.fail(
|
|
1615
|
-
"Literal[...] must have at least one parameter",
|
|
1616
|
-
t,
|
|
1617
|
-
code=codes.VALID_TYPE,
|
|
1618
|
-
)
|
|
1525
|
+
self.fail("Literal[...] must have at least one parameter", t, code=codes.VALID_TYPE)
|
|
1619
1526
|
return AnyType(TypeOfAny.from_error)
|
|
1620
1527
|
|
|
1621
1528
|
output: list[Type] = []
|
|
@@ -1627,9 +1534,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1627
1534
|
output.extend(analyzed_types)
|
|
1628
1535
|
return UnionType.make_union(output, line=t.line)
|
|
1629
1536
|
|
|
1630
|
-
def analyze_literal_param(
|
|
1631
|
-
self, idx: int, arg: Type, ctx: Context
|
|
1632
|
-
) -> list[Type] | None:
|
|
1537
|
+
def analyze_literal_param(self, idx: int, arg: Type, ctx: Context) -> list[Type] | None:
|
|
1633
1538
|
# This UnboundType was originally defined as a string.
|
|
1634
1539
|
if isinstance(arg, UnboundType) and arg.original_str_expr is not None:
|
|
1635
1540
|
assert arg.original_str_fallback is not None
|
|
@@ -1690,11 +1595,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1690
1595
|
# Remap bytes and unicode into the appropriate type for the correct Python version
|
|
1691
1596
|
fallback = self.named_type(arg.base_type_name)
|
|
1692
1597
|
assert isinstance(fallback, Instance)
|
|
1693
|
-
return [
|
|
1694
|
-
LiteralType(
|
|
1695
|
-
arg.literal_value, fallback, line=arg.line, column=arg.column
|
|
1696
|
-
)
|
|
1697
|
-
]
|
|
1598
|
+
return [LiteralType(arg.literal_value, fallback, line=arg.line, column=arg.column)]
|
|
1698
1599
|
elif isinstance(arg, (NoneType, LiteralType)):
|
|
1699
1600
|
# Types that we can just add directly to the literal/potential union of literals.
|
|
1700
1601
|
return [arg]
|
|
@@ -1710,11 +1611,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1710
1611
|
out.extend(union_result)
|
|
1711
1612
|
return out
|
|
1712
1613
|
else:
|
|
1713
|
-
self.fail(
|
|
1714
|
-
f"Parameter {idx} of Literal[...] is invalid",
|
|
1715
|
-
ctx,
|
|
1716
|
-
code=codes.VALID_TYPE,
|
|
1717
|
-
)
|
|
1614
|
+
self.fail(f"Parameter {idx} of Literal[...] is invalid", ctx, code=codes.VALID_TYPE)
|
|
1718
1615
|
return None
|
|
1719
1616
|
|
|
1720
1617
|
def analyze_type(self, t: Type) -> Type:
|
|
@@ -1768,17 +1665,11 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1768
1665
|
if fun_type.variables:
|
|
1769
1666
|
defs = []
|
|
1770
1667
|
for var in fun_type.variables:
|
|
1771
|
-
if
|
|
1772
|
-
self.api.type
|
|
1773
|
-
and self.api.type.self_type
|
|
1774
|
-
and var == self.api.type.self_type
|
|
1775
|
-
):
|
|
1668
|
+
if self.api.type and self.api.type.self_type and var == self.api.type.self_type:
|
|
1776
1669
|
has_self_type = True
|
|
1777
1670
|
continue
|
|
1778
1671
|
var_node = self.lookup_qualified(var.name, defn)
|
|
1779
|
-
assert
|
|
1780
|
-
var_node
|
|
1781
|
-
), "Binding for function type variable not found within function"
|
|
1672
|
+
assert var_node, "Binding for function type variable not found within function"
|
|
1782
1673
|
var_expr = var_node.node
|
|
1783
1674
|
assert isinstance(var_expr, TypeVarLikeExpr)
|
|
1784
1675
|
binding = self.tvar_scope.bind_new(var.name, var_expr)
|
|
@@ -1787,9 +1678,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1787
1678
|
typevars, has_self_type = self.infer_type_variables(fun_type)
|
|
1788
1679
|
# Do not define a new type variable if already defined in scope.
|
|
1789
1680
|
typevars = [
|
|
1790
|
-
(name, tvar)
|
|
1791
|
-
for name, tvar in typevars
|
|
1792
|
-
if not self.is_defined_type_var(name, defn)
|
|
1681
|
+
(name, tvar) for name, tvar in typevars if not self.is_defined_type_var(name, defn)
|
|
1793
1682
|
]
|
|
1794
1683
|
defs = []
|
|
1795
1684
|
for name, tvar in typevars:
|
|
@@ -1825,10 +1714,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1825
1714
|
for t in a:
|
|
1826
1715
|
res.append(
|
|
1827
1716
|
self.anal_type(
|
|
1828
|
-
t,
|
|
1829
|
-
nested,
|
|
1830
|
-
allow_param_spec=allow_param_spec,
|
|
1831
|
-
allow_unpack=allow_unpack,
|
|
1717
|
+
t, nested, allow_param_spec=allow_param_spec, allow_unpack=allow_unpack
|
|
1832
1718
|
)
|
|
1833
1719
|
)
|
|
1834
1720
|
self.allow_param_spec_literals = old_allow_param_spec_literals
|
|
@@ -1866,15 +1752,11 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1866
1752
|
):
|
|
1867
1753
|
if analyzed.prefix.arg_types:
|
|
1868
1754
|
self.fail("Invalid location for Concatenate", t, code=codes.VALID_TYPE)
|
|
1869
|
-
self.note(
|
|
1870
|
-
"You can use Concatenate as the first argument to Callable", t
|
|
1871
|
-
)
|
|
1755
|
+
self.note("You can use Concatenate as the first argument to Callable", t)
|
|
1872
1756
|
analyzed = AnyType(TypeOfAny.from_error)
|
|
1873
1757
|
else:
|
|
1874
1758
|
self.fail(
|
|
1875
|
-
f'Invalid location for ParamSpec "{analyzed.name}"',
|
|
1876
|
-
t,
|
|
1877
|
-
code=codes.VALID_TYPE,
|
|
1759
|
+
f'Invalid location for ParamSpec "{analyzed.name}"', t, code=codes.VALID_TYPE
|
|
1878
1760
|
)
|
|
1879
1761
|
self.note(
|
|
1880
1762
|
"You can use ParamSpec as the first argument to Callable, e.g., "
|
|
@@ -1900,9 +1782,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1900
1782
|
else:
|
|
1901
1783
|
return var_def
|
|
1902
1784
|
|
|
1903
|
-
def anal_var_defs(
|
|
1904
|
-
self, var_defs: Sequence[TypeVarLikeType]
|
|
1905
|
-
) -> list[TypeVarLikeType]:
|
|
1785
|
+
def anal_var_defs(self, var_defs: Sequence[TypeVarLikeType]) -> list[TypeVarLikeType]:
|
|
1906
1786
|
return [self.anal_var_def(vd) for vd in var_defs]
|
|
1907
1787
|
|
|
1908
1788
|
def named_type(
|
|
@@ -1918,10 +1798,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1918
1798
|
if args is not None:
|
|
1919
1799
|
args = self.check_unpacks_in_list(args)
|
|
1920
1800
|
return Instance(
|
|
1921
|
-
node.node,
|
|
1922
|
-
args or [any_type] * len(node.node.defn.type_vars),
|
|
1923
|
-
line=line,
|
|
1924
|
-
column=column,
|
|
1801
|
+
node.node, args or [any_type] * len(node.node.defn.type_vars), line=line, column=column
|
|
1925
1802
|
)
|
|
1926
1803
|
|
|
1927
1804
|
def check_unpacks_in_list(self, items: list[Type]) -> list[Type]:
|
|
@@ -1948,10 +1825,7 @@ class TypeAnalyser(SyntheticTypeVisitor[Type], TypeAnalyzerPluginInterface):
|
|
|
1948
1825
|
def tuple_type(self, items: list[Type], line: int, column: int) -> TupleType:
|
|
1949
1826
|
any_type = AnyType(TypeOfAny.special_form)
|
|
1950
1827
|
return TupleType(
|
|
1951
|
-
items,
|
|
1952
|
-
fallback=self.named_type("builtins.tuple", [any_type]),
|
|
1953
|
-
line=line,
|
|
1954
|
-
column=column,
|
|
1828
|
+
items, fallback=self.named_type("builtins.tuple", [any_type]), line=line, column=column
|
|
1955
1829
|
)
|
|
1956
1830
|
|
|
1957
1831
|
|
|
@@ -1959,9 +1833,7 @@ TypeVarLikeList = List[Tuple[str, TypeVarLikeExpr]]
|
|
|
1959
1833
|
|
|
1960
1834
|
|
|
1961
1835
|
class MsgCallback(Protocol):
|
|
1962
|
-
def __call__(
|
|
1963
|
-
self, __msg: str, __ctx: Context, *, code: ErrorCode | None = None
|
|
1964
|
-
) -> None: ...
|
|
1836
|
+
def __call__(self, __msg: str, __ctx: Context, *, code: ErrorCode | None = None) -> None: ...
|
|
1965
1837
|
|
|
1966
1838
|
|
|
1967
1839
|
def get_omitted_any(
|
|
@@ -1986,11 +1858,7 @@ def get_omitted_any(
|
|
|
1986
1858
|
)
|
|
1987
1859
|
else:
|
|
1988
1860
|
typ = unexpanded_type or orig_type
|
|
1989
|
-
type_str = (
|
|
1990
|
-
typ.name
|
|
1991
|
-
if isinstance(typ, UnboundType)
|
|
1992
|
-
else format_type_bare(typ, options)
|
|
1993
|
-
)
|
|
1861
|
+
type_str = typ.name if isinstance(typ, UnboundType) else format_type_bare(typ, options)
|
|
1994
1862
|
|
|
1995
1863
|
fail(
|
|
1996
1864
|
message_registry.BARE_GENERIC.format(quote_type_string(type_str)),
|
|
@@ -2020,9 +1888,7 @@ def get_omitted_any(
|
|
|
2020
1888
|
any_type = AnyType(TypeOfAny.from_error, line=typ.line, column=typ.column)
|
|
2021
1889
|
else:
|
|
2022
1890
|
any_type = AnyType(
|
|
2023
|
-
TypeOfAny.from_omitted_generics,
|
|
2024
|
-
line=orig_type.line,
|
|
2025
|
-
column=orig_type.column,
|
|
1891
|
+
TypeOfAny.from_omitted_generics, line=orig_type.line, column=orig_type.column
|
|
2026
1892
|
)
|
|
2027
1893
|
return any_type
|
|
2028
1894
|
|
|
@@ -2164,9 +2030,7 @@ def instantiate_type_alias(
|
|
|
2164
2030
|
if any(isinstance(a, UnpackType) for a in args):
|
|
2165
2031
|
# A variadic unpack in fixed size alias (fixed unpacks must be flattened by the caller)
|
|
2166
2032
|
fail(message_registry.INVALID_UNPACK_POSITION, ctx, code=codes.VALID_TYPE)
|
|
2167
|
-
return set_any_tvars(
|
|
2168
|
-
node, [], ctx.line, ctx.column, options, from_error=True
|
|
2169
|
-
)
|
|
2033
|
+
return set_any_tvars(node, [], ctx.line, ctx.column, options, from_error=True)
|
|
2170
2034
|
min_tv_count = sum(not tv.has_default() for tv in node.alias_tvars)
|
|
2171
2035
|
fill_typevars = act_len != max_tv_count
|
|
2172
2036
|
correct = min_tv_count <= act_len <= max_tv_count
|
|
@@ -2179,10 +2043,7 @@ def instantiate_type_alias(
|
|
|
2179
2043
|
for a in args:
|
|
2180
2044
|
if isinstance(a, UnpackType):
|
|
2181
2045
|
unpacked = get_proper_type(a.type)
|
|
2182
|
-
if (
|
|
2183
|
-
isinstance(unpacked, Instance)
|
|
2184
|
-
and unpacked.type.fullname == "builtins.tuple"
|
|
2185
|
-
):
|
|
2046
|
+
if isinstance(unpacked, Instance) and unpacked.type.fullname == "builtins.tuple":
|
|
2186
2047
|
# Variadic tuple is always correct.
|
|
2187
2048
|
correct = True
|
|
2188
2049
|
fill_typevars = not correct
|
|
@@ -2191,9 +2052,7 @@ def instantiate_type_alias(
|
|
|
2191
2052
|
if use_standard_error:
|
|
2192
2053
|
# This is used if type alias is an internal representation of another type,
|
|
2193
2054
|
# for example a generic TypedDict or NamedTuple.
|
|
2194
|
-
msg = wrong_type_arg_count(
|
|
2195
|
-
max_tv_count, max_tv_count, str(act_len), node.name
|
|
2196
|
-
)
|
|
2055
|
+
msg = wrong_type_arg_count(max_tv_count, max_tv_count, str(act_len), node.name)
|
|
2197
2056
|
else:
|
|
2198
2057
|
if node.tvar_tuple_index is not None:
|
|
2199
2058
|
msg = (
|
|
@@ -2226,9 +2085,7 @@ def instantiate_type_alias(
|
|
|
2226
2085
|
act_suffix = len(args) - unpack - 1
|
|
2227
2086
|
if act_prefix < exp_prefix or act_suffix < exp_suffix:
|
|
2228
2087
|
fail("TypeVarTuple cannot be split", ctx, code=codes.TYPE_ARG)
|
|
2229
|
-
return set_any_tvars(
|
|
2230
|
-
node, [], ctx.line, ctx.column, options, from_error=True
|
|
2231
|
-
)
|
|
2088
|
+
return set_any_tvars(node, [], ctx.line, ctx.column, options, from_error=True)
|
|
2232
2089
|
# TODO: we need to check args validity w.r.t alias.alias_tvars.
|
|
2233
2090
|
# Otherwise invalid instantiations will be allowed in runtime context.
|
|
2234
2091
|
# Note: in type context, these will be still caught by semanal_typeargs.
|
|
@@ -2383,12 +2240,7 @@ def check_for_explicit_any(
|
|
|
2383
2240
|
msg: MessageBuilder,
|
|
2384
2241
|
context: Context,
|
|
2385
2242
|
) -> None:
|
|
2386
|
-
if (
|
|
2387
|
-
options.disallow_any_explicit
|
|
2388
|
-
and not is_typeshed_stub
|
|
2389
|
-
and typ
|
|
2390
|
-
and has_explicit_any(typ)
|
|
2391
|
-
):
|
|
2243
|
+
if options.disallow_any_explicit and not is_typeshed_stub and typ and has_explicit_any(typ):
|
|
2392
2244
|
msg.explicit_any(context)
|
|
2393
2245
|
|
|
2394
2246
|
|
|
@@ -2530,9 +2382,7 @@ def validate_instance(t: Instance, fail: MsgCallback, empty_tuple_index: bool) -
|
|
|
2530
2382
|
max_tv_count = len(t.type.type_vars)
|
|
2531
2383
|
if arg_count and (arg_count < min_tv_count or arg_count > max_tv_count):
|
|
2532
2384
|
fail(
|
|
2533
|
-
wrong_type_arg_count(
|
|
2534
|
-
min_tv_count, max_tv_count, str(arg_count), t.type.name
|
|
2535
|
-
),
|
|
2385
|
+
wrong_type_arg_count(min_tv_count, max_tv_count, str(arg_count), t.type.name),
|
|
2536
2386
|
t,
|
|
2537
2387
|
code=codes.TYPE_ARG,
|
|
2538
2388
|
)
|
|
@@ -2566,10 +2416,7 @@ def unknown_unpack(t: Type) -> bool:
|
|
|
2566
2416
|
"""
|
|
2567
2417
|
if isinstance(t, UnpackType):
|
|
2568
2418
|
unpacked = get_proper_type(t.type)
|
|
2569
|
-
if (
|
|
2570
|
-
isinstance(unpacked, AnyType)
|
|
2571
|
-
and unpacked.type_of_any == TypeOfAny.special_form
|
|
2572
|
-
):
|
|
2419
|
+
if isinstance(unpacked, AnyType) and unpacked.type_of_any == TypeOfAny.special_form:
|
|
2573
2420
|
return True
|
|
2574
2421
|
return False
|
|
2575
2422
|
|
|
@@ -2577,9 +2424,7 @@ def unknown_unpack(t: Type) -> bool:
|
|
|
2577
2424
|
class FindTypeVarVisitor(SyntheticTypeVisitor[None]):
|
|
2578
2425
|
"""Type visitor that looks for type variable types and self types."""
|
|
2579
2426
|
|
|
2580
|
-
def __init__(
|
|
2581
|
-
self, api: SemanticAnalyzerCoreInterface, scope: TypeVarLikeScope
|
|
2582
|
-
) -> None:
|
|
2427
|
+
def __init__(self, api: SemanticAnalyzerCoreInterface, scope: TypeVarLikeScope) -> None:
|
|
2583
2428
|
self.api = api
|
|
2584
2429
|
self.scope = scope
|
|
2585
2430
|
self.type_var_likes: list[tuple[str, TypeVarLikeExpr]] = []
|
|
@@ -2720,3 +2565,32 @@ class FindTypeVarVisitor(SyntheticTypeVisitor[None]):
|
|
|
2720
2565
|
else:
|
|
2721
2566
|
for t in types:
|
|
2722
2567
|
t.accept(self)
|
|
2568
|
+
|
|
2569
|
+
|
|
2570
|
+
class TypeVarDefaultTranslator(TrivialSyntheticTypeTranslator):
|
|
2571
|
+
"""Type translate visitor that replaces UnboundTypes with in-scope TypeVars."""
|
|
2572
|
+
|
|
2573
|
+
def __init__(
|
|
2574
|
+
self, api: SemanticAnalyzerInterface, tvar_expr_name: str, context: Context
|
|
2575
|
+
) -> None:
|
|
2576
|
+
self.api = api
|
|
2577
|
+
self.tvar_expr_name = tvar_expr_name
|
|
2578
|
+
self.context = context
|
|
2579
|
+
|
|
2580
|
+
def visit_unbound_type(self, t: UnboundType) -> Type:
|
|
2581
|
+
sym = self.api.lookup_qualified(t.name, t, suppress_errors=True)
|
|
2582
|
+
if sym is not None:
|
|
2583
|
+
if type_var := self.api.tvar_scope.get_binding(sym):
|
|
2584
|
+
return type_var
|
|
2585
|
+
if isinstance(sym.node, TypeVarLikeExpr):
|
|
2586
|
+
self.api.fail(
|
|
2587
|
+
f'Type parameter "{self.tvar_expr_name}" has a default type '
|
|
2588
|
+
"that refers to one or more type variables that are out of scope",
|
|
2589
|
+
self.context,
|
|
2590
|
+
)
|
|
2591
|
+
return AnyType(TypeOfAny.from_error)
|
|
2592
|
+
return super().visit_unbound_type(t)
|
|
2593
|
+
|
|
2594
|
+
def visit_type_alias_type(self, t: TypeAliasType) -> Type:
|
|
2595
|
+
# TypeAliasTypes are analyzed separately already, just return it
|
|
2596
|
+
return t
|