jaclang 0.3.2__tar.gz → 0.3.3__tar.gz
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-0.3.2 → jaclang-0.3.3}/PKG-INFO +1 -1
- jaclang-0.3.3/jaclang/cli/__init__.py +8 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/core/__init__.py +1 -4
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/core/__jac_gen__/corelib.py +243 -27
- jaclang-0.3.2/jaclang/core/corelib_impl.jac → jaclang-0.3.3/jaclang/core/corelib.jac +142 -28
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/__jac_gen__/jac_parser.py +1 -1
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang.egg-info/PKG-INFO +1 -1
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang.egg-info/SOURCES.txt +0 -4
- {jaclang-0.3.2 → jaclang-0.3.3}/setup.py +1 -3
- jaclang-0.3.2/jaclang/cli/__init__.py +0 -11
- jaclang-0.3.2/jaclang/core/__jac_gen__/corelib_impl.py +0 -220
- jaclang-0.3.2/jaclang/core/corelib.jac +0 -115
- jaclang-0.3.2/jaclang/jac/tests/fixtures/__jac_gen__/hello_world.py +0 -5
- jaclang-0.3.2/jaclang/vendor/mypyc/transform/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/README.md +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cli.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cli_impl.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cmds.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cmds_impl.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/cli.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/cli_impl.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/cmds.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/cli/cmds_impl.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/core/__jac_gen__/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/__jac_gen__/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/absyntree.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/codeloc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/constant.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/importer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/parser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/ir_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/def_impl_match_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/def_use_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/import_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/pyast_gen_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/pyast_load_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/pyout_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/schedules.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/sub_node_tab_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/sym_tab_build_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_decl_def_match_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_def_use_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_import_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_jac_format_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_pyast_build_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_pyast_gen_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_sub_node_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_sym_tab_build_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_type_check_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/main/type_check_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/ast_printer_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/fuse_comments_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/jac_formatter_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/schedules.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/sym_tab_printer_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/test_ast_print_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/test_fuse_comments_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/test_symtab_print_pass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/transform.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/utils/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/passes/utils/mypy_ast_build.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/plugin/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/plugin/default.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/plugin/feature.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/plugin/spec.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/plugin/tests/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/plugin/tests/test_features.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/symtable.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/activity.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/fam.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/hello_world.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/kwesc.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/mod_doc_test.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/stuff.jac +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/test_importer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/test_parser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/tests/test_workspace.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/transpiler.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/jac/workspace.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/helpers.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/lang_tools.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/log.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/test.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/tests/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/tests/test_lang_tools.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/utils/treeprinter.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/__pyinstaller/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/__pyinstaller/hook-lark.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/ast_utils.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/common.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/exceptions.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/grammar.py +0 -0
- {jaclang-0.3.2/jaclang/jac/tests/fixtures/__jac_gen__ → jaclang-0.3.3/jaclang/vendor/lark/grammars}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/indenter.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/lark.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/lexer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/load_grammar.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parse_tree_builder.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parser_frontends.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/lark/grammars → jaclang-0.3.3/jaclang/vendor/lark/parsers}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/cyk.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/earley.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/earley_common.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/earley_forest.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/grammar_analysis.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_analysis.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_interactive_parser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_parser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_parser_state.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/xearley.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/py.typed +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/reconstruct.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tools/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tools/nearley.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tools/serialize.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tools/standalone.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tree.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tree_matcher.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/tree_templates.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/utils.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/lark/visitors.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/__main__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/api.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/applytype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/argmap.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/binder.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/bogus_type.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/build.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/checker.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/checkexpr.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/checkmember.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/checkpattern.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/checkstrformat.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/config_parser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/constant_fold.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/constraints.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/copytype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/defaults.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/lark/parsers → jaclang-0.3.3/jaclang/vendor/mypy/dmypy}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy/__main__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy/client.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy_os.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy_server.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy_util.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/erasetype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/errorcodes.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/errors.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/evalexpr.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/expandtype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/exprtotype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/fastparse.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/find_sources.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/fixup.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/freetree.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/fscache.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/fswatcher.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/gclogger.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/git.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/graph_utils.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/indirection.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/infer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/inspections.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/ipc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/join.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/literals.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/lookup.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/main.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/maptype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/meet.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/memprofile.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/message_registry.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/messages.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/metastore.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/mixedtraverser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/modulefinder.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/moduleinspect.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/mro.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/nodes.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/operators.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/options.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/parse.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/partially_defined.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/patterns.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugin.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypy/dmypy → jaclang-0.3.3/jaclang/vendor/mypy/plugins}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/attrs.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/common.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/ctypes.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/dataclasses.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/default.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/enums.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/functools.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/proper_plugin.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/singledispatch.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/py.typed +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/pyinfo.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/reachability.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/refinfo.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/renaming.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/report.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/scope.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_classprop.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_enum.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_infer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_main.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_namedtuple.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_newtype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_pass1.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_shared.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_typeargs.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_typeddict.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypy/plugins → jaclang-0.3.3/jaclang/vendor/mypy/server}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/astdiff.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/astmerge.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/aststrip.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/deps.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/mergecheck.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/objgraph.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/subexpr.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/target.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/trigger.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/server/update.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/sharedparse.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/solve.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/split_namespace.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/state.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stats.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/strconv.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stubdoc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stubgen.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stubgenc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stubinfo.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stubtest.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/stubutil.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/subtypes.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/suggestions.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypy/server → jaclang-0.3.3/jaclang/vendor/mypy/test}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/config.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/data.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/helpers.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypy/test → jaclang-0.3.3/jaclang/vendor/mypy/test/meta}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/_pytest.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/test_update_data.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/test_find_sources.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/test_ref_info.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testapi.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testargs.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testcheck.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testcmdline.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testconstraints.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testdaemon.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testdeps.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testdiff.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testerrorstream.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testfinegrained.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testformatter.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testfscache.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testgraph.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testinfer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testipc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testmerge.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testmodulefinder.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testmypyc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testparse.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testpep561.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testpythoneval.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testreports.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testsemanal.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testsolve.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/teststubgen.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/teststubinfo.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/teststubtest.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testsubtypes.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testtransform.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testtypegen.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testtypes.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testutil.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/typefixture.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/update_data.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/test/visitors.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/traverser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/treetransform.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/tvar_scope.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/type_visitor.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/typeanal.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/typeops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/types.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/types_utils.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/typestate.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/typetraverser.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/typevars.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/typevartuples.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/util.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/version.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy/visitor.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypy_extensions.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypy/test/meta → jaclang-0.3.3/jaclang/vendor/mypyc}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/__main__.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc → jaclang-0.3.3/jaclang/vendor/mypyc/analysis}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/attrdefined.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/blockfreq.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/dataflow.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/ircheck.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/selfleaks.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/build.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc/analysis → jaclang-0.3.3/jaclang/vendor/mypyc/codegen}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/cstring.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emit.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitclass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitfunc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitmodule.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/literals.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/common.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/crash.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/errors.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc/codegen → jaclang-0.3.3/jaclang/vendor/mypyc/ir}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/class_ir.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/func_ir.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/module_ir.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/pprint.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/rtypes.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc/ir → jaclang-0.3.3/jaclang/vendor/mypyc/irbuild}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/builder.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/callable_class.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/classdef.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/context.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/env_class.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/expression.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/function.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/generator.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/main.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/mapper.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/match.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/prepare.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/specialize.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/statement.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/targets.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/util.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/visitor.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/vtable.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/namegen.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/options.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc/irbuild → jaclang-0.3.3/jaclang/vendor/mypyc/primitives}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/dict_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/exc_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/float_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/generic_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/int_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/list_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/misc_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/registry.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/set_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/str_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/rt_subtype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/sametype.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/subtype.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc/primitives → jaclang-0.3.3/jaclang/vendor/mypyc/test}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/config.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_analysis.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_cheader.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_commandline.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emit.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emitclass.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emitfunc.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_exceptions.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_external.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_irbuild.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_ircheck.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_literals.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_namegen.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_pprint.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_rarray.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_refcount.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_run.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_serialization.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_struct.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_tuplename.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_typeops.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/testutil.py +0 -0
- {jaclang-0.3.2/jaclang/vendor/mypyc/test → jaclang-0.3.3/jaclang/vendor/mypyc/transform}/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/exceptions.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/refcount.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/uninit.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/__init__.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/_callers.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/_hooks.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/_manager.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/_result.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/_tracing.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/pluggy/py.typed +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang/vendor/typing_extensions.py +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang.egg-info/dependency_links.txt +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang.egg-info/entry_points.txt +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/jaclang.egg-info/top_level.txt +0 -0
- {jaclang-0.3.2 → jaclang-0.3.3}/setup.cfg +0 -0
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"""Core primitives for Jaseci."""
|
|
2
2
|
from jaclang import jac_import
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
from jaclang.core.__jac_gen__ import corelib
|
|
6
|
-
except Exception:
|
|
7
|
-
corelib = jac_import("corelib")
|
|
4
|
+
corelib = jac_import("corelib")
|
|
8
5
|
if not corelib:
|
|
9
6
|
raise ImportError("Could not import primitives, internal jaseci error")
|
|
10
7
|
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"""Jac's Key Elemental Abstractions"""
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
from enum import Enum as __jac_Enum__, auto as __jac_auto__
|
|
4
|
-
from jaclang import jac_import as __jac_import__
|
|
5
4
|
from jaclang.jac.plugin.feature import JacFeature as _JacFeature
|
|
6
5
|
from datetime import datetime
|
|
7
6
|
from uuid import UUID, uuid4
|
|
8
7
|
from jaclang.jac.constant import EdgeDir
|
|
9
8
|
from jaclang.jac.plugin import Architype, AbsRootHook, hookimpl
|
|
10
|
-
__jac_import__(target='corelib_impl', base_path=__file__)
|
|
11
|
-
from corelib_impl import *
|
|
12
|
-
import corelib_impl
|
|
13
9
|
|
|
14
10
|
class AccessMode(__jac_Enum__):
|
|
15
11
|
READ_ONLY = __jac_auto__()
|
|
@@ -74,6 +70,7 @@ exec_ctx = ExecutionContext()
|
|
|
74
70
|
|
|
75
71
|
@_JacFeature.make_architype('obj')
|
|
76
72
|
class ElementInterface:
|
|
73
|
+
ob: object
|
|
77
74
|
(jid): UUID = uuid4()
|
|
78
75
|
(timestamp): datetime = datetime.now()
|
|
79
76
|
(persist): bool = False
|
|
@@ -167,7 +164,7 @@ class NodeInterface(DataSpatialInterface):
|
|
|
167
164
|
return ret_nodes
|
|
168
165
|
|
|
169
166
|
def __call__(self, walk: Walker) -> None:
|
|
170
|
-
if not isinstance(walk,
|
|
167
|
+
if not isinstance(walk._jac_, WalkerInterface):
|
|
171
168
|
raise TypeError('Argument must be a Walker instance')
|
|
172
169
|
walk(self)
|
|
173
170
|
|
|
@@ -227,63 +224,282 @@ class WalkerInterface(DataSpatialInterface):
|
|
|
227
224
|
self.disengaged = True
|
|
228
225
|
|
|
229
226
|
def __call__(self, nd: Node) -> None:
|
|
230
|
-
self.
|
|
231
|
-
self.
|
|
227
|
+
self.path = []
|
|
228
|
+
self.next = [nd]
|
|
232
229
|
walker_type = self.__class__.__name__
|
|
233
|
-
while len(self.
|
|
234
|
-
nd = self.
|
|
230
|
+
while len(self.next):
|
|
231
|
+
nd = self.next.pop(0)
|
|
235
232
|
node_type = nd.__class__.__name__
|
|
236
|
-
for i in nd.
|
|
233
|
+
for i in nd.ds_entry_funcs:
|
|
237
234
|
if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
|
|
238
235
|
i['func'](nd, self)
|
|
239
|
-
if self.
|
|
236
|
+
if self.disengaged:
|
|
240
237
|
return
|
|
241
|
-
for i in self.
|
|
238
|
+
for i in self.ds_entry_funcs:
|
|
242
239
|
if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
|
|
243
240
|
i['func'](self, nd)
|
|
244
|
-
if self.
|
|
241
|
+
if self.disengaged:
|
|
245
242
|
return
|
|
246
|
-
for i in self.
|
|
243
|
+
for i in self.ds_exit_funcs:
|
|
247
244
|
if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
|
|
248
245
|
i['func'](self, nd)
|
|
249
|
-
if self.
|
|
246
|
+
if self.disengaged:
|
|
250
247
|
return
|
|
251
|
-
for i in nd.
|
|
248
|
+
for i in nd.ds_exit_funcs:
|
|
252
249
|
if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
|
|
253
250
|
i['func'](nd, self)
|
|
254
|
-
if self.
|
|
251
|
+
if self.disengaged:
|
|
255
252
|
return
|
|
256
|
-
self.
|
|
257
|
-
self.
|
|
253
|
+
self.path.append(nd)
|
|
254
|
+
self.ignores = []
|
|
258
255
|
|
|
259
256
|
@_JacFeature.make_architype('obj')
|
|
260
257
|
class Root(AbsRootHook):
|
|
261
|
-
_jac_: NodeInterface
|
|
262
258
|
RootType: type
|
|
259
|
+
(_jac_): NodeInterface | None = None
|
|
260
|
+
|
|
261
|
+
def __post_init__(self) -> None:
|
|
262
|
+
self._jac_ = NodeInterface(self)
|
|
263
263
|
|
|
264
264
|
@_JacFeature.make_architype('obj')
|
|
265
265
|
class Master:
|
|
266
|
-
(_jac_): ElementInterface =
|
|
267
|
-
(root_node): Root = Root(
|
|
266
|
+
(_jac_): ElementInterface | None = None
|
|
267
|
+
(root_node): Root = Root(Root)
|
|
268
|
+
|
|
269
|
+
def __post_init__(self) -> None:
|
|
270
|
+
self._jac_ = ElementInterface(self)
|
|
268
271
|
|
|
269
272
|
@_JacFeature.make_architype('obj')
|
|
270
273
|
class JacPlugin:
|
|
271
274
|
|
|
272
275
|
@staticmethod
|
|
276
|
+
@hookimpl
|
|
273
277
|
def bind_architype(arch: AT, arch_type: str) -> bool:
|
|
274
278
|
match arch_type:
|
|
275
279
|
case 'obj':
|
|
276
|
-
arch._jac_ = ObjectInterface()
|
|
280
|
+
arch._jac_ = ObjectInterface(arch)
|
|
277
281
|
case 'node':
|
|
278
|
-
arch._jac_ = NodeInterface()
|
|
282
|
+
arch._jac_ = NodeInterface(arch)
|
|
279
283
|
case 'edge':
|
|
280
|
-
arch._jac_ = EdgeInterface()
|
|
284
|
+
arch._jac_ = EdgeInterface(arch)
|
|
281
285
|
case 'walker':
|
|
282
|
-
arch._jac_ = WalkerInterface()
|
|
286
|
+
arch._jac_ = WalkerInterface(arch)
|
|
283
287
|
case _:
|
|
284
288
|
raise TypeError('Invalid archetype type')
|
|
285
289
|
return True
|
|
286
290
|
|
|
287
291
|
@staticmethod
|
|
292
|
+
@hookimpl
|
|
288
293
|
def get_root() -> Architype:
|
|
289
|
-
return exec_ctx.get_root()
|
|
294
|
+
return exec_ctx.get_root()
|
|
295
|
+
|
|
296
|
+
def o_Memory_c_get_obj(self, caller_id: UUID, item_id: UUID, override: bool=False) -> Element:
|
|
297
|
+
ret = self.index.get(item_id)
|
|
298
|
+
if override or ret.__is_readable(ret is not None and caller_id):
|
|
299
|
+
return ret
|
|
300
|
+
|
|
301
|
+
def o_Memory_c_has_obj(self, item_id: UUID) -> bool:
|
|
302
|
+
return item_id in self.index
|
|
303
|
+
|
|
304
|
+
def o_Memory_c_save_obj(self, caller_id: UUID, item: Element) -> None:
|
|
305
|
+
if item.is_writable(caller_id):
|
|
306
|
+
self.index[item.id] = item
|
|
307
|
+
if item._persist:
|
|
308
|
+
self.save_obj_list.add(item)
|
|
309
|
+
self.mem[item.id] = item
|
|
310
|
+
if item._persist:
|
|
311
|
+
self.save_obj_list.add(item)
|
|
312
|
+
|
|
313
|
+
def o_Memory_c_del_obj(self, caller_id: UUID, item: Element) -> None:
|
|
314
|
+
if item.is_writable(caller_id):
|
|
315
|
+
self.index.pop(item.id)
|
|
316
|
+
if item._persist:
|
|
317
|
+
self.save_obj_list.remove(item)
|
|
318
|
+
|
|
319
|
+
def o_Memory_c_get_object_distribution(self) -> dict:
|
|
320
|
+
dist = {}
|
|
321
|
+
for i in self.index.keys():
|
|
322
|
+
t = type(self.index[i])
|
|
323
|
+
if t in dist:
|
|
324
|
+
dist[t] += 1
|
|
325
|
+
else:
|
|
326
|
+
dist[t] = 1
|
|
327
|
+
return dist
|
|
328
|
+
|
|
329
|
+
def o_Memory_c_get_mem_size(self) -> float:
|
|
330
|
+
return sys.getsizeof(self.index) / 1024.0
|
|
331
|
+
|
|
332
|
+
def o_ExecutionContext_c_get_root(self) -> None:
|
|
333
|
+
if type(self.master) == UUID:
|
|
334
|
+
self.master = Master()
|
|
335
|
+
return self.master.root_node
|
|
336
|
+
|
|
337
|
+
def o_ExecutionContext_c_reset(self) -> None:
|
|
338
|
+
self.__init__()
|
|
339
|
+
|
|
340
|
+
class e_AccessMode(__jac_Enum__):
|
|
341
|
+
READ_ONLY = __jac_auto__()
|
|
342
|
+
READ_WRITE = __jac_auto__()
|
|
343
|
+
PRIVATE = __jac_auto__()
|
|
344
|
+
|
|
345
|
+
def o_ElementInterface_c_make_public_ro(self) -> None:
|
|
346
|
+
self.__jinfo.access_mode = AccessMode.READ_ONLY
|
|
347
|
+
|
|
348
|
+
def o_ElementInterface_c_make_public_rw(self) -> None:
|
|
349
|
+
self.__jinfo.access_mode = AccessMode.READ_WRITE
|
|
350
|
+
|
|
351
|
+
def o_ElementInterface_c_make_private(self) -> None:
|
|
352
|
+
self.__jinfo.access_mode = AccessMode.PRIVATE
|
|
353
|
+
|
|
354
|
+
def o_ElementInterface_c_is_public_ro(self) -> bool:
|
|
355
|
+
return self.__jinfo.access_mode == AccessMode.READ_ONLY
|
|
356
|
+
|
|
357
|
+
def o_ElementInterface_c_is_public_rw(self) -> bool:
|
|
358
|
+
return self.__jinfo.access_mode == AccessMode.READ_WRITE
|
|
359
|
+
|
|
360
|
+
def o_ElementInterface_c_is_private(self) -> bool:
|
|
361
|
+
return self.__jinfo.access_mode == AccessMode.PRIVATE
|
|
362
|
+
|
|
363
|
+
def o_ElementInterface_c_is_readable(self, caller_id: UUID) -> bool:
|
|
364
|
+
return caller_id == self.owner_id or (self.is_public_read() or (caller_id in self.ro_access or caller_id in self.rw_access))
|
|
365
|
+
|
|
366
|
+
def o_ElementInterface_c_is_writable(self, caller_id: UUID) -> bool:
|
|
367
|
+
return caller_id == self.owner_id or (self.is_public_write() or caller_id in self.rw_access)
|
|
368
|
+
|
|
369
|
+
def o_ElementInterface_c_give_access(self, caller_id: UUID, read_write: bool=False) -> None:
|
|
370
|
+
if read_write:
|
|
371
|
+
self.rw_access.add(caller_id)
|
|
372
|
+
else:
|
|
373
|
+
add.ro_access.self(caller_id)
|
|
374
|
+
|
|
375
|
+
def o_ElementInterface_c_revoke_access(self, caller_id: UUID) -> None:
|
|
376
|
+
self.ro_access.discard(caller_id)
|
|
377
|
+
self.rw_access.discard(caller_id)
|
|
378
|
+
|
|
379
|
+
def o_DataSpatialInterface_c_on_entry(cls: type, triggers: list) -> None:
|
|
380
|
+
|
|
381
|
+
def decorator(func: callable) -> callable:
|
|
382
|
+
cls.ds_entry_funcs.append({'types': triggers, 'func': func})
|
|
383
|
+
|
|
384
|
+
def wrapper(*args: list, **kwargs: dict) -> callable:
|
|
385
|
+
return func(*args, **kwargs)
|
|
386
|
+
return wrapper
|
|
387
|
+
return decorator
|
|
388
|
+
|
|
389
|
+
def o_DataSpatialInterface_c_on_exit(cls: type, triggers: list) -> None:
|
|
390
|
+
|
|
391
|
+
def decorator(func: callable) -> callable:
|
|
392
|
+
cls.ds_exit_funcs.append({'types': triggers, 'func': func})
|
|
393
|
+
|
|
394
|
+
def wrapper(*args: list, **kwargs: dict) -> callable:
|
|
395
|
+
return func(*args, **kwargs)
|
|
396
|
+
return wrapper
|
|
397
|
+
return decorator
|
|
398
|
+
|
|
399
|
+
def o_NodeInterface_c_connect_node(self, nd: Node, edg: Edge) -> Node:
|
|
400
|
+
edg.attach(self.py_obj, nd)
|
|
401
|
+
return self
|
|
402
|
+
|
|
403
|
+
def o_NodeInterface_c_edges_to_nodes(self, dir: EdgeDir) -> list[Node]:
|
|
404
|
+
ret_nodes = []
|
|
405
|
+
if dir in [EdgeDir.OUT, EdgeDir.ANY]:
|
|
406
|
+
for i in self.edges[EdgeDir.OUT]:
|
|
407
|
+
ret_nodes.append(i.target)
|
|
408
|
+
elif dir in [EdgeDir.IN, EdgeDir.ANY]:
|
|
409
|
+
for i in self.edges[EdgeDir.IN]:
|
|
410
|
+
ret_nodes.append(i.source)
|
|
411
|
+
return ret_nodes
|
|
412
|
+
|
|
413
|
+
def o_EdgeInterface_c_apply_dir(self, dir: EdgeDir) -> Edge:
|
|
414
|
+
self.dir = dir
|
|
415
|
+
return self
|
|
416
|
+
|
|
417
|
+
def o_EdgeInterface_c_attach(self, src: Node, trg: Node) -> Edge:
|
|
418
|
+
if self.dir == EdgeDir.IN:
|
|
419
|
+
self.source = trg
|
|
420
|
+
self.target = src
|
|
421
|
+
src._jac_.edges[EdgeDir.IN].append(self)
|
|
422
|
+
trg._jac_.edges[EdgeDir.OUT].append(self)
|
|
423
|
+
else:
|
|
424
|
+
self.source = src
|
|
425
|
+
self.target = trg
|
|
426
|
+
src._jac_.edges[EdgeDir.OUT].append(self)
|
|
427
|
+
trg._jac_.edges[EdgeDir.IN].append(self)
|
|
428
|
+
return self
|
|
429
|
+
|
|
430
|
+
def o_WalkerInterface_c_visit_node(self, nds: list[Node] | (list[Edge] | (Node | Edge))) -> None:
|
|
431
|
+
if isinstance(nds, list):
|
|
432
|
+
for i in nds:
|
|
433
|
+
if i not in self.ignores:
|
|
434
|
+
self.next.append(i)
|
|
435
|
+
elif nds not in self.ignores:
|
|
436
|
+
self.next.append(nds)
|
|
437
|
+
return len(nds) if isinstance(nds, list) else 1
|
|
438
|
+
|
|
439
|
+
def o_WalkerInterface_c_ignore_node(self, nds: list[Node] | (list[Edge] | (Node | Edge))) -> None:
|
|
440
|
+
if isinstance(nds, list):
|
|
441
|
+
for i in nds:
|
|
442
|
+
self.ignores.append(i)
|
|
443
|
+
else:
|
|
444
|
+
self.ignores.append(nds)
|
|
445
|
+
|
|
446
|
+
def o_WalkerInterface_c_disengage_now(self) -> None:
|
|
447
|
+
self.next = []
|
|
448
|
+
self.disengaged = True
|
|
449
|
+
|
|
450
|
+
def o_NodeInterface_c___call__(self, walk: object) -> None:
|
|
451
|
+
if not isinstance(walk._jac_, WalkerInterface):
|
|
452
|
+
raise TypeError('Argument must be a Walker instance')
|
|
453
|
+
walk(self)
|
|
454
|
+
|
|
455
|
+
def o_EdgeInterface_c___call__(self, walk: Walker) -> None:
|
|
456
|
+
if not isinstance(walk, Walker):
|
|
457
|
+
raise TypeError('Argument must be a Walker instance')
|
|
458
|
+
walk(self._jac_.target)
|
|
459
|
+
|
|
460
|
+
def o_WalkerInterface_c___call__(self, nd: Node) -> None:
|
|
461
|
+
self.path = []
|
|
462
|
+
self.next = [nd]
|
|
463
|
+
walker_type = self.__class__.__name__
|
|
464
|
+
while len(self.next):
|
|
465
|
+
nd = self.next.pop(0)
|
|
466
|
+
node_type = nd.__class__.__name__
|
|
467
|
+
for i in nd.ds_entry_funcs:
|
|
468
|
+
if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
|
|
469
|
+
i['func'](nd, self)
|
|
470
|
+
if self.disengaged:
|
|
471
|
+
return
|
|
472
|
+
for i in self.ds_entry_funcs:
|
|
473
|
+
if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
|
|
474
|
+
i['func'](self, nd)
|
|
475
|
+
if self.disengaged:
|
|
476
|
+
return
|
|
477
|
+
for i in self.ds_exit_funcs:
|
|
478
|
+
if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
|
|
479
|
+
i['func'](self, nd)
|
|
480
|
+
if self.disengaged:
|
|
481
|
+
return
|
|
482
|
+
for i in nd.ds_exit_funcs:
|
|
483
|
+
if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
|
|
484
|
+
i['func'](nd, self)
|
|
485
|
+
if self.disengaged:
|
|
486
|
+
return
|
|
487
|
+
self.path.append(nd)
|
|
488
|
+
self.ignores = []
|
|
489
|
+
|
|
490
|
+
def o_JacPlugin_c_bind_architype(arch: AT, arch_type: str) -> bool:
|
|
491
|
+
match arch_type:
|
|
492
|
+
case 'obj':
|
|
493
|
+
arch._jac_ = ObjectInterface(arch)
|
|
494
|
+
case 'node':
|
|
495
|
+
arch._jac_ = NodeInterface(arch)
|
|
496
|
+
case 'edge':
|
|
497
|
+
arch._jac_ = EdgeInterface(arch)
|
|
498
|
+
case 'walker':
|
|
499
|
+
arch._jac_ = WalkerInterface(arch)
|
|
500
|
+
case _:
|
|
501
|
+
raise TypeError('Invalid archetype type')
|
|
502
|
+
return True
|
|
503
|
+
|
|
504
|
+
def o_JacPlugin_c_get_root() -> None:
|
|
505
|
+
return exec_ctx.get_root()
|
|
@@ -1,9 +1,124 @@
|
|
|
1
1
|
"""Jac's Key Elemental Abstractions"""
|
|
2
2
|
|
|
3
|
-
import:py
|
|
3
|
+
import:py from datetime, datetime;
|
|
4
4
|
import:py from uuid, UUID, uuid4;
|
|
5
5
|
import:py from jaclang.jac.constant, EdgeDir;
|
|
6
|
-
import:py from jaclang.jac.plugin, hookimpl;
|
|
6
|
+
import:py from jaclang.jac.plugin, Architype, AbsRootHook, hookimpl;
|
|
7
|
+
|
|
8
|
+
enum AccessMode;
|
|
9
|
+
|
|
10
|
+
obj Memory {
|
|
11
|
+
has index: dict[UUID, Element] = {},
|
|
12
|
+
save_queue: list[Element] = [];
|
|
13
|
+
|
|
14
|
+
#* Main Accessors *#
|
|
15
|
+
can get_obj(caller_id: UUID, item_id: UUID,
|
|
16
|
+
override: bool = False) -> Element;
|
|
17
|
+
can has_obj(item_id: UUID) -> bool;
|
|
18
|
+
can save_obj(caller_id: UUID, item: Element);
|
|
19
|
+
can del_obj(caller_id: UUID, item: Element);
|
|
20
|
+
|
|
21
|
+
#* Utility Functions *#
|
|
22
|
+
can get_object_distribution -> dict;
|
|
23
|
+
can get_mem_size -> float;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
obj ExecutionContext {
|
|
27
|
+
has master: Master = :>uuid4,
|
|
28
|
+
memory: Memory = Memory();
|
|
29
|
+
|
|
30
|
+
can reset;
|
|
31
|
+
can get_root() -> Node;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
"Global Execution Context, should be monkey patched by the user."
|
|
35
|
+
glob exec_ctx = ExecutionContext();
|
|
36
|
+
|
|
37
|
+
obj ElementInterface {
|
|
38
|
+
has ob: object,
|
|
39
|
+
jid: UUID = :>uuid4,
|
|
40
|
+
timestamp: datetime = :>datetime.now,
|
|
41
|
+
persist: bool = False,
|
|
42
|
+
access_mode: AccessMode = AccessMode.PRIVATE,
|
|
43
|
+
rw_access: set = :>set,
|
|
44
|
+
ro_access: set = :>set,
|
|
45
|
+
owner_id: UUID = exec_ctx.master,
|
|
46
|
+
mem: Memory = exec_ctx.memory;
|
|
47
|
+
|
|
48
|
+
can make_public_ro;
|
|
49
|
+
can make_public_rw;
|
|
50
|
+
can make_private;
|
|
51
|
+
can is_public_ro -> bool;
|
|
52
|
+
can is_public_rw -> bool;
|
|
53
|
+
can is_private -> bool;
|
|
54
|
+
can is_readable(caller_id: UUID) -> bool;
|
|
55
|
+
can is_writable(caller_id: UUID) -> bool;
|
|
56
|
+
can give_access(caller_id: UUID, read_write: bool = False);
|
|
57
|
+
can revoke_access(caller_id: UUID);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
obj ObjectInterface:ElementInterface: {}
|
|
61
|
+
|
|
62
|
+
obj DataSpatialInterface:ObjectInterface: {
|
|
63
|
+
static has ds_entry_funcs: list[dict]=[],
|
|
64
|
+
ds_exit_funcs: list[dict]=[];
|
|
65
|
+
|
|
66
|
+
static can on_entry(cls: type, triggers: list[type]);
|
|
67
|
+
static can on_exit(cls: type, triggers: list[type]);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
obj NodeInterface:DataSpatialInterface: {
|
|
71
|
+
has edges: dict[EdgeDir, list[Edge]]
|
|
72
|
+
= {EdgeDir.IN: [], EdgeDir.OUT: []};
|
|
73
|
+
|
|
74
|
+
can connect_node(nd: Node, edg: Edge) -> Node;
|
|
75
|
+
can edges_to_nodes(dir: EdgeDir) -> list[Node];
|
|
76
|
+
can __call__(walk: Walker);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
obj EdgeInterface:DataSpatialInterface: {
|
|
80
|
+
has source: Node = None,
|
|
81
|
+
target: Node = None,
|
|
82
|
+
dir: EdgeDir = None;
|
|
83
|
+
|
|
84
|
+
can apply_dir(dir: EdgeDir) -> Edge;
|
|
85
|
+
can attach(src: Node, trg: Node) -> Edge;
|
|
86
|
+
can __call__(walk: Walker);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
obj WalkerInterface:DataSpatialInterface: {
|
|
90
|
+
has path: list[Node] = [],
|
|
91
|
+
next: list[Node] = [],
|
|
92
|
+
ignores: list[Node] = [],
|
|
93
|
+
disengaged: bool = False;
|
|
94
|
+
|
|
95
|
+
can visit_node(nds: list[Node]|list[Edge]|Node|Edge);
|
|
96
|
+
can ignore_node(nds: list[Node]|list[Edge]|Node|Edge);
|
|
97
|
+
can disengage_now;
|
|
98
|
+
can __call__(nd: Node);
|
|
99
|
+
}
|
|
100
|
+
obj Root:AbsRootHook: {
|
|
101
|
+
has RootType: type;
|
|
102
|
+
has _jac_: NodeInterface|None = None;
|
|
103
|
+
can <pi> {
|
|
104
|
+
<self>._jac_ = NodeInterface(<self>);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
obj Master {
|
|
109
|
+
has _jac_: ElementInterface|None = None;
|
|
110
|
+
has root_node: Root = Root(Root);
|
|
111
|
+
can <pi> {
|
|
112
|
+
<self>._jac_ = ElementInterface(<self>);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
obj JacPlugin {
|
|
117
|
+
@hookimpl
|
|
118
|
+
static can bind_architype(arch: AT, arch_type: str) -> bool;
|
|
119
|
+
@hookimpl
|
|
120
|
+
static can get_root() -> Architype;
|
|
121
|
+
}
|
|
7
122
|
|
|
8
123
|
:obj:Memory:can:get_obj
|
|
9
124
|
(caller_id: UUID, item_id: UUID, override: bool = False) -> Element {
|
|
@@ -234,11 +349,11 @@ import:py from jaclang.jac.plugin, hookimpl;
|
|
|
234
349
|
|
|
235
350
|
|
|
236
351
|
:obj:NodeInterface:can:__call__
|
|
237
|
-
(walk:
|
|
238
|
-
if not (walk,
|
|
239
|
-
raise ("Argument must be a Walker instance")
|
|
352
|
+
(walk: object) {
|
|
353
|
+
if not isinstance(walk._jac_, WalkerInterface) {
|
|
354
|
+
raise TypeError("Argument must be a Walker instance");
|
|
240
355
|
}
|
|
241
|
-
<self>
|
|
356
|
+
walk(<self>);
|
|
242
357
|
}
|
|
243
358
|
|
|
244
359
|
|
|
@@ -252,65 +367,64 @@ import:py from jaclang.jac.plugin, hookimpl;
|
|
|
252
367
|
|
|
253
368
|
:obj:WalkerInterface:can:__call__
|
|
254
369
|
(nd: Node) {
|
|
255
|
-
<self>.
|
|
256
|
-
<self>.
|
|
370
|
+
<self>.path = [];
|
|
371
|
+
<self>.next = [nd];
|
|
257
372
|
walker_type = <self>.__class__.__name__;
|
|
258
|
-
while <self>.
|
|
259
|
-
nd = 0 :> <self>.
|
|
373
|
+
while <self>.next :> len {
|
|
374
|
+
nd = 0 :> <self>.next.pop;
|
|
260
375
|
node_type = nd.__class__.__name__;
|
|
261
376
|
|
|
262
|
-
for i in nd.
|
|
377
|
+
for i in nd.ds_entry_funcs {
|
|
263
378
|
if i['func'].__qualname__.split(".")[0] == node_type and
|
|
264
379
|
<self>:>type in i['types'] {
|
|
265
380
|
(nd, <self>) :> i['func'];
|
|
266
381
|
}
|
|
267
|
-
if <self>.
|
|
382
|
+
if <self>.disengaged {return;}
|
|
268
383
|
}
|
|
269
|
-
for i in <self>.
|
|
384
|
+
for i in <self>.ds_entry_funcs {
|
|
270
385
|
if i['func'].__qualname__.split(".")[0] == walker_type and
|
|
271
386
|
(nd:>type in i['types'] or nd in i['types']) { # if nd==root direct chec
|
|
272
|
-
(<self>, nd)
|
|
387
|
+
i['func'](<self>, nd);
|
|
273
388
|
}
|
|
274
|
-
if <self>.
|
|
389
|
+
if <self>.disengaged {return;}
|
|
275
390
|
}
|
|
276
|
-
for i in <self>.
|
|
391
|
+
for i in <self>.ds_exit_funcs {
|
|
277
392
|
if i['func'].__qualname__.split(".")[0] == walker_type and
|
|
278
393
|
(nd:>type in i['types'] or nd in i['types']) {
|
|
279
|
-
|
|
394
|
+
i['func'](<self>, nd);
|
|
280
395
|
}
|
|
281
|
-
if <self>.
|
|
396
|
+
if <self>.disengaged {return;}
|
|
282
397
|
}
|
|
283
|
-
for i in nd.
|
|
398
|
+
for i in nd.ds_exit_funcs {
|
|
284
399
|
if i['func'].__qualname__.split(".")[0] == node_type and
|
|
285
400
|
<self>:>type in i['types'] {
|
|
286
401
|
(nd, <self>) :> i['func'];
|
|
287
402
|
}
|
|
288
|
-
if <self>.
|
|
403
|
+
if <self>.disengaged {return;}
|
|
289
404
|
}
|
|
290
|
-
nd :> <self>.
|
|
405
|
+
nd :> <self>.path.append;
|
|
291
406
|
}
|
|
292
|
-
<self>.
|
|
407
|
+
<self>.ignores=[];
|
|
293
408
|
}
|
|
294
409
|
|
|
295
|
-
|
|
410
|
+
|
|
296
411
|
:obj:JacPlugin:can:bind_architype
|
|
297
412
|
(arch: AT, arch_type: str) -> bool {
|
|
298
413
|
match arch_type {
|
|
299
414
|
case 'obj':
|
|
300
|
-
arch._jac_ = ObjectInterface();
|
|
415
|
+
arch._jac_ = ObjectInterface(arch);
|
|
301
416
|
case 'node':
|
|
302
|
-
arch._jac_ = NodeInterface();
|
|
417
|
+
arch._jac_ = NodeInterface(arch);
|
|
303
418
|
case 'edge':
|
|
304
|
-
arch._jac_ = EdgeInterface();
|
|
419
|
+
arch._jac_ = EdgeInterface(arch);
|
|
305
420
|
case 'walker':
|
|
306
|
-
arch._jac_ = WalkerInterface();
|
|
421
|
+
arch._jac_ = WalkerInterface(arch);
|
|
307
422
|
case _:
|
|
308
423
|
raise ("Invalid archetype type") :> TypeError;
|
|
309
424
|
}
|
|
310
425
|
return True;
|
|
311
426
|
}
|
|
312
427
|
|
|
313
|
-
@hookimpl
|
|
314
428
|
:obj:JacPlugin:can:get_root
|
|
315
429
|
() -> None {
|
|
316
430
|
return exec_ctx.get_root();
|