jaclang 0.3.1__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.1 → jaclang-0.3.3}/PKG-INFO +1 -1
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/__init__.py +2 -1
- jaclang-0.3.3/jaclang/core/__init__.py +8 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/core/__jac_gen__/corelib.py +243 -27
- jaclang-0.3.1/jaclang/core/corelib_impl.jac → jaclang-0.3.3/jaclang/core/corelib.jac +142 -28
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/__jac_gen__/jac_parser.py +1 -1
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang.egg-info/PKG-INFO +1 -1
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang.egg-info/SOURCES.txt +0 -2
- {jaclang-0.3.1 → jaclang-0.3.3}/setup.py +3 -1
- jaclang-0.3.1/jaclang/core/__init__.py +0 -8
- jaclang-0.3.1/jaclang/core/__jac_gen__/corelib_impl.py +0 -220
- jaclang-0.3.1/jaclang/core/corelib.jac +0 -115
- {jaclang-0.3.1 → jaclang-0.3.3}/README.md +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cli.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cli_impl.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cmds.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/__jac_gen__/cmds_impl.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/cli.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/cli_impl.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/cmds.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/cli/cmds_impl.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/core/__jac_gen__/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/__jac_gen__/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/absyntree.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/codeloc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/constant.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/importer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/parser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/ir_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/def_impl_match_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/def_use_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/import_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/pyast_gen_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/pyast_load_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/pyout_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/schedules.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/sub_node_tab_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/sym_tab_build_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_decl_def_match_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_def_use_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_import_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_jac_format_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_pyast_build_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_pyast_gen_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_sub_node_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_sym_tab_build_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/tests/test_type_check_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/main/type_check_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/ast_printer_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/fuse_comments_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/jac_formatter_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/schedules.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/sym_tab_printer_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/test_ast_print_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/test_fuse_comments_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/tool/tests/test_symtab_print_pass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/transform.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/utils/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/passes/utils/mypy_ast_build.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/plugin/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/plugin/default.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/plugin/feature.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/plugin/spec.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/plugin/tests/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/plugin/tests/test_features.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/symtable.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/activity.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/fam.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/hello_world.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/kwesc.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/mod_doc_test.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/fixtures/stuff.jac +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/test_importer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/test_parser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/tests/test_workspace.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/transpiler.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/jac/workspace.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/helpers.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/lang_tools.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/log.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/test.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/tests/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/tests/test_lang_tools.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/utils/treeprinter.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/__pyinstaller/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/__pyinstaller/hook-lark.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/ast_utils.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/common.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/exceptions.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/grammar.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/grammars/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/indenter.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/lark.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/lexer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/load_grammar.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parse_tree_builder.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parser_frontends.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/cyk.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/earley.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/earley_common.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/earley_forest.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/grammar_analysis.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_analysis.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_interactive_parser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_parser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/lalr_parser_state.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/parsers/xearley.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/py.typed +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/reconstruct.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tools/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tools/nearley.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tools/serialize.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tools/standalone.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tree.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tree_matcher.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/tree_templates.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/utils.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/lark/visitors.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/__main__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/api.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/applytype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/argmap.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/binder.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/bogus_type.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/build.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/checker.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/checkexpr.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/checkmember.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/checkpattern.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/checkstrformat.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/config_parser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/constant_fold.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/constraints.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/copytype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/defaults.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy/__main__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy/client.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy_os.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy_server.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/dmypy_util.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/erasetype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/errorcodes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/errors.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/evalexpr.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/expandtype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/exprtotype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/fastparse.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/find_sources.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/fixup.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/freetree.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/fscache.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/fswatcher.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/gclogger.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/git.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/graph_utils.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/indirection.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/infer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/inspections.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/ipc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/join.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/literals.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/lookup.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/main.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/maptype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/meet.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/memprofile.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/message_registry.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/messages.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/metastore.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/mixedtraverser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/modulefinder.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/moduleinspect.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/mro.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/nodes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/operators.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/options.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/parse.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/partially_defined.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/patterns.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugin.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/attrs.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/common.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/ctypes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/dataclasses.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/default.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/enums.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/functools.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/proper_plugin.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/plugins/singledispatch.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/py.typed +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/pyinfo.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/reachability.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/refinfo.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/renaming.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/report.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/scope.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_classprop.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_enum.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_infer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_main.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_namedtuple.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_newtype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_pass1.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_shared.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_typeargs.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/semanal_typeddict.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/astdiff.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/astmerge.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/aststrip.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/deps.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/mergecheck.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/objgraph.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/subexpr.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/target.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/trigger.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/server/update.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/sharedparse.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/solve.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/split_namespace.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/state.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stats.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/strconv.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stubdoc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stubgen.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stubgenc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stubinfo.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stubtest.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/stubutil.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/subtypes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/suggestions.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/config.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/data.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/helpers.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/_pytest.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/meta/test_update_data.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/test_find_sources.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/test_ref_info.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testapi.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testargs.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testcheck.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testcmdline.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testconstraints.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testdaemon.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testdeps.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testdiff.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testerrorstream.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testfinegrained.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testformatter.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testfscache.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testgraph.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testinfer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testipc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testmerge.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testmodulefinder.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testmypyc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testparse.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testpep561.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testpythoneval.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testreports.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testsemanal.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testsolve.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/teststubgen.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/teststubinfo.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/teststubtest.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testsubtypes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testtransform.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testtypegen.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testtypes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/testutil.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/typefixture.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/update_data.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/test/visitors.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/traverser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/treetransform.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/tvar_scope.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/type_visitor.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/typeanal.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/typeops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/types.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/types_utils.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/typestate.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/typetraverser.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/typevars.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/typevartuples.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/util.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/version.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy/visitor.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypy_extensions.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/__main__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/attrdefined.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/blockfreq.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/dataflow.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/ircheck.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/analysis/selfleaks.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/build.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/cstring.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emit.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitclass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitfunc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitmodule.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/codegen/literals.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/common.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/crash.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/errors.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/class_ir.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/func_ir.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/module_ir.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/pprint.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/ir/rtypes.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/builder.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/callable_class.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/classdef.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/context.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/env_class.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/expression.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/function.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/generator.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/main.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/mapper.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/match.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/prepare.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/specialize.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/statement.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/targets.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/util.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/visitor.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/irbuild/vtable.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/namegen.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/options.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/dict_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/exc_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/float_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/generic_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/int_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/list_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/misc_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/registry.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/set_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/str_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/rt_subtype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/sametype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/subtype.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/config.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_analysis.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_cheader.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_commandline.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emit.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emitclass.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emitfunc.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_exceptions.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_external.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_irbuild.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_ircheck.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_literals.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_namegen.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_pprint.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_rarray.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_refcount.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_run.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_serialization.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_struct.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_tuplename.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/test_typeops.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/test/testutil.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/exceptions.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/refcount.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/mypyc/transform/uninit.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/__init__.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/_callers.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/_hooks.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/_manager.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/_result.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/_tracing.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/pluggy/py.typed +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang/vendor/typing_extensions.py +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang.egg-info/dependency_links.txt +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang.egg-info/entry_points.txt +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/jaclang.egg-info/top_level.txt +0 -0
- {jaclang-0.3.1 → jaclang-0.3.3}/setup.cfg +0 -0
|
@@ -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();
|