jaclang 0.2.5__tar.gz → 0.3.1__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.

Files changed (432) hide show
  1. {jaclang-0.2.5 → jaclang-0.3.1}/PKG-INFO +1 -1
  2. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/__init__.py +3 -3
  3. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/__init__.py +0 -1
  4. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/__jac_gen__/cli.py +4 -4
  5. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/__jac_gen__/cmds.py +1 -1
  6. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/__jac_gen__/cmds_impl.py +1 -1
  7. jaclang-0.3.1/jaclang/core/__init__.py +8 -0
  8. jaclang-0.3.1/jaclang/core/__jac_gen__/corelib.py +289 -0
  9. jaclang-0.3.1/jaclang/core/__jac_gen__/corelib_impl.py +220 -0
  10. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/core/corelib.jac +21 -34
  11. jaclang-0.3.1/jaclang/core/corelib_impl.jac +317 -0
  12. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/__init__.py +1 -0
  13. jaclang-0.3.1/jaclang/jac/__jac_gen__/jac_parser.py +4064 -0
  14. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/absyntree.py +28 -8
  15. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/constant.py +3 -7
  16. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/parser.py +13 -9
  17. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/__init__.py +2 -0
  18. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/def_use_pass.py +3 -2
  19. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/pyast_gen_pass.py +99 -34
  20. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/schedules.py +6 -0
  21. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/sym_tab_build_pass.py +3 -5
  22. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_jac_format_pass.py +22 -4
  23. jaclang-0.3.1/jaclang/jac/passes/main/tests/test_type_check_pass.py +42 -0
  24. jaclang-0.3.1/jaclang/jac/passes/main/type_check_pass.py +103 -0
  25. jaclang-0.3.1/jaclang/jac/passes/tool/fuse_comments_pass.py +86 -0
  26. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/jac_formatter_pass.py +419 -192
  27. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/transform.py +0 -39
  28. jaclang-0.3.1/jaclang/jac/passes/utils/__init__.py +1 -0
  29. jaclang-0.3.1/jaclang/jac/passes/utils/mypy_ast_build.py +302 -0
  30. jaclang-0.3.1/jaclang/jac/plugin/__init__.py +7 -0
  31. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/plugin/default.py +20 -4
  32. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/plugin/feature.py +15 -6
  33. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/plugin/spec.py +34 -6
  34. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/test_workspace.py +45 -5
  35. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/transpiler.py +4 -9
  36. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/helpers.py +0 -33
  37. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/lang_tools.py +3 -0
  38. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/test.py +3 -1
  39. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/checker.py +19 -12
  40. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/checkexpr.py +31 -10
  41. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/constraints.py +56 -38
  42. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/expandtype.py +1 -0
  43. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/meet.py +10 -1
  44. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/messages.py +16 -4
  45. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/moduleinspect.py +10 -4
  46. jaclang-0.3.1/jaclang/vendor/mypy/py.typed +1 -0
  47. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal.py +18 -17
  48. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_enum.py +7 -4
  49. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_namedtuple.py +11 -1
  50. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_typeddict.py +25 -11
  51. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stubdoc.py +18 -4
  52. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stubgen.py +80 -1
  53. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stubgenc.py +47 -5
  54. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stubtest.py +53 -3
  55. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stubutil.py +9 -9
  56. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testipc.py +16 -7
  57. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/teststubtest.py +20 -2
  58. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/types.py +1 -1
  59. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/prebuildvisitor.py +2 -1
  60. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_run.py +2 -4
  61. jaclang-0.3.1/jaclang/vendor/mypyc/transform/__init__.py +0 -0
  62. jaclang-0.3.1/jaclang/vendor/pluggy/py.typed +0 -0
  63. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang.egg-info/PKG-INFO +1 -1
  64. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang.egg-info/SOURCES.txt +12 -7
  65. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang.egg-info/entry_points.txt +3 -0
  66. {jaclang-0.2.5 → jaclang-0.3.1}/setup.py +3 -2
  67. jaclang-0.2.5/jaclang/core/__init__.py +0 -14
  68. jaclang-0.2.5/jaclang/core/arch_impl.jac +0 -131
  69. jaclang-0.2.5/jaclang/core/element_impl.jac +0 -109
  70. jaclang-0.2.5/jaclang/core/exec_ctx_impl.jac +0 -14
  71. jaclang-0.2.5/jaclang/core/memory_impl.jac +0 -57
  72. jaclang-0.2.5/jaclang/jac/__jac_gen__/jac_parser.py +0 -4064
  73. jaclang-0.2.5/jaclang/jac/passes/tool/fuse_comments_pass.py +0 -68
  74. jaclang-0.2.5/jaclang/jac/plugin/__init__.py +0 -4
  75. jaclang-0.2.5/jaclang/jac/tests/fixtures/__jac_gen__/hello_world.py +0 -5
  76. {jaclang-0.2.5 → jaclang-0.3.1}/README.md +0 -0
  77. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/__jac_gen__/__init__.py +0 -0
  78. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/__jac_gen__/cli_impl.py +0 -0
  79. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/cli.jac +0 -0
  80. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/cli_impl.jac +0 -0
  81. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/cmds.jac +0 -0
  82. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/cli/cmds_impl.jac +0 -0
  83. {jaclang-0.2.5/jaclang/jac → jaclang-0.3.1/jaclang/core}/__jac_gen__/__init__.py +0 -0
  84. {jaclang-0.2.5/jaclang/jac/tests/fixtures → jaclang-0.3.1/jaclang/jac}/__jac_gen__/__init__.py +0 -0
  85. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/codeloc.py +0 -0
  86. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/importer.py +0 -0
  87. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/__init__.py +0 -0
  88. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/ir_pass.py +0 -0
  89. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/def_impl_match_pass.py +0 -0
  90. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/import_pass.py +0 -0
  91. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/pyast_load_pass.py +0 -0
  92. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/pyout_pass.py +0 -0
  93. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/sub_node_tab_pass.py +0 -0
  94. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/__init__.py +0 -0
  95. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_decl_def_match_pass.py +0 -0
  96. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_def_use_pass.py +0 -0
  97. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_import_pass.py +0 -0
  98. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_pyast_build_pass.py +0 -0
  99. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_pyast_gen_pass.py +0 -0
  100. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_sub_node_pass.py +0 -0
  101. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/main/tests/test_sym_tab_build_pass.py +0 -0
  102. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/__init__.py +0 -0
  103. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/ast_printer_pass.py +0 -0
  104. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/schedules.py +0 -0
  105. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/sym_tab_printer_pass.py +0 -0
  106. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/tests/__init__.py +0 -0
  107. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/tests/test_ast_print_pass.py +0 -0
  108. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/tests/test_fuse_comments_pass.py +0 -0
  109. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/passes/tool/tests/test_symtab_print_pass.py +0 -0
  110. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/plugin/tests/__init__.py +0 -0
  111. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/plugin/tests/test_features.py +0 -0
  112. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/symtable.py +0 -0
  113. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/__init__.py +0 -0
  114. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/__init__.py +0 -0
  115. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/activity.py +0 -0
  116. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/fam.jac +0 -0
  117. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/hello_world.jac +0 -0
  118. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/kwesc.jac +0 -0
  119. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/mod_doc_test.jac +0 -0
  120. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/fixtures/stuff.jac +0 -0
  121. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/test_importer.py +0 -0
  122. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/tests/test_parser.py +0 -0
  123. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/jac/workspace.py +0 -0
  124. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/__init__.py +0 -0
  125. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/log.py +0 -0
  126. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/tests/__init__.py +0 -0
  127. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/tests/test_lang_tools.py +0 -0
  128. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/utils/treeprinter.py +0 -0
  129. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/__init__.py +0 -0
  130. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/__init__.py +0 -0
  131. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/__pyinstaller/__init__.py +0 -0
  132. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/__pyinstaller/hook-lark.py +0 -0
  133. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/ast_utils.py +0 -0
  134. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/common.py +0 -0
  135. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/exceptions.py +0 -0
  136. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/grammar.py +0 -0
  137. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/grammars/__init__.py +0 -0
  138. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/indenter.py +0 -0
  139. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/lark.py +0 -0
  140. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/lexer.py +0 -0
  141. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/load_grammar.py +0 -0
  142. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parse_tree_builder.py +0 -0
  143. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parser_frontends.py +0 -0
  144. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/__init__.py +0 -0
  145. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/cyk.py +0 -0
  146. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/earley.py +0 -0
  147. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/earley_common.py +0 -0
  148. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/earley_forest.py +0 -0
  149. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/grammar_analysis.py +0 -0
  150. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/lalr_analysis.py +0 -0
  151. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/lalr_interactive_parser.py +0 -0
  152. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/lalr_parser.py +0 -0
  153. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/lalr_parser_state.py +0 -0
  154. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/parsers/xearley.py +0 -0
  155. /jaclang-0.2.5/jaclang/vendor/mypy/dmypy/__init__.py → /jaclang-0.3.1/jaclang/vendor/lark/py.typed +0 -0
  156. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/reconstruct.py +0 -0
  157. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tools/__init__.py +0 -0
  158. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tools/nearley.py +0 -0
  159. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tools/serialize.py +0 -0
  160. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tools/standalone.py +0 -0
  161. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tree.py +0 -0
  162. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tree_matcher.py +0 -0
  163. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/tree_templates.py +0 -0
  164. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/utils.py +0 -0
  165. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/lark/visitors.py +0 -0
  166. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/__init__.py +0 -0
  167. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/__main__.py +0 -0
  168. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/api.py +0 -0
  169. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/applytype.py +0 -0
  170. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/argmap.py +0 -0
  171. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/binder.py +0 -0
  172. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/bogus_type.py +0 -0
  173. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/build.py +0 -0
  174. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/checkmember.py +0 -0
  175. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/checkpattern.py +0 -0
  176. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/checkstrformat.py +0 -0
  177. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/config_parser.py +0 -0
  178. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/constant_fold.py +0 -0
  179. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/copytype.py +0 -0
  180. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/defaults.py +0 -0
  181. {jaclang-0.2.5/jaclang/vendor/mypy/plugins → jaclang-0.3.1/jaclang/vendor/mypy/dmypy}/__init__.py +0 -0
  182. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/dmypy/__main__.py +0 -0
  183. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/dmypy/client.py +0 -0
  184. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/dmypy_os.py +0 -0
  185. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/dmypy_server.py +0 -0
  186. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/dmypy_util.py +0 -0
  187. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/erasetype.py +0 -0
  188. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/errorcodes.py +0 -0
  189. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/errors.py +0 -0
  190. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/evalexpr.py +0 -0
  191. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/exprtotype.py +0 -0
  192. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/fastparse.py +0 -0
  193. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/find_sources.py +0 -0
  194. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/fixup.py +0 -0
  195. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/freetree.py +0 -0
  196. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/fscache.py +0 -0
  197. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/fswatcher.py +0 -0
  198. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/gclogger.py +0 -0
  199. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/git.py +0 -0
  200. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/graph_utils.py +0 -0
  201. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/indirection.py +0 -0
  202. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/infer.py +0 -0
  203. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/inspections.py +0 -0
  204. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/ipc.py +0 -0
  205. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/join.py +0 -0
  206. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/literals.py +0 -0
  207. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/lookup.py +0 -0
  208. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/main.py +0 -0
  209. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/maptype.py +0 -0
  210. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/memprofile.py +0 -0
  211. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/message_registry.py +0 -0
  212. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/metastore.py +0 -0
  213. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/mixedtraverser.py +0 -0
  214. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/modulefinder.py +0 -0
  215. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/mro.py +0 -0
  216. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/nodes.py +0 -0
  217. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/operators.py +0 -0
  218. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/options.py +0 -0
  219. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/parse.py +0 -0
  220. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/partially_defined.py +0 -0
  221. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/patterns.py +0 -0
  222. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugin.py +0 -0
  223. {jaclang-0.2.5/jaclang/vendor/mypy/server → jaclang-0.3.1/jaclang/vendor/mypy/plugins}/__init__.py +0 -0
  224. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/attrs.py +0 -0
  225. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/common.py +0 -0
  226. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/ctypes.py +0 -0
  227. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/dataclasses.py +0 -0
  228. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/default.py +0 -0
  229. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/enums.py +0 -0
  230. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/functools.py +0 -0
  231. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/proper_plugin.py +0 -0
  232. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/plugins/singledispatch.py +0 -0
  233. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/pyinfo.py +0 -0
  234. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/reachability.py +0 -0
  235. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/refinfo.py +0 -0
  236. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/renaming.py +0 -0
  237. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/report.py +0 -0
  238. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/scope.py +0 -0
  239. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_classprop.py +0 -0
  240. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_infer.py +0 -0
  241. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_main.py +0 -0
  242. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_newtype.py +0 -0
  243. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_pass1.py +0 -0
  244. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_shared.py +0 -0
  245. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/semanal_typeargs.py +0 -0
  246. {jaclang-0.2.5/jaclang/vendor/mypy/test → jaclang-0.3.1/jaclang/vendor/mypy/server}/__init__.py +0 -0
  247. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/astdiff.py +0 -0
  248. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/astmerge.py +0 -0
  249. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/aststrip.py +0 -0
  250. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/deps.py +0 -0
  251. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/mergecheck.py +0 -0
  252. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/objgraph.py +0 -0
  253. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/subexpr.py +0 -0
  254. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/target.py +0 -0
  255. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/trigger.py +0 -0
  256. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/server/update.py +0 -0
  257. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/sharedparse.py +0 -0
  258. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/solve.py +0 -0
  259. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/split_namespace.py +0 -0
  260. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/state.py +0 -0
  261. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stats.py +0 -0
  262. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/strconv.py +0 -0
  263. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/stubinfo.py +0 -0
  264. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/subtypes.py +0 -0
  265. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/suggestions.py +0 -0
  266. {jaclang-0.2.5/jaclang/vendor/mypy/test/meta → jaclang-0.3.1/jaclang/vendor/mypy/test}/__init__.py +0 -0
  267. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/config.py +0 -0
  268. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/data.py +0 -0
  269. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/helpers.py +0 -0
  270. {jaclang-0.2.5/jaclang/vendor/mypyc → jaclang-0.3.1/jaclang/vendor/mypy/test/meta}/__init__.py +0 -0
  271. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/meta/_pytest.py +0 -0
  272. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/meta/test_diff_helper.py +0 -0
  273. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/meta/test_parse_data.py +0 -0
  274. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/meta/test_update_data.py +0 -0
  275. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/test_find_sources.py +0 -0
  276. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/test_ref_info.py +0 -0
  277. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testapi.py +0 -0
  278. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testargs.py +0 -0
  279. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testcheck.py +0 -0
  280. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testcmdline.py +0 -0
  281. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testconstraints.py +0 -0
  282. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testdaemon.py +0 -0
  283. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testdeps.py +0 -0
  284. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testdiff.py +0 -0
  285. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testerrorstream.py +0 -0
  286. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testfinegrained.py +0 -0
  287. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testfinegrainedcache.py +0 -0
  288. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testformatter.py +0 -0
  289. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testfscache.py +0 -0
  290. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testgraph.py +0 -0
  291. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testinfer.py +0 -0
  292. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testmerge.py +0 -0
  293. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testmodulefinder.py +0 -0
  294. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testmypyc.py +0 -0
  295. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testparse.py +0 -0
  296. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testpep561.py +0 -0
  297. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testpythoneval.py +0 -0
  298. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testreports.py +0 -0
  299. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testsemanal.py +0 -0
  300. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testsolve.py +0 -0
  301. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/teststubgen.py +0 -0
  302. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/teststubinfo.py +0 -0
  303. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testsubtypes.py +0 -0
  304. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testtransform.py +0 -0
  305. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testtypegen.py +0 -0
  306. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testtypes.py +0 -0
  307. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/testutil.py +0 -0
  308. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/typefixture.py +0 -0
  309. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/update_data.py +0 -0
  310. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/test/visitors.py +0 -0
  311. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/traverser.py +0 -0
  312. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/treetransform.py +0 -0
  313. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/tvar_scope.py +0 -0
  314. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/type_visitor.py +0 -0
  315. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/typeanal.py +0 -0
  316. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/typeops.py +0 -0
  317. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/types_utils.py +0 -0
  318. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/typestate.py +0 -0
  319. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/typetraverser.py +0 -0
  320. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/typevars.py +0 -0
  321. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/typevartuples.py +0 -0
  322. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/util.py +0 -0
  323. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/version.py +0 -0
  324. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy/visitor.py +0 -0
  325. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypy_extensions.py +0 -0
  326. {jaclang-0.2.5/jaclang/vendor/mypyc/analysis → jaclang-0.3.1/jaclang/vendor/mypyc}/__init__.py +0 -0
  327. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/__main__.py +0 -0
  328. {jaclang-0.2.5/jaclang/vendor/mypyc/codegen → jaclang-0.3.1/jaclang/vendor/mypyc/analysis}/__init__.py +0 -0
  329. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/analysis/attrdefined.py +0 -0
  330. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/analysis/blockfreq.py +0 -0
  331. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/analysis/dataflow.py +0 -0
  332. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/analysis/ircheck.py +0 -0
  333. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/analysis/selfleaks.py +0 -0
  334. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/build.py +0 -0
  335. {jaclang-0.2.5/jaclang/vendor/mypyc/ir → jaclang-0.3.1/jaclang/vendor/mypyc/codegen}/__init__.py +0 -0
  336. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/cstring.py +0 -0
  337. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/emit.py +0 -0
  338. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/emitclass.py +0 -0
  339. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/emitfunc.py +0 -0
  340. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/emitmodule.py +0 -0
  341. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/emitwrapper.py +0 -0
  342. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/codegen/literals.py +0 -0
  343. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/common.py +0 -0
  344. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/crash.py +0 -0
  345. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/errors.py +0 -0
  346. {jaclang-0.2.5/jaclang/vendor/mypyc/irbuild → jaclang-0.3.1/jaclang/vendor/mypyc/ir}/__init__.py +0 -0
  347. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/ir/class_ir.py +0 -0
  348. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/ir/func_ir.py +0 -0
  349. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/ir/module_ir.py +0 -0
  350. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/ir/ops.py +0 -0
  351. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/ir/pprint.py +0 -0
  352. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/ir/rtypes.py +0 -0
  353. {jaclang-0.2.5/jaclang/vendor/mypyc/primitives → jaclang-0.3.1/jaclang/vendor/mypyc/irbuild}/__init__.py +0 -0
  354. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/ast_helpers.py +0 -0
  355. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/builder.py +0 -0
  356. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/callable_class.py +0 -0
  357. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/classdef.py +0 -0
  358. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/constant_fold.py +0 -0
  359. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/context.py +0 -0
  360. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/env_class.py +0 -0
  361. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/expression.py +0 -0
  362. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/for_helpers.py +0 -0
  363. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/format_str_tokenizer.py +0 -0
  364. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/function.py +0 -0
  365. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/generator.py +0 -0
  366. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/ll_builder.py +0 -0
  367. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/main.py +0 -0
  368. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/mapper.py +0 -0
  369. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/match.py +0 -0
  370. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/nonlocalcontrol.py +0 -0
  371. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/prepare.py +0 -0
  372. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/specialize.py +0 -0
  373. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/statement.py +0 -0
  374. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/targets.py +0 -0
  375. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/util.py +0 -0
  376. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/visitor.py +0 -0
  377. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/irbuild/vtable.py +0 -0
  378. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/namegen.py +0 -0
  379. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/options.py +0 -0
  380. {jaclang-0.2.5/jaclang/vendor/mypyc/test → jaclang-0.3.1/jaclang/vendor/mypyc/primitives}/__init__.py +0 -0
  381. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/bytes_ops.py +0 -0
  382. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/dict_ops.py +0 -0
  383. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/exc_ops.py +0 -0
  384. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/float_ops.py +0 -0
  385. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/generic_ops.py +0 -0
  386. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/int_ops.py +0 -0
  387. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/list_ops.py +0 -0
  388. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/misc_ops.py +0 -0
  389. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/registry.py +0 -0
  390. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/set_ops.py +0 -0
  391. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/str_ops.py +0 -0
  392. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/primitives/tuple_ops.py +0 -0
  393. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/rt_subtype.py +0 -0
  394. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/sametype.py +0 -0
  395. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/subtype.py +0 -0
  396. {jaclang-0.2.5/jaclang/vendor/mypyc/transform → jaclang-0.3.1/jaclang/vendor/mypyc/test}/__init__.py +0 -0
  397. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/config.py +0 -0
  398. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_alwaysdefined.py +0 -0
  399. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_analysis.py +0 -0
  400. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_cheader.py +0 -0
  401. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_commandline.py +0 -0
  402. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_emit.py +0 -0
  403. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_emitclass.py +0 -0
  404. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_emitfunc.py +0 -0
  405. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_emitwrapper.py +0 -0
  406. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_exceptions.py +0 -0
  407. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_external.py +0 -0
  408. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_irbuild.py +0 -0
  409. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_ircheck.py +0 -0
  410. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_literals.py +0 -0
  411. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_namegen.py +0 -0
  412. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_pprint.py +0 -0
  413. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_rarray.py +0 -0
  414. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_refcount.py +0 -0
  415. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_serialization.py +0 -0
  416. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_struct.py +0 -0
  417. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_tuplename.py +0 -0
  418. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/test_typeops.py +0 -0
  419. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/test/testutil.py +0 -0
  420. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/transform/exceptions.py +0 -0
  421. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/transform/refcount.py +0 -0
  422. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/mypyc/transform/uninit.py +0 -0
  423. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/pluggy/__init__.py +0 -0
  424. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/pluggy/_callers.py +0 -0
  425. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/pluggy/_hooks.py +0 -0
  426. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/pluggy/_manager.py +0 -0
  427. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/pluggy/_result.py +0 -0
  428. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/pluggy/_tracing.py +0 -0
  429. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang/vendor/typing_extensions.py +0 -0
  430. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang.egg-info/dependency_links.txt +0 -0
  431. {jaclang-0.2.5 → jaclang-0.3.1}/jaclang.egg-info/top_level.txt +0 -0
  432. {jaclang-0.2.5 → jaclang-0.3.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaclang
3
- Version: 0.2.5
3
+ Version: 0.3.1
4
4
  Home-page: https://github.com/Jaseci-Labs/jaclang
5
5
  Author: Jason Mars
6
6
  Author-email: jason@jaseci.org
@@ -4,17 +4,17 @@ import sys
4
4
 
5
5
  sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "vendor"))
6
6
 
7
-
8
7
  from jaclang.jac.importer import jac_import # noqa: E402
9
- from jaclang.utils.helpers import handle_jac_error # noqa: E402
8
+ from jaclang.jac.plugin.feature import JacFeature # noqa: E402
10
9
  from jaclang.vendor import lark # noqa: E402
11
10
  from jaclang.vendor import mypy # noqa: E402
12
11
  from jaclang.vendor import pluggy # noqa: E402
13
12
 
14
13
  __all__ = [
15
14
  "jac_import",
16
- "handle_jac_error",
17
15
  "lark",
18
16
  "mypy",
19
17
  "pluggy",
20
18
  ]
19
+
20
+ JacFeature.pm.load_setuptools_entrypoints("jac")
@@ -1,7 +1,6 @@
1
1
  """CLI for jaclang."""
2
2
  from jaclang import jac_import as jac_import
3
3
 
4
-
5
4
  cli = jac_import("cli")
6
5
  cmds = jac_import("cmds")
7
6
 
@@ -5,7 +5,7 @@ represents the first such complete Jac program.
5
5
  """
6
6
  from __future__ import annotations
7
7
  from jaclang import jac_import as __jac_import__
8
- from jaclang.jac.plugin.feature import JacFeature as __JacFeature
8
+ from jaclang.jac.plugin.feature import JacFeature as _JacFeature
9
9
  import inspect
10
10
  import argparse
11
11
  import cmd
@@ -13,7 +13,7 @@ __jac_import__(target='cli_impl', base_path=__file__)
13
13
  from cli_impl import *
14
14
  import cli_impl
15
15
 
16
- @__JacFeature.make_architype('obj')
16
+ @_JacFeature.make_architype('obj')
17
17
  class Command:
18
18
  func: callable
19
19
  sig: inspect.Signature
@@ -25,7 +25,7 @@ class Command:
25
25
  def call(self, *args: list, **kwargs: dict) -> None:
26
26
  return self.func(*args, **kwargs)
27
27
 
28
- @__JacFeature.make_architype('obj')
28
+ @_JacFeature.make_architype('obj')
29
29
  class CommandRegistry:
30
30
  registry: dict[str, Command]
31
31
  sub_parsers: argparse._SubParsersActionp
@@ -65,7 +65,7 @@ class CommandRegistry:
65
65
  def items(self) -> dict[str, Command]:
66
66
  return self.registry.items()
67
67
 
68
- @__JacFeature.make_architype('obj')
68
+ @_JacFeature.make_architype('obj')
69
69
  class CommandShell(cmd.Cmd):
70
70
  (intro): str = 'Welcome to the Jac CLI!'
71
71
  (prompt): str = 'jac> '
@@ -5,7 +5,7 @@ represents the first such production Jac program.
5
5
  """
6
6
  from __future__ import annotations
7
7
  from jaclang import jac_import as __jac_import__
8
- from jaclang.jac.plugin.feature import JacFeature as __JacFeature
8
+ from jaclang.jac.plugin.feature import JacFeature as _JacFeature
9
9
  __jac_import__(target='cli', base_path=__file__)
10
10
  from cli import cmd_registry as cmd_reg
11
11
  __jac_import__(target='cmds_impl', base_path=__file__)
@@ -1,7 +1,7 @@
1
1
  """Implementations for the jac command line interface."""
2
2
  from __future__ import annotations
3
3
  from jaclang import jac_import as __jac_import__
4
- from jaclang.jac.plugin.feature import JacFeature as __JacFeature
4
+ from jaclang.jac.plugin.feature import JacFeature as _JacFeature
5
5
  import os
6
6
  import shutil
7
7
  import unittest
@@ -0,0 +1,8 @@
1
+ """Core primitives for Jaseci."""
2
+ from jaclang import jac_import
3
+
4
+ prim = jac_import("corelib")
5
+ if not prim:
6
+ raise ImportError("Could not import primitives, internal compile error")
7
+
8
+ JacPlugin = prim.JacPlugin
@@ -0,0 +1,289 @@
1
+ """Jac's Key Elemental Abstractions"""
2
+ from __future__ import annotations
3
+ from enum import Enum as __jac_Enum__, auto as __jac_auto__
4
+ from jaclang import jac_import as __jac_import__
5
+ from jaclang.jac.plugin.feature import JacFeature as _JacFeature
6
+ from datetime import datetime
7
+ from uuid import UUID, uuid4
8
+ from jaclang.jac.constant import EdgeDir
9
+ 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
+
14
+ class AccessMode(__jac_Enum__):
15
+ READ_ONLY = __jac_auto__()
16
+ READ_WRITE = __jac_auto__()
17
+ PRIVATE = __jac_auto__()
18
+
19
+ @_JacFeature.make_architype('obj')
20
+ class Memory:
21
+ (index): dict[UUID, Element] = {}
22
+ (save_queue): list[Element] = []
23
+
24
+ def get_obj(self, caller_id: UUID, item_id: UUID, override: bool=False) -> Element:
25
+ ret = self.index.get(item_id)
26
+ if override or ret.__is_readable(ret is not None and caller_id):
27
+ return ret
28
+
29
+ def has_obj(self, item_id: UUID) -> bool:
30
+ return item_id in self.index
31
+
32
+ def save_obj(self, caller_id: UUID, item: Element) -> None:
33
+ if item.is_writable(caller_id):
34
+ self.index[item.id] = item
35
+ if item._persist:
36
+ self.save_obj_list.add(item)
37
+ self.mem[item.id] = item
38
+ if item._persist:
39
+ self.save_obj_list.add(item)
40
+
41
+ def del_obj(self, caller_id: UUID, item: Element) -> None:
42
+ if item.is_writable(caller_id):
43
+ self.index.pop(item.id)
44
+ if item._persist:
45
+ self.save_obj_list.remove(item)
46
+
47
+ def get_object_distribution(self) -> dict:
48
+ dist = {}
49
+ for i in self.index.keys():
50
+ t = type(self.index[i])
51
+ if t in dist:
52
+ dist[t] += 1
53
+ else:
54
+ dist[t] = 1
55
+ return dist
56
+
57
+ def get_mem_size(self) -> float:
58
+ return sys.getsizeof(self.index) / 1024.0
59
+
60
+ @_JacFeature.make_architype('obj')
61
+ class ExecutionContext:
62
+ (master): Master = uuid4()
63
+ (memory): Memory = Memory()
64
+
65
+ def reset(self) -> None:
66
+ self.__init__()
67
+
68
+ def get_root(self) -> Node:
69
+ if type(self.master) == UUID:
70
+ self.master = Master()
71
+ return self.master.root_node
72
+ 'Global Execution Context, should be monkey patched by the user.'
73
+ exec_ctx = ExecutionContext()
74
+
75
+ @_JacFeature.make_architype('obj')
76
+ class ElementInterface:
77
+ (jid): UUID = uuid4()
78
+ (timestamp): datetime = datetime.now()
79
+ (persist): bool = False
80
+ (access_mode): AccessMode = AccessMode.PRIVATE
81
+ (rw_access): set = set()
82
+ (ro_access): set = set()
83
+ (owner_id): UUID = exec_ctx.master
84
+ (mem): Memory = exec_ctx.memory
85
+
86
+ def make_public_ro(self) -> None:
87
+ self.__jinfo.access_mode = AccessMode.READ_ONLY
88
+
89
+ def make_public_rw(self) -> None:
90
+ self.__jinfo.access_mode = AccessMode.READ_WRITE
91
+
92
+ def make_private(self) -> None:
93
+ self.__jinfo.access_mode = AccessMode.PRIVATE
94
+
95
+ def is_public_ro(self) -> bool:
96
+ return self.__jinfo.access_mode == AccessMode.READ_ONLY
97
+
98
+ def is_public_rw(self) -> bool:
99
+ return self.__jinfo.access_mode == AccessMode.READ_WRITE
100
+
101
+ def is_private(self) -> bool:
102
+ return self.__jinfo.access_mode == AccessMode.PRIVATE
103
+
104
+ def is_readable(self, caller_id: UUID) -> bool:
105
+ 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))
106
+
107
+ def is_writable(self, caller_id: UUID) -> bool:
108
+ return caller_id == self.owner_id or (self.is_public_write() or caller_id in self.rw_access)
109
+
110
+ def give_access(self, caller_id: UUID, read_write: bool=False) -> None:
111
+ if read_write:
112
+ self.rw_access.add(caller_id)
113
+ else:
114
+ add.ro_access.self(caller_id)
115
+
116
+ def revoke_access(self, caller_id: UUID) -> None:
117
+ self.ro_access.discard(caller_id)
118
+ self.rw_access.discard(caller_id)
119
+
120
+ @_JacFeature.make_architype('obj')
121
+ class ObjectInterface(ElementInterface):
122
+ pass
123
+
124
+ @_JacFeature.make_architype('obj')
125
+ class DataSpatialInterface(ObjectInterface):
126
+ (ds_entry_funcs): list[dict] = []
127
+ (ds_exit_funcs): list[dict] = []
128
+
129
+ @staticmethod
130
+ def on_entry(cls: type, triggers: list[type]) -> None:
131
+
132
+ def decorator(func: callable) -> callable:
133
+ cls.ds_entry_funcs.append({'types': triggers, 'func': func})
134
+
135
+ def wrapper(*args: list, **kwargs: dict) -> callable:
136
+ return func(*args, **kwargs)
137
+ return wrapper
138
+ return decorator
139
+
140
+ @staticmethod
141
+ def on_exit(cls: type, triggers: list[type]) -> None:
142
+
143
+ def decorator(func: callable) -> callable:
144
+ cls.ds_exit_funcs.append({'types': triggers, 'func': func})
145
+
146
+ def wrapper(*args: list, **kwargs: dict) -> callable:
147
+ return func(*args, **kwargs)
148
+ return wrapper
149
+ return decorator
150
+
151
+ @_JacFeature.make_architype('obj')
152
+ class NodeInterface(DataSpatialInterface):
153
+ (edges): dict[EdgeDir, list[Edge]] = {EdgeDir.IN: [], EdgeDir.OUT: []}
154
+
155
+ def connect_node(self, nd: Node, edg: Edge) -> Node:
156
+ edg.attach(self.py_obj, nd)
157
+ return self
158
+
159
+ def edges_to_nodes(self, dir: EdgeDir) -> list[Node]:
160
+ ret_nodes = []
161
+ if dir in [EdgeDir.OUT, EdgeDir.ANY]:
162
+ for i in self.edges[EdgeDir.OUT]:
163
+ ret_nodes.append(i.target)
164
+ elif dir in [EdgeDir.IN, EdgeDir.ANY]:
165
+ for i in self.edges[EdgeDir.IN]:
166
+ ret_nodes.append(i.source)
167
+ return ret_nodes
168
+
169
+ def __call__(self, walk: Walker) -> None:
170
+ if not isinstance(walk, Walker):
171
+ raise TypeError('Argument must be a Walker instance')
172
+ walk(self)
173
+
174
+ @_JacFeature.make_architype('obj')
175
+ class EdgeInterface(DataSpatialInterface):
176
+ (source): Node = None
177
+ (target): Node = None
178
+ (dir): EdgeDir = None
179
+
180
+ def apply_dir(self, dir: EdgeDir) -> Edge:
181
+ self.dir = dir
182
+ return self
183
+
184
+ def attach(self, src: Node, trg: Node) -> Edge:
185
+ if self.dir == EdgeDir.IN:
186
+ self.source = trg
187
+ self.target = src
188
+ src._jac_.edges[EdgeDir.IN].append(self)
189
+ trg._jac_.edges[EdgeDir.OUT].append(self)
190
+ else:
191
+ self.source = src
192
+ self.target = trg
193
+ src._jac_.edges[EdgeDir.OUT].append(self)
194
+ trg._jac_.edges[EdgeDir.IN].append(self)
195
+ return self
196
+
197
+ def __call__(self, walk: Walker) -> None:
198
+ if not isinstance(walk, Walker):
199
+ raise TypeError('Argument must be a Walker instance')
200
+ walk(self._jac_.target)
201
+
202
+ @_JacFeature.make_architype('obj')
203
+ class WalkerInterface(DataSpatialInterface):
204
+ (path): list[Node] = []
205
+ (next): list[Node] = []
206
+ (ignores): list[Node] = []
207
+ (disengaged): bool = False
208
+
209
+ def visit_node(self, nds: list[Node] | (list[Edge] | (Node | Edge))) -> None:
210
+ if isinstance(nds, list):
211
+ for i in nds:
212
+ if i not in self.ignores:
213
+ self.next.append(i)
214
+ elif nds not in self.ignores:
215
+ self.next.append(nds)
216
+ return len(nds) if isinstance(nds, list) else 1
217
+
218
+ def ignore_node(self, nds: list[Node] | (list[Edge] | (Node | Edge))) -> None:
219
+ if isinstance(nds, list):
220
+ for i in nds:
221
+ self.ignores.append(i)
222
+ else:
223
+ self.ignores.append(nds)
224
+
225
+ def disengage_now(self) -> None:
226
+ self.next = []
227
+ self.disengaged = True
228
+
229
+ def __call__(self, nd: Node) -> None:
230
+ self._jac_.path = []
231
+ self._jac_.next = [nd]
232
+ walker_type = self.__class__.__name__
233
+ while len(self._jac_.next):
234
+ nd = self._jac_.next.pop(0)
235
+ node_type = nd.__class__.__name__
236
+ for i in nd._jac_ds_.ds_entry_funcs:
237
+ if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
238
+ i['func'](nd, self)
239
+ if self._jac_.disengaged:
240
+ return
241
+ for i in self._jac_ds_.ds_entry_funcs:
242
+ if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
243
+ i['func'](self, nd)
244
+ if self._jac_.disengaged:
245
+ return
246
+ for i in self._jac_ds_.ds_exit_funcs:
247
+ if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
248
+ i['func'](self, nd)
249
+ if self._jac_.disengaged:
250
+ return
251
+ for i in nd._jac_ds_.ds_exit_funcs:
252
+ if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
253
+ i['func'](nd, self)
254
+ if self._jac_.disengaged:
255
+ return
256
+ self._jac_.path.append(nd)
257
+ self._jac_.ignores = []
258
+
259
+ @_JacFeature.make_architype('obj')
260
+ class Root(AbsRootHook):
261
+ _jac_: NodeInterface
262
+ RootType: type
263
+
264
+ @_JacFeature.make_architype('obj')
265
+ class Master:
266
+ (_jac_): ElementInterface = ElementInterface()
267
+ (root_node): Root = Root(NodeInterface(), Root)
268
+
269
+ @_JacFeature.make_architype('obj')
270
+ class JacPlugin:
271
+
272
+ @staticmethod
273
+ def bind_architype(arch: AT, arch_type: str) -> bool:
274
+ match arch_type:
275
+ case 'obj':
276
+ arch._jac_ = ObjectInterface()
277
+ case 'node':
278
+ arch._jac_ = NodeInterface()
279
+ case 'edge':
280
+ arch._jac_ = EdgeInterface()
281
+ case 'walker':
282
+ arch._jac_ = WalkerInterface()
283
+ case _:
284
+ raise TypeError('Invalid archetype type')
285
+ return True
286
+
287
+ @staticmethod
288
+ def get_root() -> Architype:
289
+ return exec_ctx.get_root()
@@ -0,0 +1,220 @@
1
+ """Jac's Key Elemental Abstractions"""
2
+ from __future__ import annotations
3
+ from enum import Enum as __jac_Enum__, auto as __jac_auto__
4
+ import sys
5
+ from uuid import UUID, uuid4
6
+ from jaclang.jac.constant import EdgeDir
7
+ from jaclang.jac.plugin import hookimpl
8
+
9
+ def o_Memory_c_get_obj(self, caller_id: UUID, item_id: UUID, override: bool=False) -> Element:
10
+ ret = self.index.get(item_id)
11
+ if override or ret.__is_readable(ret is not None and caller_id):
12
+ return ret
13
+
14
+ def o_Memory_c_has_obj(self, item_id: UUID) -> bool:
15
+ return item_id in self.index
16
+
17
+ def o_Memory_c_save_obj(self, caller_id: UUID, item: Element) -> None:
18
+ if item.is_writable(caller_id):
19
+ self.index[item.id] = item
20
+ if item._persist:
21
+ self.save_obj_list.add(item)
22
+ self.mem[item.id] = item
23
+ if item._persist:
24
+ self.save_obj_list.add(item)
25
+
26
+ def o_Memory_c_del_obj(self, caller_id: UUID, item: Element) -> None:
27
+ if item.is_writable(caller_id):
28
+ self.index.pop(item.id)
29
+ if item._persist:
30
+ self.save_obj_list.remove(item)
31
+
32
+ def o_Memory_c_get_object_distribution(self) -> dict:
33
+ dist = {}
34
+ for i in self.index.keys():
35
+ t = type(self.index[i])
36
+ if t in dist:
37
+ dist[t] += 1
38
+ else:
39
+ dist[t] = 1
40
+ return dist
41
+
42
+ def o_Memory_c_get_mem_size(self) -> float:
43
+ return sys.getsizeof(self.index) / 1024.0
44
+
45
+ def o_ExecutionContext_c_get_root(self) -> None:
46
+ if type(self.master) == UUID:
47
+ self.master = Master()
48
+ return self.master.root_node
49
+
50
+ def o_ExecutionContext_c_reset(self) -> None:
51
+ self.__init__()
52
+
53
+ class e_AccessMode(__jac_Enum__):
54
+ READ_ONLY = __jac_auto__()
55
+ READ_WRITE = __jac_auto__()
56
+ PRIVATE = __jac_auto__()
57
+
58
+ def o_ElementInterface_c_make_public_ro(self) -> None:
59
+ self.__jinfo.access_mode = AccessMode.READ_ONLY
60
+
61
+ def o_ElementInterface_c_make_public_rw(self) -> None:
62
+ self.__jinfo.access_mode = AccessMode.READ_WRITE
63
+
64
+ def o_ElementInterface_c_make_private(self) -> None:
65
+ self.__jinfo.access_mode = AccessMode.PRIVATE
66
+
67
+ def o_ElementInterface_c_is_public_ro(self) -> bool:
68
+ return self.__jinfo.access_mode == AccessMode.READ_ONLY
69
+
70
+ def o_ElementInterface_c_is_public_rw(self) -> bool:
71
+ return self.__jinfo.access_mode == AccessMode.READ_WRITE
72
+
73
+ def o_ElementInterface_c_is_private(self) -> bool:
74
+ return self.__jinfo.access_mode == AccessMode.PRIVATE
75
+
76
+ def o_ElementInterface_c_is_readable(self, caller_id: UUID) -> bool:
77
+ 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))
78
+
79
+ def o_ElementInterface_c_is_writable(self, caller_id: UUID) -> bool:
80
+ return caller_id == self.owner_id or (self.is_public_write() or caller_id in self.rw_access)
81
+
82
+ def o_ElementInterface_c_give_access(self, caller_id: UUID, read_write: bool=False) -> None:
83
+ if read_write:
84
+ self.rw_access.add(caller_id)
85
+ else:
86
+ add.ro_access.self(caller_id)
87
+
88
+ def o_ElementInterface_c_revoke_access(self, caller_id: UUID) -> None:
89
+ self.ro_access.discard(caller_id)
90
+ self.rw_access.discard(caller_id)
91
+
92
+ def o_DataSpatialInterface_c_on_entry(cls: type, triggers: list) -> None:
93
+
94
+ def decorator(func: callable) -> callable:
95
+ cls.ds_entry_funcs.append({'types': triggers, 'func': func})
96
+
97
+ def wrapper(*args: list, **kwargs: dict) -> callable:
98
+ return func(*args, **kwargs)
99
+ return wrapper
100
+ return decorator
101
+
102
+ def o_DataSpatialInterface_c_on_exit(cls: type, triggers: list) -> None:
103
+
104
+ def decorator(func: callable) -> callable:
105
+ cls.ds_exit_funcs.append({'types': triggers, 'func': func})
106
+
107
+ def wrapper(*args: list, **kwargs: dict) -> callable:
108
+ return func(*args, **kwargs)
109
+ return wrapper
110
+ return decorator
111
+
112
+ def o_NodeInterface_c_connect_node(self, nd: Node, edg: Edge) -> Node:
113
+ edg.attach(self.py_obj, nd)
114
+ return self
115
+
116
+ def o_NodeInterface_c_edges_to_nodes(self, dir: EdgeDir) -> list[Node]:
117
+ ret_nodes = []
118
+ if dir in [EdgeDir.OUT, EdgeDir.ANY]:
119
+ for i in self.edges[EdgeDir.OUT]:
120
+ ret_nodes.append(i.target)
121
+ elif dir in [EdgeDir.IN, EdgeDir.ANY]:
122
+ for i in self.edges[EdgeDir.IN]:
123
+ ret_nodes.append(i.source)
124
+ return ret_nodes
125
+
126
+ def o_EdgeInterface_c_apply_dir(self, dir: EdgeDir) -> Edge:
127
+ self.dir = dir
128
+ return self
129
+
130
+ def o_EdgeInterface_c_attach(self, src: Node, trg: Node) -> Edge:
131
+ if self.dir == EdgeDir.IN:
132
+ self.source = trg
133
+ self.target = src
134
+ src._jac_.edges[EdgeDir.IN].append(self)
135
+ trg._jac_.edges[EdgeDir.OUT].append(self)
136
+ else:
137
+ self.source = src
138
+ self.target = trg
139
+ src._jac_.edges[EdgeDir.OUT].append(self)
140
+ trg._jac_.edges[EdgeDir.IN].append(self)
141
+ return self
142
+
143
+ def o_WalkerInterface_c_visit_node(self, nds: list[Node] | (list[Edge] | (Node | Edge))) -> None:
144
+ if isinstance(nds, list):
145
+ for i in nds:
146
+ if i not in self.ignores:
147
+ self.next.append(i)
148
+ elif nds not in self.ignores:
149
+ self.next.append(nds)
150
+ return len(nds) if isinstance(nds, list) else 1
151
+
152
+ def o_WalkerInterface_c_ignore_node(self, nds: list[Node] | (list[Edge] | (Node | Edge))) -> None:
153
+ if isinstance(nds, list):
154
+ for i in nds:
155
+ self.ignores.append(i)
156
+ else:
157
+ self.ignores.append(nds)
158
+
159
+ def o_WalkerInterface_c_disengage_now(self) -> None:
160
+ self.next = []
161
+ self.disengaged = True
162
+
163
+ def o_NodeInterface_c___call__(self, walk: Walker) -> None:
164
+ if not isinstance(walk, Walker):
165
+ raise TypeError('Argument must be a Walker instance')
166
+ walk(self)
167
+
168
+ def o_EdgeInterface_c___call__(self, walk: Walker) -> None:
169
+ if not isinstance(walk, Walker):
170
+ raise TypeError('Argument must be a Walker instance')
171
+ walk(self._jac_.target)
172
+
173
+ def o_WalkerInterface_c___call__(self, nd: Node) -> None:
174
+ self._jac_.path = []
175
+ self._jac_.next = [nd]
176
+ walker_type = self.__class__.__name__
177
+ while len(self._jac_.next):
178
+ nd = self._jac_.next.pop(0)
179
+ node_type = nd.__class__.__name__
180
+ for i in nd._jac_ds_.ds_entry_funcs:
181
+ if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
182
+ i['func'](nd, self)
183
+ if self._jac_.disengaged:
184
+ return
185
+ for i in self._jac_ds_.ds_entry_funcs:
186
+ if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
187
+ i['func'](self, nd)
188
+ if self._jac_.disengaged:
189
+ return
190
+ for i in self._jac_ds_.ds_exit_funcs:
191
+ if i['func'].__qualname__.split('.')[0] == walker_type and (type(nd) in i['types'] or nd in i['types']):
192
+ i['func'](self, nd)
193
+ if self._jac_.disengaged:
194
+ return
195
+ for i in nd._jac_ds_.ds_exit_funcs:
196
+ if i['func'].__qualname__.split('.')[0] == node_type and type(self) in i['types']:
197
+ i['func'](nd, self)
198
+ if self._jac_.disengaged:
199
+ return
200
+ self._jac_.path.append(nd)
201
+ self._jac_.ignores = []
202
+
203
+ @hookimpl
204
+ def o_JacPlugin_c_bind_architype(arch: AT, arch_type: str) -> bool:
205
+ match arch_type:
206
+ case 'obj':
207
+ arch._jac_ = ObjectInterface()
208
+ case 'node':
209
+ arch._jac_ = NodeInterface()
210
+ case 'edge':
211
+ arch._jac_ = EdgeInterface()
212
+ case 'walker':
213
+ arch._jac_ = WalkerInterface()
214
+ case _:
215
+ raise TypeError('Invalid archetype type')
216
+ return True
217
+
218
+ @hookimpl
219
+ def o_JacPlugin_c_get_root() -> None:
220
+ return exec_ctx.get_root()