jaclang 0.7.0__py3-none-any.whl → 0.7.2__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (62) hide show
  1. jaclang/compiler/absyntree.py +53 -50
  2. jaclang/compiler/compile.py +21 -0
  3. jaclang/compiler/passes/main/__init__.py +2 -2
  4. jaclang/compiler/passes/main/def_impl_match_pass.py +10 -8
  5. jaclang/compiler/passes/main/def_use_pass.py +14 -7
  6. jaclang/compiler/passes/main/fuse_typeinfo_pass.py +20 -1
  7. jaclang/compiler/passes/main/import_pass.py +60 -11
  8. jaclang/compiler/passes/main/pyast_gen_pass.py +65 -4
  9. jaclang/compiler/passes/main/pyast_load_pass.py +2 -1
  10. jaclang/compiler/passes/main/pyjac_ast_link_pass.py +6 -1
  11. jaclang/compiler/passes/main/pyout_pass.py +3 -1
  12. jaclang/compiler/passes/main/schedules.py +4 -3
  13. jaclang/compiler/passes/main/tests/fixtures/incautoimpl.jac +7 -0
  14. jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +4 -4
  15. jaclang/compiler/passes/main/tests/test_import_pass.py +21 -0
  16. jaclang/compiler/passes/main/tests/test_type_check_pass.py +1 -1
  17. jaclang/compiler/passes/tool/jac_formatter_pass.py +14 -2
  18. jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac +15 -0
  19. jaclang/compiler/passes/tool/tests/test_jac_format_pass.py +7 -5
  20. jaclang/compiler/passes/tool/tests/test_unparse_validate.py +1 -2
  21. jaclang/compiler/symtable.py +21 -1
  22. jaclang/core/aott.py +107 -11
  23. jaclang/core/construct.py +171 -5
  24. jaclang/core/llms/anthropic.py +31 -2
  25. jaclang/core/llms/base.py +3 -3
  26. jaclang/core/llms/groq.py +4 -1
  27. jaclang/core/llms/huggingface.py +4 -1
  28. jaclang/core/llms/ollama.py +4 -1
  29. jaclang/core/llms/openai.py +6 -2
  30. jaclang/core/llms/togetherai.py +4 -1
  31. jaclang/langserve/engine.py +193 -121
  32. jaclang/langserve/server.py +35 -6
  33. jaclang/langserve/tests/fixtures/circle.jac +73 -0
  34. jaclang/langserve/tests/fixtures/circle_err.jac +73 -0
  35. jaclang/langserve/tests/fixtures/circle_pure.impl.jac +32 -0
  36. jaclang/langserve/tests/fixtures/circle_pure.jac +34 -0
  37. jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac +32 -0
  38. jaclang/langserve/tests/fixtures/circle_pure_err.jac +34 -0
  39. jaclang/langserve/tests/test_server.py +156 -1
  40. jaclang/langserve/utils.py +127 -2
  41. jaclang/plugin/default.py +25 -83
  42. jaclang/plugin/feature.py +10 -12
  43. jaclang/plugin/tests/test_features.py +0 -33
  44. jaclang/settings.py +1 -0
  45. jaclang/tests/fixtures/byllmissue.jac +3 -0
  46. jaclang/tests/fixtures/hash_init_check.jac +17 -0
  47. jaclang/tests/fixtures/math_question.jpg +0 -0
  48. jaclang/tests/fixtures/nosigself.jac +19 -0
  49. jaclang/tests/fixtures/type_info.jac +1 -1
  50. jaclang/tests/fixtures/walker_override.jac +21 -0
  51. jaclang/tests/fixtures/with_llm_vision.jac +25 -0
  52. jaclang/tests/test_cli.py +1 -1
  53. jaclang/tests/test_language.py +61 -11
  54. jaclang/utils/helpers.py +3 -5
  55. jaclang/utils/test.py +1 -1
  56. jaclang/utils/treeprinter.py +19 -2
  57. {jaclang-0.7.0.dist-info → jaclang-0.7.2.dist-info}/METADATA +3 -2
  58. {jaclang-0.7.0.dist-info → jaclang-0.7.2.dist-info}/RECORD +60 -48
  59. jaclang/core/memory.py +0 -48
  60. jaclang/core/shelve_storage.py +0 -55
  61. {jaclang-0.7.0.dist-info → jaclang-0.7.2.dist-info}/WHEEL +0 -0
  62. {jaclang-0.7.0.dist-info → jaclang-0.7.2.dist-info}/entry_points.txt +0 -0
@@ -6,27 +6,27 @@ jaclang/cli/cli.py,sha256=d352zfA5_Da5InyQkv4V-qaxIcdIaVYJVeYt8npSB3I,13553
6
6
  jaclang/cli/cmdreg.py,sha256=u0jAd6A8czt7tBgPBBKBhYAG4By1FrjEGaTU2XFKeYs,8372
7
7
  jaclang/compiler/.gitignore,sha256=n1k2_xXTorp9PY8hhYM4psHircn-NMaFx95bSgDKopo,10
8
8
  jaclang/compiler/__init__.py,sha256=JA3L1ran0PlZI5Pcj2CIrFgrZGRNFHHC5kRh1QYgYlY,3146
9
- jaclang/compiler/absyntree.py,sha256=yHKyIqPTajrZa8KE2gneilkLk9xFBU0EPaknVelmAZ4,126981
9
+ jaclang/compiler/absyntree.py,sha256=wdjDFb7iAioSoFqNKO-iVp52j76fxV1n3eiiOJWp3Y8,127396
10
10
  jaclang/compiler/codeloc.py,sha256=KMwf5OMQu3_uDjIdH7ta2piacUtXNPgUV1t8OuLjpzE,2828
11
- jaclang/compiler/compile.py,sha256=IOjTLv42IULW6HbCpFINNrRhwjHDebKO1vdon0EX85k,2772
11
+ jaclang/compiler/compile.py,sha256=0d8p4i2LXg2RCu1XfWx_Jq_dx7pK2Zn2VIj-apvX_nI,3389
12
12
  jaclang/compiler/constant.py,sha256=C8nOgWLAg-fRg8Qax_jRcYp6jGyWSSA1gwzk9Zdy7HE,6534
13
13
  jaclang/compiler/jac.lark,sha256=TI8ctvs_cASPp-EDPrMiCeL80Ngvj_7WxGMUFtGN7vs,17040
14
14
  jaclang/compiler/parser.py,sha256=Fy6qsTdh82YvXSgXoevIT5dIGjAn3hqbN45muJ5jFNY,138789
15
15
  jaclang/compiler/passes/__init__.py,sha256=0Tw0d130ZjzA05jVcny9cf5NfLjlaM70PKqFnY4zqn4,69
16
16
  jaclang/compiler/passes/ir_pass.py,sha256=gh1Zd8ouu79FoxerW1sMxktmfeC9gHyp4H_MoAviYP8,5504
17
- jaclang/compiler/passes/main/__init__.py,sha256=m8vZ0F6EiwOm0e0DWKRYgc8JcgiT2ayBrY6GojZkTfY,945
17
+ jaclang/compiler/passes/main/__init__.py,sha256=YSWVNkgnJKF32LpJwX__FwvYrpTSoxFqvnw410WrhkA,947
18
18
  jaclang/compiler/passes/main/access_modifier_pass.py,sha256=1tQJ9bNlOVX3sgL0DK4jv643Pu5xl68oL8LNsaHf-MY,4864
19
- jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=NlHHHMT1C-8RoCWjL7E2oYDBXeX82g0dWn_SnEWEtMk,3753
20
- jaclang/compiler/passes/main/def_use_pass.py,sha256=d2REmfme2HjUj8avDcXUuPbv3yKfvYHqpL49sxniLhQ,8576
21
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=9alMH5yPLzFZ1iZJw0UCjh-9BOOxNALA_QjW0IqQdDg,16322
22
- jaclang/compiler/passes/main/import_pass.py,sha256=NlCzK6Cdke-59mHm6q9LDHIUbXBpFOVZ725GYcbhqK0,8055
23
- jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=sL5VIR2cT_NQYlyFopZz5XSXjQcisltVwdmLL8pXf3w,136197
24
- jaclang/compiler/passes/main/pyast_load_pass.py,sha256=lFJhcaXbsDKi2WJzVlD0EdSEKosUjopHFHzAYV3KvhQ,90650
19
+ jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=P8XfyJcI7smbRvG8-DKcVMayzV6co7SNodYXMQ1vt3E,3959
20
+ jaclang/compiler/passes/main/def_use_pass.py,sha256=3JeiqNxegTQ8a2gk3Tlc4frUrSQ1ZZeiv2qwNA1OPp0,8887
21
+ jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=KMup0S3ovzf9tcjJMKIXKgp6oXXznkxuAU1BllaXXA0,17267
22
+ jaclang/compiler/passes/main/import_pass.py,sha256=p9KeFywHmb2jD6IIr-KvxybqFt696AXGF5KSj37SzSU,10237
23
+ jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=-zIgBh-9GpGVDENsPuWSFbj7R6X6DscX-tX_K2syWpI,138323
24
+ jaclang/compiler/passes/main/pyast_load_pass.py,sha256=HknN8PGhlBv_H5muKi8zbPKuKgZHvgR_nNsMsIiz0y0,90697
25
25
  jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=CjA9AqyMO3Pv_b5Hh0YI6JmCqIru2ASonO6rhrkau-M,1336
26
- jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=K5jNHRPrFcC_-RbgY7lngSNSDQLQr27N31_aUrGUACo,7864
27
- jaclang/compiler/passes/main/pyout_pass.py,sha256=clJkASFiBiki5w0MQXYIwcdvahYETgqAjKlYOYVYKNQ,3137
26
+ jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=FOix4QEoolgTQeO2FCi99dDEtrXOnQ9MQ991rIEBw38,8045
27
+ jaclang/compiler/passes/main/pyout_pass.py,sha256=QWVB-AyVBha3OespP89LMuslRsdG2niZErwtnRPiURM,3191
28
28
  jaclang/compiler/passes/main/registry_pass.py,sha256=Lp_EqlflXkSgQuJe_EVBtzC16YAJx70bDO6X0nJIX5U,4579
29
- jaclang/compiler/passes/main/schedules.py,sha256=oTH2EvvopLdmrtPl8b-CENWAPviIZe7qNLOuODJ5Iuw,1253
29
+ jaclang/compiler/passes/main/schedules.py,sha256=cu3-AIckvbKGe3C-DbtDwwAdvnX25CdDP6j9QLps9Kg,1298
30
30
  jaclang/compiler/passes/main/sub_node_tab_pass.py,sha256=fGgK0CBWsuD6BS4BsLwXPl1b5UC2N2YEOGa6jNMu8N8,1332
31
31
  jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=1bUU-p0zCoLoF7_HgLr2FKxUuc_4y2O7-5FSJD8mfWc,42020
32
32
  jaclang/compiler/passes/main/tests/__init__.py,sha256=UBAATLUEH3yuBN4LYKnXXV79kokRc4XB-rX12qfu0ds,28
@@ -47,28 +47,30 @@ jaclang/compiler/passes/main/tests/fixtures/game1.jac,sha256=oiTadkrYJRUo6ZkHUi7
47
47
  jaclang/compiler/passes/main/tests/fixtures/impl/defs1.jac,sha256=MIYBOmcG4NnxsJcR4f-bposvl5ILfshU0tKJ7qMjjzU,112
48
48
  jaclang/compiler/passes/main/tests/fixtures/impl/defs2.jac,sha256=MIYBOmcG4NnxsJcR4f-bposvl5ILfshU0tKJ7qMjjzU,112
49
49
  jaclang/compiler/passes/main/tests/fixtures/impl/imps.jac,sha256=MTVCw95_OwssjB7MtEPTYoHSHcceZAhFLokW8Zaruzg,135
50
+ jaclang/compiler/passes/main/tests/fixtures/incautoimpl.jac,sha256=WX54UE-AUAfnjva0y9NkSl8-0aJAE1HqO0gw4rtCqhs,71
50
51
  jaclang/compiler/passes/main/tests/fixtures/multi_def_err.jac,sha256=BxgmNUdz76gKLi6PXnLZE9rartodMgch5ydpGrd25Ec,87
51
52
  jaclang/compiler/passes/main/tests/fixtures/registry.jac,sha256=1G6amtU1zIFCgq09v7xTp9zZ5sw5IbXHfYVlOo-drPg,993
52
53
  jaclang/compiler/passes/main/tests/fixtures/type_info.jac,sha256=64Im2L-R3YF8DEuTt29QE6mJI5PnFe3PiwcDLKa8gOE,661
53
- jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=QDsvTEpJt3AuS3GRwfq-1mezRCpx7rwEEyg1AbusaBs,1374
54
+ jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=-qb9-XV6XbPCbL3JoUQsbS86w-WjkAKCnAYuDFORoIE,1378
54
55
  jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=dmyZgXugOCN-_YY7dxkNHgt8vqey8qzNJf8sWyLLZ5w,1013
55
- jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=2oRz8lO1ORiTn36NkkshpXeT_K0L_jM8KZuvxgVzbbE,1141
56
+ jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=qHz3IHJmFmTKpP_stU-Nhs9-1spR_04KddUSWdD5bl4,2073
56
57
  jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=LIT4TP-nhtftRtY5rNySRQlim-dWMSlkfUvkhZTk4pc,1383
57
58
  jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py,sha256=fNL_FS26AQGlRCvwWfl-Qyt7iW2_A99GIHOAnnkpw9A,4731
58
59
  jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py,sha256=If8PE4exN5g9o1NRElNC0XdfIwJAp7M7f69rzmYRYUQ,655
59
60
  jaclang/compiler/passes/main/tests/test_registry_pass.py,sha256=Eed94qPmO38GFVV4DARx6G0xaawAoncWfgSHja1wPeQ,1162
60
61
  jaclang/compiler/passes/main/tests/test_sub_node_pass.py,sha256=I8m2SM2Z-OJkRG3CfpzhZkxh4lrKNtFmcu6UuYzZpY0,877
61
62
  jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=85mUM6mYYLCrQ9AivBIbreG7CgdsJH2zrNOqdcpnwBo,730
62
- jaclang/compiler/passes/main/tests/test_type_check_pass.py,sha256=PlRf4Y749WgeNppwfiLgFFGXrmMajYEW1krvNkbcHbI,2265
63
+ jaclang/compiler/passes/main/tests/test_type_check_pass.py,sha256=v2_KmcyX1_fOpReRKM0mUnlFXKVPRvFCMR3Mw9ftytI,2265
63
64
  jaclang/compiler/passes/main/tests/test_typeinfo_pass.py,sha256=ehC0_giLg7NwB7fR10nW5Te8mZ76qmUFxkK1bEjtmrw,129
64
65
  jaclang/compiler/passes/main/type_check_pass.py,sha256=-f41Ukr3B1w4rkQdZ2xJy6nozymgnVKjJ8E1fn7qJmI,3339
65
66
  jaclang/compiler/passes/tool/__init__.py,sha256=xekCOXysHIcthWm8NRmQoA1Ah1XV8vFbkfeHphJtUdc,223
66
67
  jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=N9a84qArNuTXX1iaXsBzqcufx6A3zYq2p-1ieH6FmHc,3133
67
- jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=xpM10gIhILS37Ne2NVFMruJwmG1GfDcY0y8fbgqWrdM,86134
68
+ jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=86dW_09RRWApxOKZXucZtIuYDHOQUISpmz2biJ2c-gs,86606
68
69
  jaclang/compiler/passes/tool/schedules.py,sha256=kmbsCazAMizGAdQuZpFky5BPlYlMXqNw7wOUzdi_wBo,432
69
70
  jaclang/compiler/passes/tool/tests/__init__.py,sha256=AeOaZjA1rf6VAr0JqIit6jlcmOzW7pxGr4U1fOwgK_Y,24
70
71
  jaclang/compiler/passes/tool/tests/fixtures/corelib.jac,sha256=GA5_CDQQo9awG6H8wed8tp06KoWtQ8nR70LVbBwCFIY,12416
71
72
  jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac,sha256=GA5_CDQQo9awG6H8wed8tp06KoWtQ8nR70LVbBwCFIY,12416
73
+ jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac,sha256=hXD5bidK3sCGlJwTxy5Tka568hVxzqY6KL9y_z19CQo,217
72
74
  jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac,sha256=VIXnIeimrkxF1T0pzE82eA8q9uUao7UXC_tkypn6l08,1783
73
75
  jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac,sha256=euhNL6oYlRnt0uLDar8fz7bvoiqf55b4Kq-gGBrb7cw,684
74
76
  jaclang/compiler/passes/tool/tests/fixtures/genai/joke_gen.jac,sha256=J3FfEzINUsJx9ZFfJ2TRclOoe11vYFvcNSjSG4o724I,919
@@ -97,12 +99,12 @@ jaclang/compiler/passes/tool/tests/fixtures/myca_formatted_code/walker_with_inli
97
99
  jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac,sha256=6jwYKXxJ1B4VfYDFlQhStN3_QX7dDXzC2gI6U9-KhZM,806
98
100
  jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac,sha256=6jwYKXxJ1B4VfYDFlQhStN3_QX7dDXzC2gI6U9-KhZM,806
99
101
  jaclang/compiler/passes/tool/tests/test_fuse_comments_pass.py,sha256=ZeWHsm7VIyyS8KKpoB2SdlHM4jF22fMfSrfTfxt2MQw,398
100
- jaclang/compiler/passes/tool/tests/test_jac_format_pass.py,sha256=P4vBRbwVAkb8svFSAOf4VKioZS8BkoaVfYdn-LCrRqA,6144
101
- jaclang/compiler/passes/tool/tests/test_unparse_validate.py,sha256=Tg9k7BOSkWngAZLvSHmPt95ILJzdIvdHxKBT__mgpS0,2910
102
+ jaclang/compiler/passes/tool/tests/test_jac_format_pass.py,sha256=AKGBEz02bS9REJuryZlPvY2avE_XWqKV8sRrnh5hu2g,6101
103
+ jaclang/compiler/passes/tool/tests/test_unparse_validate.py,sha256=sIBDl35Cns6vv200GsKyLBbIggKKV2tDy4gq_J8zf6E,2768
102
104
  jaclang/compiler/passes/transform.py,sha256=jh2pMGFs6J9ZbQ2E-3r21khDm53yKXbNq5GstLMkBpg,2374
103
105
  jaclang/compiler/passes/utils/__init__.py,sha256=UsI5rUopTUiStAzup4kbPwIwrnC5ofCrqWBCBbM2-k4,35
104
106
  jaclang/compiler/passes/utils/mypy_ast_build.py,sha256=DbTYKwQ2K-3JXS_RybLyvqDz_381Li8JfFKNeEQhbRY,26324
105
- jaclang/compiler/symtable.py,sha256=f-9c3eQJTDhEG22kYC3Vd4i5gRWf77_CsqFm7t8Wsng,6031
107
+ jaclang/compiler/symtable.py,sha256=_4gtwQkBReYVEiTBFXwv6BaDd5H-bL9LpU1zgt2ymWs,6648
106
108
  jaclang/compiler/tests/__init__.py,sha256=qiXa5UNRBanGOcplFKTT9a_9GEyiv7goq1OzuCjDCFE,27
107
109
  jaclang/compiler/tests/fixtures/__init__.py,sha256=udQ0T6rajpW_nMiYKJNckqP8izZ-pH3P4PNTJEln2NU,36
108
110
  jaclang/compiler/tests/fixtures/activity.py,sha256=fSvxYDKufsPeQIrbuh031zHw_hdbRv5iK9mS7dD8E54,263
@@ -115,27 +117,31 @@ jaclang/compiler/tests/fixtures/stuff.jac,sha256=qOq6WOwhlprMmJpiqQudgqnr4qTd9uh
115
117
  jaclang/compiler/tests/test_importer.py,sha256=JNmte5FsHhnng9jzw7N5BenflAFCasuhezN1sytDVyg,1739
116
118
  jaclang/compiler/tests/test_parser.py,sha256=C81mUo8EGwypPTTLRVS9BglP0Dyye9xaPSQtw7cwnnI,4814
117
119
  jaclang/core/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
118
- jaclang/core/aott.py,sha256=MMFmel9cf1KrREjLUY9vV0b38pdb_4N3pxe5jMedBYA,7582
119
- jaclang/core/construct.py,sha256=ZwgOO-P2OTv8d7mnxBkRg-AitrzYxsbFNqJZjRE9YqM,18649
120
+ jaclang/core/aott.py,sha256=b9fTTu5fUo756s_PEenvV1uagE0Wm4tu4vJc-NPu5IQ,11190
121
+ jaclang/core/construct.py,sha256=lA-z-49FQRyhHLg7bPfCuGchVxXdWDPosX7H_ddbm38,23601
120
122
  jaclang/core/importer.py,sha256=JW_bxxEASklIBjezBiDaor95X6JLRUFspnN-zImtY8E,6100
121
123
  jaclang/core/llms/__init__.py,sha256=hxuxduH6ahhkXgJ9eUkhfn8LCS1KTz1ESuYgtspu_c0,371
122
- jaclang/core/llms/anthropic.py,sha256=JmgKLUTk27Hg221rt4QBLRjonxE_qLkkSgZuLFZUrCg,1979
123
- jaclang/core/llms/base.py,sha256=IOQWOP3zyPq05PVq7iYmh5wTd62m2W0husljvRtLYJo,6082
124
- jaclang/core/llms/groq.py,sha256=jdcz8DMz4ResI2_0pfJB1rJ8Z8r9f0Av66D3ha0fCB4,2144
125
- jaclang/core/llms/huggingface.py,sha256=8NqPScBFhodjONc4SbJ1OHyftQ1y9q_a7QevprDeArQ,2656
126
- jaclang/core/llms/ollama.py,sha256=mlNf844qgiBizVRRBfQt-pM8sN6dX7ESqdo2SXu8aE0,2691
127
- jaclang/core/llms/openai.py,sha256=uG4BIW8x9NhWMhy9taqb4esIa3POO_cezsZ7ZclLan8,1975
128
- jaclang/core/llms/togetherai.py,sha256=MTPz7QasO2MjDn8hVCjOVU3SO6H6pF9Qoh7ZHmx46yw,2005
124
+ jaclang/core/llms/anthropic.py,sha256=numnoRVzi6ZjOMEP7UvMDsM_NnNfpqv4jeRfpSb79c4,3233
125
+ jaclang/core/llms/base.py,sha256=_qOv8G5jH2dc4OKUBDKDLx9M6Mv5kFUu5rj5dI625vU,6076
126
+ jaclang/core/llms/groq.py,sha256=VjBltafRkeNhpoGQzB79EsA4NWXnJVAArapKaqTWOq0,2303
127
+ jaclang/core/llms/huggingface.py,sha256=IA0Q1dBP-M4saD4uHcrJF7Q6YgPp_GGd9p8-hpG-XKQ,2815
128
+ jaclang/core/llms/ollama.py,sha256=eJ_Jy7MNy33gR3zuSwcuGaWUedvY_Qy5A08H7kqLvFE,2850
129
+ jaclang/core/llms/openai.py,sha256=01xY6l23_y4lX0t8ZEHiMwEBL7Govyf7fPQ2k4zdAKI,2219
130
+ jaclang/core/llms/togetherai.py,sha256=45lZHKtG4B7tyjI1s_7Pu39VXUaC5n9EAMajfGxHZb8,2164
129
131
  jaclang/core/llms/utils.py,sha256=mTpROnh4qS8fE26TkcotSt-mAqWoSeEeRBOu0SgoPmA,219
130
- jaclang/core/memory.py,sha256=QDOtAlxARQ_pg6NkmZ_QYKWhnIHzd2Mm1jzZUck7pRY,1415
131
132
  jaclang/core/registry.py,sha256=4uuXahPN4SMVEWwJ6Gjm5LM14rePMGoyjQtSbDQmQZs,4178
132
- jaclang/core/shelve_storage.py,sha256=UsZRHM8KPGUlZTX_bfcxzabInNrTaQVNMatQifycMYg,1692
133
133
  jaclang/core/utils.py,sha256=5e4DyjtSweFxKeIuEyeYGV2MsuTtfnncfIwRdoyFdys,7736
134
134
  jaclang/langserve/__init__.py,sha256=3qbnivBBcLZCfmDYRMIeKkG08Lx7XQsJJg-qG8TU8yc,51
135
- jaclang/langserve/engine.py,sha256=3XIOhM8S5mlnfS42po8DKPlg4ptGfDMmYmlF8grnsGs,10079
136
- jaclang/langserve/server.py,sha256=17u6mgK4JgLcnnlpixHmOXKj5-OJiwUurMXJ9Qt7s4Q,3992
135
+ jaclang/langserve/engine.py,sha256=w4oHxUb-qlJlOGI3hzAjPIjWSIC7uqVxbNao9yL8Ugw,13198
136
+ jaclang/langserve/server.py,sha256=s91jycYI4lHqFBOel3VV4ODmiO3abvX3UjyfM0hvWBI,5132
137
137
  jaclang/langserve/tests/__init__.py,sha256=iDM47k6c3vahaWhwxpbkdEOshbmX-Zl5x669VONjS2I,23
138
138
  jaclang/langserve/tests/defaults.py,sha256=8UWHuCHY-WatPcWFhyX9-4KLuJgODTlLNj0wNnKomIM,7608
139
+ jaclang/langserve/tests/fixtures/circle.jac,sha256=M-OOMttQ9D5qyvfJibKJVW6ce3YRmXKDUAWzyy4N4mU,1733
140
+ jaclang/langserve/tests/fixtures/circle_err.jac,sha256=6Cn3PtP3ujjC8DjiOQWFbdb5C6wW12wAv9BwLwvX7b4,1732
141
+ jaclang/langserve/tests/fixtures/circle_pure.impl.jac,sha256=rsXatY9a-wZONRPJ6VOuw7Bj9R_CrJO_TEwAVXj1PjU,702
142
+ jaclang/langserve/tests/fixtures/circle_pure.jac,sha256=62j4v1LbWIfGfz_-tR7GDWNmEFqhdXhkDRC68Jc5fUs,624
143
+ jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac,sha256=rsXatY9a-wZONRPJ6VOuw7Bj9R_CrJO_TEwAVXj1PjU,702
144
+ jaclang/langserve/tests/fixtures/circle_pure_err.jac,sha256=jQ5QX0G5khGACoY82CM-6LcOX57w4e29tHVicE2eMgw,608
139
145
  jaclang/langserve/tests/fixtures/hello.jac,sha256=iRMKtYVCw1zLvjOQbj3q__3Manj1Di1YeDTNMEvYtBc,36
140
146
  jaclang/langserve/tests/pylsp_jsonrpc/__init__.py,sha256=bDWxRjmELPCVGy243_0kNrG7PttyZsv_eZ9JTKQrU1E,105
141
147
  jaclang/langserve/tests/pylsp_jsonrpc/dispatchers.py,sha256=zEZWu6C2_n4lPoA8H8OO67746P93VhbYaXZMdtrD8Z0,1038
@@ -143,21 +149,21 @@ jaclang/langserve/tests/pylsp_jsonrpc/endpoint.py,sha256=TxDpWUd-8AGJwdRQN_iiCXY
143
149
  jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py,sha256=NGHeFQawZcjoLUcgDmY3bF7BqZR83g7TmdKyzCmRaKM,2836
144
150
  jaclang/langserve/tests/pylsp_jsonrpc/streams.py,sha256=R80_FvICIkrbdGmNtlemWYaxrr7-XldPgLaASnyv0W8,3332
145
151
  jaclang/langserve/tests/session.py,sha256=3pIRoQjZnsnUWIYnO2SpK7c1PAiHMCFrrStNK2tawRM,9572
146
- jaclang/langserve/tests/test_server.py,sha256=Zqo4bnlUg9TH1xHSpT4VBpTefT6tLCWjOZbFI9hEzUs,1411
147
- jaclang/langserve/utils.py,sha256=p0ohiZwvasbBWY-jtHj5lULL3ZYPXuc9B80eFzhk5TQ,1602
152
+ jaclang/langserve/tests/test_server.py,sha256=L1EKGZTL1dpHha9TkzcXyIiC1o448UDo0TMbiZ73wtc,8184
153
+ jaclang/langserve/utils.py,sha256=aOH8W58FZ9HOfJD1Q3vbBMaaN9SWicohVybuUoiyLbE,5564
148
154
  jaclang/plugin/__init__.py,sha256=5t2krHKt_44PrCTGojzxEimxpNHYVQcn89jAiCSXE_k,165
149
155
  jaclang/plugin/builtin.py,sha256=PP2Vs4p_oDbGYEx0iBFDYH49I4uSRnNVWgx2aOzorVA,1187
150
- jaclang/plugin/default.py,sha256=bi8qyiKkXAwr-TjT_VSI0_KSW4l5fqHCGp7dV0egfI0,27142
151
- jaclang/plugin/feature.py,sha256=Qi30JWJvt51s9nx3eJ0_BSTYIeTYLHe-e26y0IjJLz8,9444
156
+ jaclang/plugin/default.py,sha256=j1CSAgbHNhbysiKXcsatgo79JelJ97BICaTRonl5piY,25455
157
+ jaclang/plugin/feature.py,sha256=ZOVLhVOXFmfJc3Ux3WgI2IALPZG1jgvsbsxojUbb8jg,9347
152
158
  jaclang/plugin/spec.py,sha256=mJRUMGaIhlHbZIvO2J-A1q3eNhnIWJ0iBCPmxhHiHx4,9043
153
159
  jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
154
160
  jaclang/plugin/tests/fixtures/impl_match.jac,sha256=WEhcA1GlovusITEFO2bOjYYqiiULyYGKhM17uK2GqnI,91
155
161
  jaclang/plugin/tests/fixtures/impl_match_impl.jac,sha256=k1385r7Hdlq6mUKxEHa3VOKJUIWH08hYg2kErhbYwFM,31
156
162
  jaclang/plugin/tests/fixtures/simple_node_connection.jac,sha256=KdbpACWtnj92TqQqEunwoI4VKhlnhcJCKMkbgh0Xqxg,1067
157
163
  jaclang/plugin/tests/fixtures/simple_persistent.jac,sha256=o0TZTOJEZjFW8A2IGY8ICBZEBZzHhqha0xQFFBK_DSI,624
158
- jaclang/plugin/tests/test_features.py,sha256=uNQ52HHc0GiOGg5xUZk-ddafdtud0IHN4H_EUAs4er4,3547
164
+ jaclang/plugin/tests/test_features.py,sha256=p0N5inZn92Cj0eqslmDR0-q6pVG8hkcQfA6CuQcfP3Y,2352
159
165
  jaclang/plugin/tests/test_jaseci.py,sha256=XcVL-FOZMTsjJEZqCa-rcYyEPl1dxdFFu9vhvm8kUaI,7956
160
- jaclang/settings.py,sha256=p2JZGkvpwZFtgR90rFSg55-JUpodFe1ZzFgGZVxf5n8,3279
166
+ jaclang/settings.py,sha256=o_AXXgX7PNcEwL33v7NehVCk1ndmif-AWo91nzBLot8,3322
161
167
  jaclang/tests/fixtures/abc.jac,sha256=M-OOMttQ9D5qyvfJibKJVW6ce3YRmXKDUAWzyy4N4mU,1733
162
168
  jaclang/tests/fixtures/access_checker.jac,sha256=6Inm14cZsyMfezFRs2zfnQEZSE_JRxVvytcZbox7BNw,375
163
169
  jaclang/tests/fixtures/access_modifier.jac,sha256=bxiPlbqm4zPXdMIeTR0-LhjO6c-LS7fW_fGuIA7oKWI,945
@@ -166,6 +172,7 @@ jaclang/tests/fixtures/arithmetic_bug.jac,sha256=iiO3ZwTi7R1U6-flV4tGbxDHXsw8Gna
166
172
  jaclang/tests/fixtures/assign_compr.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4JFNEuUs5iM,286
167
173
  jaclang/tests/fixtures/assign_compr_dup.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4JFNEuUs5iM,286
168
174
  jaclang/tests/fixtures/builtin_dotgen.jac,sha256=HsAHVyN7HxhbICqe4GXV51cJlMe68WMleMmx9KeR8fU,1759
175
+ jaclang/tests/fixtures/byllmissue.jac,sha256=S4im8d6cnPYIxthzKotNkfwUZ_FMr4TpEt_jPPFiwPI,64
169
176
  jaclang/tests/fixtures/chandra_bugs.jac,sha256=vcBjZ4P7S1PPUs-_0Stt779pus95RJTMs1x_-m0w7yY,282
170
177
  jaclang/tests/fixtures/chandra_bugs2.jac,sha256=P9C7lVotfh-OoyAl1LDUqMPUaUmjrNrVO3nrBcxB_WQ,540
171
178
  jaclang/tests/fixtures/circle_pysolo.py,sha256=TAJTCOjrUl80oDke5wl6ZyBJQsy37Hu6gYdqcO-tQlY,2477
@@ -191,6 +198,7 @@ jaclang/tests/fixtures/game1.jac,sha256=oiTadkrYJRUo6ZkHUi7I54J_0GoTTtsNLhhofTlz
191
198
  jaclang/tests/fixtures/gendot_bubble_sort.jac,sha256=6yZ-mtY5Bp46RYD4P9b09Sc2Wnnec_mmLXCX4nW_AlY,1540
192
199
  jaclang/tests/fixtures/guess_game.jac,sha256=S2sWoF22SY2PbadKQX45QJFtw9lvzwFvrwbG0kbutPE,856
193
200
  jaclang/tests/fixtures/has_goodness.jac,sha256=CmhMXiRLCkdrqpGbSm2e7mBf0hCBgCk5s9GQ6gbCjdA,313
201
+ jaclang/tests/fixtures/hash_init_check.jac,sha256=Yrh3Rmi4SHIbY_c8EjHzcnwXVXas9ufbCAnkdRa3EyQ,205
194
202
  jaclang/tests/fixtures/hashcheck.jac,sha256=ksWSP6jyQ7MedV-Oh7HoXHn1rTdQwv2O1H22Pyq3d3c,160
195
203
  jaclang/tests/fixtures/hashcheck_dup.jac,sha256=ksWSP6jyQ7MedV-Oh7HoXHn1rTdQwv2O1H22Pyq3d3c,160
196
204
  jaclang/tests/fixtures/hello.jac,sha256=6YezKvx2CNjE0l3Ea6P9ZsTrj4XyqvXDQO9S1EFNbIE,63
@@ -203,6 +211,7 @@ jaclang/tests/fixtures/inherit_check.jac,sha256=FQlbCavN4ryt3mmD6ei1MIt1jMgZ8_Nc
203
211
  jaclang/tests/fixtures/jacsamp.jac,sha256=VUHUn-RvHzTA4v0KNIFuciocqAHsgQp9tfsEvh5WHlE,96
204
212
  jaclang/tests/fixtures/jp_importer.jac,sha256=Mfn62rwYk8CANIkCoMf5UFt4SKl042jaU0CHnj-Soiw,414
205
213
  jaclang/tests/fixtures/lambda.jac,sha256=nU4HbPrBdYe6NegJq4LueequaiLCe3KWyTAbL__ibG0,113
214
+ jaclang/tests/fixtures/math_question.jpg,sha256=YYLzFuCZRmhEcyTNKy-HzOaka4ZSswHExA3a6UMD18E,152545
206
215
  jaclang/tests/fixtures/maxfail_run_test.jac,sha256=CS_rDshUyDGEMbYph0KiPoyxIq_kDdPgcVNvuIMaYEg,162
207
216
  jaclang/tests/fixtures/mtest.impl.jac,sha256=wYsT4feH2JgxxgN217dgbDWooSmD8HBSlzUwJ4jAa8g,76
208
217
  jaclang/tests/fixtures/mtest.jac,sha256=i7aQpJuUw4YMXgJOvGn_lRx-TruJdqBClioPKGUd4mw,67
@@ -211,6 +220,7 @@ jaclang/tests/fixtures/needs_import_1.jac,sha256=m8marIqHPo-waC5PIYeLq38N2QzRUJB
211
220
  jaclang/tests/fixtures/needs_import_2.jac,sha256=RC4aok5TCbxInmTp8OmArCt4afawPP9ZdhAzkW5WJCc,104
212
221
  jaclang/tests/fixtures/needs_import_3.jac,sha256=9ASkW82KUKDgydt8dR48XucG66n6xeLEGLwAgRgfOR8,104
213
222
  jaclang/tests/fixtures/needs_import_dup.jac,sha256=hJab0QWdoTLuNaNhtY6zjzyGGUouRyT9uQknhP-lXXQ,315
223
+ jaclang/tests/fixtures/nosigself.jac,sha256=jCjNizUVOrgJwXJ_-TdOzKsq8hlhU6xuX0Mz27W92lQ,187
214
224
  jaclang/tests/fixtures/package_import.jac,sha256=VgQwcoiR46OSLkY65h9MxNpaeFCassXRJpwmNwxrfXk,127
215
225
  jaclang/tests/fixtures/pyfunc.py,sha256=Os1xnL4I4ddNkpv4Vs5aOxu95dEM0JuNIoiECyCCjJ0,163
216
226
  jaclang/tests/fixtures/pyfunc_1.py,sha256=-rpqDeN48HHmq8XKdbmBAsxXTJJl6yyz4V19PYU_mtg,5312
@@ -228,25 +238,27 @@ jaclang/tests/fixtures/sub_abil_sep_multilev.jac,sha256=wm7-RGdwfUGHjQo20jj2fTp0
228
238
  jaclang/tests/fixtures/try_finally.jac,sha256=I4bjOZz0vZbY1rQZlPy-RCMYP2-LQwtsShlmKR1_UFE,574
229
239
  jaclang/tests/fixtures/tupleunpack.jac,sha256=AP6rbofc0VmsTNxInY6WLGRKWVY6u8ut0uzQX_52QyI,64
230
240
  jaclang/tests/fixtures/tuplytuples.jac,sha256=6qiXn5OV_qn4cqKwROjJ1VuBAh0nbUGpp-5vtH9n_Dg,344
231
- jaclang/tests/fixtures/type_info.jac,sha256=n3v2snKNNZu2-4qdicKhw67Jc_rS4oIB3puXDx9-FUA,315
241
+ jaclang/tests/fixtures/type_info.jac,sha256=4Cw31ef5gny6IS0kLzgeSO-7ArEH1HgFFFip1BGQhZM,316
242
+ jaclang/tests/fixtures/walker_override.jac,sha256=Ok58ZAgxuV6aECNxYrjbbyAWSiqIbnly3N3O6cD563o,271
232
243
  jaclang/tests/fixtures/with_context.jac,sha256=cDA_4YWe5UVmQRgcpktzkZ_zsswQpV_T2Otf_rFnPy8,466
233
244
  jaclang/tests/fixtures/with_llm_function.jac,sha256=hcDBO2Ch5IScrV0VBzeYaNaL4GhmVwg_odOzfOb1pwk,804
234
245
  jaclang/tests/fixtures/with_llm_lower.jac,sha256=S3a8luL38neLReoxNzs-nLeN36oys059MS8g7g_oqJg,1878
235
246
  jaclang/tests/fixtures/with_llm_method.jac,sha256=l76E50hIygLwkiIpjf3iYGv97C3yZlUABE2D5GnqQ44,1420
236
247
  jaclang/tests/fixtures/with_llm_type.jac,sha256=LKotFGtBl9mzo08SbTkzBWa3rGWt4AuzgianHFkAZvU,1778
237
- jaclang/tests/test_cli.py,sha256=2HAKgbEWvi6NWrpVU_mXYTk-I1EWlR6yYi0c61_IK5c,8703
238
- jaclang/tests/test_language.py,sha256=V7SsMd5M_746LkZ5H_JHq6pODPu0kJTkfV3GZMqIoLs,34203
248
+ jaclang/tests/fixtures/with_llm_vision.jac,sha256=xp2hteAzmu3ij9T3uI_FJiuvQtSuaivtJ_XWmqb0f1I,679
249
+ jaclang/tests/test_cli.py,sha256=eHnlkHg6_p52q_jvRhFr0LzblZj9cAtlNDbxm-EVixs,8703
250
+ jaclang/tests/test_language.py,sha256=B4XOXzpGfbE7uzp-jHoyAS7bH54CwAWFMFKjgx3WtB0,36433
239
251
  jaclang/tests/test_man_code.py,sha256=Kq93zg3hEfiouvpWvmfCgR6lDT5RKDp28k5ZaWe1Xeg,4519
240
252
  jaclang/tests/test_reference.py,sha256=b6mR0WTJ0-sKkvZtMGsGooxzkkmD4WfXj_hOY6ZnhYw,3341
241
253
  jaclang/tests/test_settings.py,sha256=TIX5uiu8H9IpZN2__uFiclcdCpBpPpcAwtlEHyFC4kk,1999
242
254
  jaclang/utils/__init__.py,sha256=86LQ_LDyWV-JFkYBpeVHpLaVxkqwFDP60XpWXOFZIQk,46
243
- jaclang/utils/helpers.py,sha256=7I7v3GhT0djRpo4cgRHKxUuAarTJBjhOBI3998wJTLw,6186
255
+ jaclang/utils/helpers.py,sha256=v-jQ-SDzGLrrLXKxoL1PaCguJqcV-X1UlwjWSL3GNAI,6142
244
256
  jaclang/utils/lang_tools.py,sha256=odv66Os8bJvw9JIUUkccGWvEPL98c-60veAiOiNyTy4,9956
245
257
  jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
246
- jaclang/utils/test.py,sha256=7-2Te0GQcKY3RJfNKa3cEJjG-RMC1r-0fHuOcFXrmE8,5383
258
+ jaclang/utils/test.py,sha256=5VK0hVo_IyfFiMFN_gz-dFx01yF3tPVZ56RKoAAZfaU,5374
247
259
  jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
248
260
  jaclang/utils/tests/test_lang_tools.py,sha256=hFQzkzdmJIhP99xqjR5z7bqkefMLmE6kwldXYrfK--E,4831
249
- jaclang/utils/treeprinter.py,sha256=q0x2ztq_HmFPPHqZD--7um9yvxmMhe7E6ETJN_KLy7k,11676
261
+ jaclang/utils/treeprinter.py,sha256=b_4FEmRxher_bnxDtUkr9l6vz3ah1hZbNIR9qxNcl4E,12311
250
262
  jaclang/vendor/__init__.py,sha256=tEcp2kl3hMvF2d6X6WlJSAGuAMYOVCKCstXuPMQSR4Q,265
251
263
  jaclang/vendor/attr/__init__.py,sha256=WlXJN6ICB0Y_HZ0lmuTUgia0kuSdn2p67d4N6cYxNZM,3307
252
264
  jaclang/vendor/attr/__init__.pyi,sha256=u08EujYHy_rSyebNn-I9Xv2S_cXmtA9xWGc0cBsyl18,16976
@@ -1469,7 +1481,7 @@ jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA,sha256=BeUQIa8cnYbrjW
1469
1481
  jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD,sha256=XS4fBVrPI7kaNZ56Ggl2RGa76jySWLqTzcrUpZIQTVM,418
1470
1482
  jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
1471
1483
  jaclang/vendor/typing_extensions.py,sha256=gwekpyG9DVG3lxWKX4ni8u7nk3We5slG98mA9F3DJQw,134451
1472
- jaclang-0.7.0.dist-info/METADATA,sha256=t3CGvduif1vz_lYjQFxjon55vqB3fO2adkxvMxHHxXw,4756
1473
- jaclang-0.7.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1474
- jaclang-0.7.0.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1475
- jaclang-0.7.0.dist-info/RECORD,,
1484
+ jaclang-0.7.2.dist-info/METADATA,sha256=LaJrw5AL0hdWBPjppd_99-RysY3DkRgMj8l1r98FAQ0,4807
1485
+ jaclang-0.7.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1486
+ jaclang-0.7.2.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1487
+ jaclang-0.7.2.dist-info/RECORD,,
jaclang/core/memory.py DELETED
@@ -1,48 +0,0 @@
1
- """Memory abstraction for jaseci plugin."""
2
-
3
- from uuid import UUID
4
-
5
- from jaclang.core.construct import Architype
6
-
7
-
8
- class Memory:
9
- """Memory module interface."""
10
-
11
- mem: dict[UUID, Architype] = {}
12
- save_obj_list: dict[UUID, Architype] = {}
13
-
14
- def __init__(self) -> None:
15
- """init."""
16
- pass
17
-
18
- def get_obj(self, obj_id: UUID) -> Architype | None:
19
- """Get object from memory."""
20
- return self.get_obj_from_store(obj_id)
21
-
22
- def get_obj_from_store(self, obj_id: UUID) -> Architype | None:
23
- """Get object from the underlying store."""
24
- ret = self.mem.get(obj_id)
25
- return ret
26
-
27
- def has_obj(self, obj_id: UUID) -> bool:
28
- """Check if the object exists."""
29
- return self.has_obj_in_store(obj_id)
30
-
31
- def has_obj_in_store(self, obj_id: UUID) -> bool:
32
- """Check if the object exists in the underlying store."""
33
- return obj_id in self.mem
34
-
35
- def save_obj(self, item: Architype, persistent: bool) -> None:
36
- """Save object."""
37
- self.mem[item._jac_.id] = item
38
- if persistent:
39
- # TODO: check if it needs to be saved, i.e. dirty or not
40
- self.save_obj_list[item._jac_.id] = item
41
-
42
- def commit(self) -> None:
43
- """Commit changes to persistent storage, if applicable."""
44
- pass
45
-
46
- def close(self) -> None:
47
- """Close any connection, if applicable."""
48
- self.mem.clear()
@@ -1,55 +0,0 @@
1
- """Shelve storage for persistence storage of jaclang runtime object."""
2
-
3
- import shelve
4
- from uuid import UUID
5
-
6
- from jaclang.core.construct import Architype
7
- from jaclang.core.memory import Memory
8
-
9
-
10
- class ShelveStorage(Memory):
11
- """Shelve storage for jaclang runtime object."""
12
-
13
- storage: shelve.Shelf | None = None
14
-
15
- def __init__(self, session: str = "") -> None:
16
- """Init shelve storage."""
17
- super().__init__()
18
- if session:
19
- self.connect(session)
20
-
21
- def get_obj_from_store(self, obj_id: UUID) -> Architype | None:
22
- """Get object from the underlying store."""
23
- obj = super().get_obj_from_store(obj_id)
24
- if obj is None and self.storage:
25
- obj = self.storage.get(str(obj_id))
26
- if obj is not None:
27
- self.mem[obj_id] = obj
28
-
29
- return obj
30
-
31
- def has_obj_in_store(self, obj_id: UUID | str) -> bool:
32
- """Check if the object exists in the underlying store."""
33
- return obj_id in self.mem or (
34
- str(obj_id) in self.storage if self.storage else False
35
- )
36
-
37
- def commit(self) -> None:
38
- """Commit changes to persistent storage."""
39
- if self.storage is not None:
40
- for obj_id, obj in self.save_obj_list.items():
41
- self.storage[str(obj_id)] = obj
42
- self.save_obj_list.clear()
43
-
44
- def connect(self, session: str) -> None:
45
- """Connect to storage."""
46
- self.session = session
47
- self.storage = shelve.open(session)
48
-
49
- def close(self) -> None:
50
- """Close the storage."""
51
- super().close()
52
- self.commit()
53
- if self.storage:
54
- self.storage.close()
55
- self.storage = None