jaclang 0.7.25__py3-none-any.whl → 0.7.27__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 (34) hide show
  1. jaclang/compiler/absyntree.py +27 -18
  2. jaclang/compiler/jac.lark +4 -1
  3. jaclang/compiler/parser.py +37 -20
  4. jaclang/compiler/passes/main/def_impl_match_pass.py +50 -13
  5. jaclang/compiler/passes/main/def_use_pass.py +1 -2
  6. jaclang/compiler/passes/main/pyast_gen_pass.py +46 -20
  7. jaclang/compiler/passes/main/pyast_load_pass.py +20 -6
  8. jaclang/compiler/passes/main/sym_tab_build_pass.py +1 -2
  9. jaclang/compiler/passes/main/tests/fixtures/uninitialized_hasvars.jac +26 -0
  10. jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py +36 -29
  11. jaclang/compiler/passes/main/tests/test_def_use_pass.py +3 -3
  12. jaclang/compiler/passes/tool/jac_formatter_pass.py +2 -2
  13. jaclang/compiler/passes/tool/tests/fixtures/corelib.jac +3 -3
  14. jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac +3 -3
  15. jaclang/compiler/tests/test_parser.py +7 -1
  16. jaclang/plugin/default.py +64 -18
  17. jaclang/plugin/feature.py +16 -1
  18. jaclang/plugin/spec.py +14 -2
  19. jaclang/plugin/tests/fixtures/graph_purger.jac +101 -0
  20. jaclang/plugin/tests/fixtures/other_root_access.jac +19 -0
  21. jaclang/plugin/tests/fixtures/savable_object.jac +84 -0
  22. jaclang/plugin/tests/test_jaseci.py +214 -6
  23. jaclang/runtimelib/architype.py +29 -1
  24. jaclang/runtimelib/memory.py +27 -8
  25. jaclang/runtimelib/utils.py +16 -0
  26. jaclang/tests/fixtures/architype_def_bug.jac +17 -0
  27. jaclang/tests/fixtures/decl_defn_param_name.jac +19 -0
  28. jaclang/tests/fixtures/multi_dim_array_split.jac +19 -0
  29. jaclang/tests/test_cli.py +18 -0
  30. jaclang/tests/test_language.py +43 -0
  31. {jaclang-0.7.25.dist-info → jaclang-0.7.27.dist-info}/METADATA +1 -1
  32. {jaclang-0.7.25.dist-info → jaclang-0.7.27.dist-info}/RECORD +34 -28
  33. {jaclang-0.7.25.dist-info → jaclang-0.7.27.dist-info}/WHEEL +0 -0
  34. {jaclang-0.7.25.dist-info → jaclang-0.7.27.dist-info}/entry_points.txt +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import inspect
5
6
  from dataclasses import asdict, dataclass, field, fields, is_dataclass
6
7
  from enum import IntEnum
7
8
  from logging import getLogger
@@ -225,6 +226,13 @@ class WalkerAnchor(Anchor):
225
226
  disengaged: bool = False
226
227
 
227
228
 
229
+ @dataclass(eq=False, repr=False, kw_only=True)
230
+ class ObjectAnchor(Anchor):
231
+ """Edge Anchor."""
232
+
233
+ architype: ObjectArchitype
234
+
235
+
228
236
  class Architype:
229
237
  """Architype Protocol."""
230
238
 
@@ -266,6 +274,16 @@ class WalkerArchitype(Architype):
266
274
  self.__jac__ = WalkerAnchor(architype=self)
267
275
 
268
276
 
277
+ class ObjectArchitype(Architype):
278
+ """Walker Architype Protocol."""
279
+
280
+ __jac__: ObjectAnchor
281
+
282
+ def __init__(self) -> None:
283
+ """Create walker architype."""
284
+ self.__jac__ = ObjectAnchor(architype=self)
285
+
286
+
269
287
  @dataclass(eq=False)
270
288
  class GenericEdge(EdgeArchitype):
271
289
  """Generic Root Node."""
@@ -291,9 +309,19 @@ class DSFunc:
291
309
  """Data Spatial Function."""
292
310
 
293
311
  name: str
294
- trigger: type | UnionType | tuple[type | UnionType, ...] | None
295
312
  func: Callable[[Any, Any], Any] | None = None
296
313
 
297
314
  def resolve(self, cls: type) -> None:
298
315
  """Resolve the function."""
299
316
  self.func = getattr(cls, self.name)
317
+
318
+ def get_funcparam_annotations(
319
+ self, func: Callable[[Any, Any], Any] | None
320
+ ) -> type | UnionType | tuple[type | UnionType, ...] | None:
321
+ """Get function parameter annotations."""
322
+ if not func:
323
+ return None
324
+ annotation = (
325
+ inspect.signature(func, eval_str=True).parameters["_jac_here_"].annotation
326
+ )
327
+ return annotation if annotation != inspect._empty else None
@@ -25,6 +25,10 @@ class Memory(Generic[ID, TANCH]):
25
25
  self.__mem__.clear()
26
26
  self.__gc__.clear()
27
27
 
28
+ def is_cached(self, id: ID) -> bool:
29
+ """Check if id if already cached."""
30
+ return id in self.__mem__
31
+
28
32
  def find(
29
33
  self,
30
34
  ids: ID | Iterable[ID],
@@ -80,14 +84,32 @@ class ShelfStorage(Memory[UUID, Anchor]):
80
84
  def close(self) -> None:
81
85
  """Close memory handler."""
82
86
  if isinstance(self.__shelf__, Shelf):
83
- from jaclang.plugin.feature import JacFeature as Jac
84
-
85
87
  for anchor in self.__gc__:
86
88
  self.__shelf__.pop(str(anchor.id), None)
87
89
  self.__mem__.pop(anchor.id, None)
88
90
 
89
- for d in self.__mem__.values():
90
- if d.persistent and d.hash != hash(dumps(d)):
91
+ keys = set(self.__mem__.keys())
92
+
93
+ # current memory
94
+ self.sync_mem_to_db(keys)
95
+
96
+ # additional after memory sync
97
+ self.sync_mem_to_db(set(self.__mem__.keys() - keys))
98
+
99
+ self.__shelf__.close()
100
+ super().close()
101
+
102
+ def sync_mem_to_db(self, keys: Iterable[UUID]) -> None:
103
+ """Manually sync memory to db."""
104
+ from jaclang.plugin.feature import JacFeature as Jac
105
+
106
+ if isinstance(self.__shelf__, Shelf):
107
+ for key in keys:
108
+ if (
109
+ (d := self.__mem__.get(key))
110
+ and d.persistent
111
+ and d.hash != hash(dumps(d))
112
+ ):
91
113
  _id = str(d.id)
92
114
  if p_d := self.__shelf__.get(_id):
93
115
  if (
@@ -96,7 +118,7 @@ class ShelfStorage(Memory[UUID, Anchor]):
96
118
  and p_d.edges != d.edges
97
119
  and Jac.check_connect_access(d)
98
120
  ):
99
- if not d.edges:
121
+ if not d.edges and not isinstance(d.architype, Root):
100
122
  self.__shelf__.pop(_id, None)
101
123
  continue
102
124
  p_d.edges = d.edges
@@ -115,9 +137,6 @@ class ShelfStorage(Memory[UUID, Anchor]):
115
137
  ):
116
138
  self.__shelf__[_id] = d
117
139
 
118
- self.__shelf__.close()
119
- super().close()
120
-
121
140
  def find(
122
141
  self,
123
142
  ids: UUID | Iterable[UUID],
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  import ast as ast3
6
6
  import sys
7
7
  from contextlib import contextmanager
8
+ from types import UnionType
8
9
  from typing import Callable, Iterator, TYPE_CHECKING
9
10
 
10
11
  import jaclang.compiler.absyntree as ast
@@ -215,3 +216,18 @@ def extract_params(
215
216
  )
216
217
  exclude_info.append((var_name, i.gen.py_ast[0]))
217
218
  return model_params, include_info, exclude_info
219
+
220
+
221
+ def is_instance(
222
+ obj: object, target: type | UnionType | tuple[type | UnionType, ...]
223
+ ) -> bool:
224
+ """Check if object is instance of target type."""
225
+ match target:
226
+ case UnionType():
227
+ return any((is_instance(obj, trg) for trg in target.__args__))
228
+ case tuple():
229
+ return any((is_instance(obj, trg) for trg in target))
230
+ case type():
231
+ return isinstance(obj, target)
232
+ case _:
233
+ return False
@@ -0,0 +1,17 @@
1
+ # fix test type 2
2
+ walker MyWalker {
3
+ can travel with `root | MyNode entry {
4
+ print("MyWalker");
5
+ }
6
+ }
7
+
8
+ node MyNode {
9
+ can work with MyWalker entry {
10
+ print("MyNode");
11
+ }
12
+ }
13
+
14
+ with entry {
15
+ Node_1 = MyNode();
16
+ Node_1 spawn MyWalker();
17
+ }
@@ -0,0 +1,19 @@
1
+
2
+ obj SomeClass {
3
+ can method1(some_long_paramenter_name: int) -> None;
4
+ can method2(param1:int, param2:str) -> None;
5
+ }
6
+
7
+ :o:SomeClass:c:method1(short_name:int) -> None {
8
+ print("short_name =", short_name);
9
+ }
10
+
11
+ :o:SomeClass:c:method2(p1:int, p2: str) -> None {
12
+ print("p1 =", p1, ", p2 =", p2);
13
+ }
14
+
15
+ with entry {
16
+ sc = SomeClass();
17
+ sc.method1(42);
18
+ sc.method2(64, "foobar");
19
+ }
@@ -0,0 +1,19 @@
1
+ import:py numpy as np;
2
+
3
+ with entry {
4
+ arr = np.array(
5
+ [[1, 2, 3, 4, 5],
6
+ [6, 7, 8, 9, 10],
7
+ [11, 12, 13, 14, 15],
8
+ [16, 17, 18, 19, 20],
9
+ [21, 22, 23, 24, 25]]
10
+ );
11
+
12
+ print('Original Array:');
13
+ print(arr);
14
+
15
+ print();
16
+
17
+ print('Sliced Array:');
18
+ print(arr[1:3, 1::2]);
19
+ }
jaclang/tests/test_cli.py CHANGED
@@ -94,6 +94,24 @@ class JacCliTests(TestCase):
94
94
  path_to_file = self.fixture_abs_path("err.impl.jac")
95
95
  self.assertIn(f'"{path_to_file}", line 2', stdout_value)
96
96
 
97
+ def test_param_name_diff(self) -> None:
98
+ """Test when parameter name from definitinon and declaration are mismatched."""
99
+ captured_output = io.StringIO()
100
+ sys.stdout = captured_output
101
+ sys.stderr = captured_output
102
+ with contextlib.suppress(Exception):
103
+ cli.run(self.fixture_abs_path("decl_defn_param_name.jac"))
104
+ sys.stdout = sys.__stdout__
105
+ sys.stderr = sys.__stderr__
106
+
107
+ expected_stdout_values = (
108
+ "short_name = 42",
109
+ "p1 = 64 , p2 = foobar",
110
+ )
111
+ output = captured_output.getvalue()
112
+ for exp in expected_stdout_values:
113
+ self.assertIn(exp, output)
114
+
97
115
  def test_jac_test_err(self) -> None:
98
116
  """Basic test for pass."""
99
117
  captured_output = io.StringIO()
@@ -103,6 +103,39 @@ class JacLanguageTests(TestCase):
103
103
  "Too high!\nToo low!\nToo high!\nCongratulations! You guessed correctly.\n",
104
104
  )
105
105
 
106
+ def test_multi_dim_arr_slice(self) -> None:
107
+ """Parse micro jac file."""
108
+ captured_output = io.StringIO()
109
+ sys.stdout = captured_output
110
+ cli.tool(
111
+ "ir",
112
+ [
113
+ "ast",
114
+ self.fixture_abs_path("multi_dim_array_split.jac"),
115
+ ],
116
+ )
117
+ sys.stdout = sys.__stdout__
118
+ stdout_value = captured_output.getvalue()
119
+
120
+ expected_outputs = [
121
+ "+-- AtomTrailer - Type: numpy.ndarray[Any, numpy.dtype[Any]]",
122
+ " +-- Name - arr - Type: numpy.ndarray[Any, numpy.dtype[Any]], SymbolTable: None",
123
+ " +-- IndexSlice - [IndexSlice] - Type: builtins.slice, SymbolTable: None",
124
+ " +-- Token - [,",
125
+ " +-- Int - 1 - Type: Literal[1]?, SymbolTable: None",
126
+ " +-- Token - :,",
127
+ " +-- Int - 3 - Type: Literal[3]?, SymbolTable: None",
128
+ " +-- Token - ,,",
129
+ " +-- Int - 1 - Type: Literal[1]?, SymbolTable: None",
130
+ " +-- Token - :,",
131
+ " +-- Token - :,",
132
+ " +-- Int - 2 - Type: Literal[2]?, SymbolTable: None",
133
+ " +-- Token - ],",
134
+ ]
135
+
136
+ for expected in expected_outputs:
137
+ self.assertIn(expected, stdout_value)
138
+
106
139
  def test_chandra_bugs(self) -> None:
107
140
  """Parse micro jac file."""
108
141
  captured_output = io.StringIO()
@@ -1189,3 +1222,13 @@ class JacLanguageTests(TestCase):
1189
1222
  stdout_value = captured_output.getvalue().split("\n")
1190
1223
  self.assertIn("Hello World !", stdout_value[0])
1191
1224
  self.assertIn("Welcome to Jaseci!", stdout_value[1])
1225
+
1226
+ def test_architype_def(self) -> None:
1227
+ """Test architype definition bug."""
1228
+ captured_output = io.StringIO()
1229
+ sys.stdout = captured_output
1230
+ jac_import("architype_def_bug", base_path=self.fixture_abs_path("./"))
1231
+ sys.stdout = sys.__stdout__
1232
+ stdout_value = captured_output.getvalue().split("\n")
1233
+ self.assertIn("MyNode", stdout_value[0])
1234
+ self.assertIn("MyWalker", stdout_value[1])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaclang
3
- Version: 0.7.25
3
+ Version: 0.7.27
4
4
  Summary: Jac is a unique and powerful programming language that runs on top of Python, offering an unprecedented level of intelligence and intuitive understanding.
5
5
  Home-page: https://jaseci.org
6
6
  License: MIT
@@ -6,30 +6,30 @@ jaclang/cli/cli.py,sha256=EmRY02l9yxNJ2ObeK0Nnb1e0vKcacUu_hG_X2_5DNFY,16705
6
6
  jaclang/cli/cmdreg.py,sha256=5mhzLJnpHfc0Z22qKQgcEOICgBaC95G9gSJZ-R7GqvU,8282
7
7
  jaclang/compiler/.gitignore,sha256=n1k2_xXTorp9PY8hhYM4psHircn-NMaFx95bSgDKopo,10
8
8
  jaclang/compiler/__init__.py,sha256=0c0Eu3TPoo--hxvciM6kn9_A9YKjQOQdXX-yYILWFNM,2742
9
- jaclang/compiler/absyntree.py,sha256=FlzEAKMj5aLkM1aqCTgh7r6VvyA-jL4zeXOeqhd7ijA,140564
9
+ jaclang/compiler/absyntree.py,sha256=sbQ4iKhXtDvbu5tlN8vL4gd6CuqDCe3mh0Mxbkgmu-4,140928
10
10
  jaclang/compiler/codeloc.py,sha256=clz7ofOE0Rgf7eqco3zEO31mCbG3Skj9-rLooliBeik,2942
11
11
  jaclang/compiler/compile.py,sha256=eYoKSLCgzWQBMaRkeXSv1D_EuixEtrFP1iSjxUGtHzs,3773
12
12
  jaclang/compiler/constant.py,sha256=gKccXK4Qf3CWuv8J1oaWrwqdP7CRIf7ndayquRx6Xgs,9007
13
- jaclang/compiler/jac.lark,sha256=NmoNb_hE4xKgVEo9aFreE9RdGOIvCBq-NU0Qs5Js6VE,17393
14
- jaclang/compiler/parser.py,sha256=JM9ERU5vCnX5jEoYrEZL3Ccn_ReYaC60R408VK1N8zE,142596
13
+ jaclang/compiler/jac.lark,sha256=PX9R46947zcu4sITyJ56xQFGArLygPhZj-uulGfAx3M,17584
14
+ jaclang/compiler/parser.py,sha256=TIz4Wa1zPfgVYWwqkdCcuJcDAMP4yPcFu1WXnb7iPdI,143263
15
15
  jaclang/compiler/passes/__init__.py,sha256=0Tw0d130ZjzA05jVcny9cf5NfLjlaM70PKqFnY4zqn4,69
16
16
  jaclang/compiler/passes/ir_pass.py,sha256=CgtuBrVjfG7PgTCLNSjxgFffYR5naTC3tIjOjsXx5gk,5597
17
17
  jaclang/compiler/passes/main/__init__.py,sha256=DLbOP_7q8jJ9-ME_8A0d_FVk2crh9etTmTGQmtKWLnY,973
18
18
  jaclang/compiler/passes/main/access_modifier_pass.py,sha256=AuE6xgW079Bvs_K02XWVz5qJkCIuizC6t1zIiQ5s-qE,5328
19
- jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=SAXCoyFVWWjBXcFTjIZSVQbL1P9Rd-qDeh4H4-Cbl18,6900
20
- jaclang/compiler/passes/main/def_use_pass.py,sha256=68Uts_v-R-9mzBXC9EfXpcBEQwqnVcpL2JD0sri88AY,9674
19
+ jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=cCOXyL-yyLxIvSyrlhOtVgjJNu0T-RyKx3sP4bFaQ54,8172
20
+ jaclang/compiler/passes/main/def_use_pass.py,sha256=3rfLaQw4mScSedqPCY8vVkvZH77TTOKEbBYYGC0SZnA,9634
21
21
  jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=46JIeqkgkB3doy4F6FAUDvv_wTutMwl4NQI5ykbQ-So,25571
22
22
  jaclang/compiler/passes/main/import_pass.py,sha256=5nJp6BERceXQs8k8JqXVYp8wZ1wVoSga1GoUtCLA8EA,12880
23
23
  jaclang/compiler/passes/main/py_collect_dep_pass.py,sha256=lzMOYH8TarhkJFt0vqvZFknthZ08OjsdO7tO2u2EN40,2834
24
- jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=ACUhGsLq34N-Sfo96IAgkTnds9ZY6I7J6okr6rFvPpo,142105
25
- jaclang/compiler/passes/main/pyast_load_pass.py,sha256=khGbMeUUfTvNRG4Jb3i6_A2zNNbOgdB24uhPwU28Xqs,94159
24
+ jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=UGfR-JNRDbvx99RxEf51OAEe3VljylZLQ1hD7eUS8Kk,143389
25
+ jaclang/compiler/passes/main/pyast_load_pass.py,sha256=QMOEBIsH4jXHRdK9NX4nBUrAv_g1l5IQdHe6_FBbuyw,94689
26
26
  jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=CjA9AqyMO3Pv_b5Hh0YI6JmCqIru2ASonO6rhrkau-M,1336
27
27
  jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=snbqUIPtPcD9ZKsItOlKGVnujoMGFwF8XNP0GvxS9AI,8628
28
28
  jaclang/compiler/passes/main/pyout_pass.py,sha256=QWVB-AyVBha3OespP89LMuslRsdG2niZErwtnRPiURM,3191
29
29
  jaclang/compiler/passes/main/registry_pass.py,sha256=BOyBajaUxJ-xQfTOsx-JJcr4-q0hejBZRvNfBPvSFQM,5571
30
30
  jaclang/compiler/passes/main/schedules.py,sha256=tkTUTX8aff6pqQYtqt1h2lRbu_n7bVnAov9KmwwDxy0,1417
31
31
  jaclang/compiler/passes/main/sub_node_tab_pass.py,sha256=25HEJGBbDlJibyW5MV4ShXQ2vmzG3LDreknV-u2nQjk,1184
32
- jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=evTt5f1ymlKB4KzH1cm7wSnwWjplsFxVXTQpcrYL4b8,34304
32
+ jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=oNrBC9GdHb_uvpftxKC0vKepQkQgQW7ZCEwAHq-r9J8,34264
33
33
  jaclang/compiler/passes/main/tests/__init__.py,sha256=RgheAgh-SqGTa-4kBOY-V-oz8bzMmDWxavFqwlYjfgE,36
34
34
  jaclang/compiler/passes/main/tests/fixtures/autoimpl.empty.impl.jac,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  jaclang/compiler/passes/main/tests/fixtures/autoimpl.impl/getme.impl.jac,sha256=PUQSEKl0ZCjwhgU23o6qX8wEmnqvT7MSoFn8TVBlFpc,31
@@ -61,8 +61,9 @@ jaclang/compiler/passes/main/tests/fixtures/pygame_mock/constants.py,sha256=1i-O
61
61
  jaclang/compiler/passes/main/tests/fixtures/pygame_mock/display.py,sha256=uzQZvyHHf4iPAodRBuBxrnwx3CpDPbMxcsGRlUB_9GY,29
62
62
  jaclang/compiler/passes/main/tests/fixtures/registry.jac,sha256=1G6amtU1zIFCgq09v7xTp9zZ5sw5IbXHfYVlOo-drPg,993
63
63
  jaclang/compiler/passes/main/tests/fixtures/type_info.jac,sha256=64Im2L-R3YF8DEuTt29QE6mJI5PnFe3PiwcDLKa8gOE,661
64
- jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=WHqHKeN_DNg7Pw9mCLJCeASp9WQifJvYf1aGKBrCOQc,4054
65
- jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=0ieyoeiDSK2m3dmVN00oJK2TdJhxWwxA1lnxT95wz0A,843
64
+ jaclang/compiler/passes/main/tests/fixtures/uninitialized_hasvars.jac,sha256=RVxT9k1R_O_daYZJPvOTjZcd8-CX3zlaaIB0Chg2IvU,542
65
+ jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=JuemAIeaHf1wcpbkRTQdp_xlqUmSBZg91pLFyxEv1VM,4393
66
+ jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=NJr8d4iS9maoySBMLtxi8a3DJjbcLgEy6GjRgU_nzhM,843
66
67
  jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=XR0CaqdEQslYz1GXICpF3wko2PDw-tOnHfvgSWjo8TQ,5158
67
68
  jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=LIT4TP-nhtftRtY5rNySRQlim-dWMSlkfUvkhZTk4pc,1383
68
69
  jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py,sha256=6ZpLNYxblzBg6bmWSA0fikNM7nEAR9b9F18LJaO5buM,4679
@@ -75,11 +76,11 @@ jaclang/compiler/passes/main/tests/test_typeinfo_pass.py,sha256=o908glXImFXOlKKT
75
76
  jaclang/compiler/passes/main/type_check_pass.py,sha256=nIDrX49L3u7kToW3h-m2XI9FKr9UY_Wn_Y28TsVifZc,4273
76
77
  jaclang/compiler/passes/tool/__init__.py,sha256=xekCOXysHIcthWm8NRmQoA1Ah1XV8vFbkfeHphJtUdc,223
77
78
  jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=CSnuWy4gZfTcWKe0Q7LBikBgWe1zJr0QmNUkgrZ7B38,3657
78
- jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=-J4UOdo5BBMi9raT0KJ4ESVlu_70dzaLRGoWAZGPUyM,91213
79
+ jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=ILagQpjv4wcBlu3dMQ1kaA-X7il1IwICdB9GqcBlPZ4,91207
79
80
  jaclang/compiler/passes/tool/schedules.py,sha256=kmbsCazAMizGAdQuZpFky5BPlYlMXqNw7wOUzdi_wBo,432
80
81
  jaclang/compiler/passes/tool/tests/__init__.py,sha256=AeOaZjA1rf6VAr0JqIit6jlcmOzW7pxGr4U1fOwgK_Y,24
81
- jaclang/compiler/passes/tool/tests/fixtures/corelib.jac,sha256=RGIOyYW5eyadmOf0H-COpLPMJIIkWOFVERI5dNEM3J8,12581
82
- jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac,sha256=jsCzHbXXIsS__3KIppu4JSVj6Dc13Jp3164ifLDEg_E,12580
82
+ jaclang/compiler/passes/tool/tests/fixtures/corelib.jac,sha256=QvGgP1v_RRqM2t8BOMbbEj3g6jCgyYKvZEdqydJqlqg,12581
83
+ jaclang/compiler/passes/tool/tests/fixtures/corelib_fmt.jac,sha256=Y59lUM-6DSXff51l0aU4g0BBrXpKXTQTtVNw_TybJbI,12580
83
84
  jaclang/compiler/passes/tool/tests/fixtures/doc_string.jac,sha256=hXD5bidK3sCGlJwTxy5Tka568hVxzqY6KL9y_z19CQo,217
84
85
  jaclang/compiler/passes/tool/tests/fixtures/genai/essay_review.jac,sha256=wswRZnBVc9b-kWVYHlsQKa-L958IzvclHWEnvNM7vYc,1776
85
86
  jaclang/compiler/passes/tool/tests/fixtures/genai/expert_answer.jac,sha256=97Xm1O70OoHOpAooPjNI2CnJmBUI8x5CmYpMvuOET0E,677
@@ -135,7 +136,7 @@ jaclang/compiler/tests/fixtures/mod_doc_test.jac,sha256=aFZpjn7V5lvCHp0lPoGXtdkc
135
136
  jaclang/compiler/tests/fixtures/staticcheck.jac,sha256=t849--dTkSSjCJX1OiMV-lgao_hIDSKwKVs-aS6IwK8,342
136
137
  jaclang/compiler/tests/fixtures/stuff.jac,sha256=qOq6WOwhlprMmJpiqQudgqnr4qTd9uhulQSDGQ3o6sY,82
137
138
  jaclang/compiler/tests/test_importer.py,sha256=5gcP-oHoQ6i4VWh7_NlDl8uKLlwfbgzoWTd44ugs5Go,2315
138
- jaclang/compiler/tests/test_parser.py,sha256=Sj9Kz1FghESaPpyx_kEvScs4xvz-vgEdH8yyQJ0iB7M,4820
139
+ jaclang/compiler/tests/test_parser.py,sha256=Ke5bF2nrLufhp4y92_dONvBZ8S5GgvfDozOJnEy4-9U,5044
139
140
  jaclang/langserve/__init__.py,sha256=3qbnivBBcLZCfmDYRMIeKkG08Lx7XQsJJg-qG8TU8yc,51
140
141
  jaclang/langserve/engine.py,sha256=2U6sSCXLedVZhbUGFMadSecKUmW23LAk8S99vN7tsyc,20911
141
142
  jaclang/langserve/sem_manager.py,sha256=d5QzT9WVYarZfTg1sUF_pTfNMYb65HLz3vX839b5Jeo,14918
@@ -165,34 +166,37 @@ jaclang/langserve/tests/test_server.py,sha256=cZcQTMCMhJw4FS1BDz2oAmQb0J1mXdb5Bc
165
166
  jaclang/langserve/utils.py,sha256=edZCrq8ZFolao-rvv5RGPxtnEh6NmhrxOgPh8VxmEPs,15019
166
167
  jaclang/plugin/__init__.py,sha256=5t2krHKt_44PrCTGojzxEimxpNHYVQcn89jAiCSXE_k,165
167
168
  jaclang/plugin/builtin.py,sha256=zNTbe5knJrGFgJRa4l4hMzzuij6iXFyVqRTxputUHIo,1307
168
- jaclang/plugin/default.py,sha256=7cxX9-hCPIchfm0mT4IaBJzAuAw0T_UFrxleGhUHcLY,45429
169
- jaclang/plugin/feature.py,sha256=FhkzyPTk1N0faruRlyX13NYSPsRj6g--Jzfwes-_osE,16602
169
+ jaclang/plugin/default.py,sha256=65k0F5NsCH4qID6sCje0quU6atgUPF8f1pIK5z02q5E,46984
170
+ jaclang/plugin/feature.py,sha256=CJ87SfNPsxS7xuLvW0KpOboa6IrjDdPkOsVS3pjBsfk,17104
170
171
  jaclang/plugin/plugin.md,sha256=B252QTH3c8uZyvXTbGmZBafZtdXstFC5vT5jIN_gS4U,9994
171
- jaclang/plugin/spec.py,sha256=-ZaDdVfKLwQ0TgxvSZq4YQheNxyR6ljICIUthjRlm4g,14346
172
+ jaclang/plugin/spec.py,sha256=N1T4lhiyt_2UYmqLvhP6xjBUvgRA3wQF-YWjxjxPAIs,14714
172
173
  jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
174
+ jaclang/plugin/tests/fixtures/graph_purger.jac,sha256=c6kJD-KYYj2NErC21CjC2sjEMMBF6Qh9SdY9nSKWos8,1506
173
175
  jaclang/plugin/tests/fixtures/impl_match.jac,sha256=WEhcA1GlovusITEFO2bOjYYqiiULyYGKhM17uK2GqnI,91
174
176
  jaclang/plugin/tests/fixtures/impl_match_impl.jac,sha256=k1385r7Hdlq6mUKxEHa3VOKJUIWH08hYg2kErhbYwFM,31
175
- jaclang/plugin/tests/fixtures/other_root_access.jac,sha256=EwCQcbVt2FHlsH0PGw2WbFtk5mTQH2pP64RLGi0A2Zg,1662
177
+ jaclang/plugin/tests/fixtures/other_root_access.jac,sha256=e8pL9t3monI9FhmgavbcFsh8gjUB3pZkhAZHvbYcRuU,1991
178
+ jaclang/plugin/tests/fixtures/savable_object.jac,sha256=5eqRnnL3tqAMrIWQGoHW4vsD5acX9jZLtXtg_GBb84A,1973
176
179
  jaclang/plugin/tests/fixtures/simple_node_connection.jac,sha256=KdbpACWtnj92TqQqEunwoI4VKhlnhcJCKMkbgh0Xqxg,1067
177
180
  jaclang/plugin/tests/fixtures/simple_persistent.jac,sha256=o0TZTOJEZjFW8A2IGY8ICBZEBZzHhqha0xQFFBK_DSI,624
178
181
  jaclang/plugin/tests/test_features.py,sha256=sK9d2UazofGl9qYZO_ODKmOHZY8E4fnXNoyw-_KQI9A,2344
179
- jaclang/plugin/tests/test_jaseci.py,sha256=3c5MtOoxxHtMkaWduaqVim1xcv8FyQXkgBh9AC9eNCE,20315
182
+ jaclang/plugin/tests/test_jaseci.py,sha256=g2HQWPaG4E2FQOWcKmZ2SM2MDDOEy2s1u14Idb7GTbw,27398
180
183
  jaclang/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
184
  jaclang/runtimelib/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
182
- jaclang/runtimelib/architype.py,sha256=_4xCawHqmM5ASXwq9wxjStvqJlPdi9zJ5wvKU_QFt6U,7910
185
+ jaclang/runtimelib/architype.py,sha256=Egw3hmLDAt_jxQBagT_WoLv5Evl7hUbGkPx0-skboLw,8650
183
186
  jaclang/runtimelib/constructs.py,sha256=1ARnsPrDi1UvyaFRhGRhO0kj0fnIZ2HbHF7O3itB-ZQ,796
184
187
  jaclang/runtimelib/context.py,sha256=DjCkj1S6WLBWbNMkhUjqPYIhxqXV0XjJ1Mpjy7WR4g0,5538
185
188
  jaclang/runtimelib/importer.py,sha256=a6ORKrDfK-jKXopgyZHz188O-VI2NflFQo7VTUVvqOw,14592
186
189
  jaclang/runtimelib/machine.py,sha256=8gyGLxURqfy0bLXMWyOwjIX-rH8Mz11b-jV6Ta5liTk,11566
187
- jaclang/runtimelib/memory.py,sha256=SlzDYNi_R1Jj5WfLfW2y0Rta5GAD6CIKiONEo4LbfHI,5033
190
+ jaclang/runtimelib/memory.py,sha256=LrVTo6Cac0q-YG1wug-Fgc8O2Tue9zRHnxSulDw3ZQ4,5656
188
191
  jaclang/runtimelib/test.py,sha256=HRCl3cf0uPTe58Kcx_sBUb6ow8J53rnmpFOhA7g9oAA,2851
189
- jaclang/runtimelib/utils.py,sha256=P9gVE3XFhRzr745RCDXXIP391AcsL4aL_6HrXws_qa4,8155
192
+ jaclang/runtimelib/utils.py,sha256=xcxO45lEwEBRrWeeAaRjqGZ4Ua-XMCeNv0lS6dHwGIk,8652
190
193
  jaclang/settings.py,sha256=iLgVEA2fyARM5u-qMMMaEvNr88Qxej2NGZviw-R95kU,3681
191
194
  jaclang/tests/fixtures/abc.jac,sha256=HZvLz6IEt3Snlgg8Czs-N4emLjg4fT3IbTo95d3Gdww,1747
192
195
  jaclang/tests/fixtures/access_checker.jac,sha256=UVoY7sYW-R0ms2HDA4HXQ5xJNiW0vEbY2T5CCY1avus,281
193
196
  jaclang/tests/fixtures/access_modifier.jac,sha256=NJHXbu_N_cWpTkjJnwcHzWkEk2kroaQ8aaalVxPXAW8,2587
194
197
  jaclang/tests/fixtures/arch_create_util.jac,sha256=3pRe9JyCGO_8Z7XYnSKPehyOAAPf6747fHvgrMz6wQU,133
195
198
  jaclang/tests/fixtures/arch_rel_import_creation.jac,sha256=B9VlwYayHYBUsAKpiapPgv93apMXiWcILJ13hXyAOCs,624
199
+ jaclang/tests/fixtures/architype_def_bug.jac,sha256=Z5GsP0vLMlrZf42uCkRh27eBfkB3-sln0KRpkmnOO40,265
196
200
  jaclang/tests/fixtures/arithmetic_bug.jac,sha256=iiO3ZwTi7R1U6-flV4tGbxDHXsw8GnaLEzVNGTPdMUA,135
197
201
  jaclang/tests/fixtures/assign_compr.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4JFNEuUs5iM,286
198
202
  jaclang/tests/fixtures/assign_compr_dup.jac,sha256=rnoujdtpjNbem4IdtBfxPahSUXl-gxNv4JFNEuUs5iM,286
@@ -209,6 +213,7 @@ jaclang/tests/fixtures/circle_pysolo.py,sha256=TAJTCOjrUl80oDke5wl6ZyBJQsy37Hu6g
209
213
  jaclang/tests/fixtures/cls_method.jac,sha256=FXvQzQpa00yvesEvnuZ9q0lA-dtGDeFR4sWLKZ4NJSc,737
210
214
  jaclang/tests/fixtures/create_dynamic_architype.jac,sha256=DTm761q0q6CRwduH3xyeCRs-epuPgZTRysWG_3fCxS8,846
211
215
  jaclang/tests/fixtures/dblhello.jac,sha256=2CKdYZj35AXzvA2SCBHhgvG5f0bnlpLdQ36eqKCmI-M,69
216
+ jaclang/tests/fixtures/decl_defn_param_name.jac,sha256=rZnJhg-2z9W5PCsid9_FXW31376jgVpkvsAO6pBqTe8,383
212
217
  jaclang/tests/fixtures/deep/deeper/deep_outer_import.jac,sha256=omdlOBM0cuUAHhmxYC02OcpXNowiA5wrIZOs7jQFHgE,233
213
218
  jaclang/tests/fixtures/deep/deeper/deep_outer_import2.jac,sha256=YlAclVAukzVeCNbXZU6iTl8Rj1uXpUJ1WR7Ei2vhbqc,252
214
219
  jaclang/tests/fixtures/deep/deeper/snd_lev.jac,sha256=SRp6Ic-MAgjcbYc090TwiFYsoVoJB4sLTA-Y5JPMpp8,82
@@ -262,6 +267,7 @@ jaclang/tests/fixtures/match_multi_ex.jac,sha256=05XB0B0yMWpA84pCvAnKnpXObpE5fcU
262
267
  jaclang/tests/fixtures/maxfail_run_test.jac,sha256=UMoJSwrmNL7mCI65P8XTKrsYgi7mFvwLS3Dd24BmR6k,160
263
268
  jaclang/tests/fixtures/mtest.impl.jac,sha256=wYsT4feH2JgxxgN217dgbDWooSmD8HBSlzUwJ4jAa8g,76
264
269
  jaclang/tests/fixtures/mtest.jac,sha256=i7aQpJuUw4YMXgJOvGn_lRx-TruJdqBClioPKGUd4mw,67
270
+ jaclang/tests/fixtures/multi_dim_array_split.jac,sha256=8M4wb-YLSvK5v-M3SBZ4RcNwfdO9hc--nM7TeoZC6mM,338
265
271
  jaclang/tests/fixtures/needs_import.jac,sha256=5zuIVuhgFbVAd7Hx2CDoTkjw39fp1UWC4Hitb_n-JKU,319
266
272
  jaclang/tests/fixtures/needs_import_1.jac,sha256=m8marIqHPo-waC5PIYeLq38N2QzRUJBJe1oUQADeiNY,104
267
273
  jaclang/tests/fixtures/needs_import_2.jac,sha256=RC4aok5TCbxInmTp8OmArCt4afawPP9ZdhAzkW5WJCc,104
@@ -300,8 +306,8 @@ jaclang/tests/fixtures/with_context.jac,sha256=cDA_4YWe5UVmQRgcpktzkZ_zsswQpV_T2
300
306
  jaclang/tests/foo/__init__.jac,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
307
  jaclang/tests/main.jac,sha256=UJ4dASLCMA3wW78Rq3AHcq5GfXVY5QBm2S16OCrR1hQ,13
302
308
  jaclang/tests/test_bugs.py,sha256=tBPsIlSPqZDIz4QaScNRT-WdGIdJ0uU-aRBWq1XUZ6o,555
303
- jaclang/tests/test_cli.py,sha256=pzkYDmyhDdFU1v8p27T3N17DnOgXhe-f8iFI-q3owp8,15850
304
- jaclang/tests/test_language.py,sha256=ktZhgYVeT1_RR7D6OEA_16OlLFpKVK5naO1V4m2deSg,48612
309
+ jaclang/tests/test_cli.py,sha256=NeaAND5r5040L_WeENQmRZSahuUZBthZV0D2gWkTNLk,16525
310
+ jaclang/tests/test_language.py,sha256=arJ-Ay8Ebnqv498B4tegjk_j9gv_dCQzUOqKxqbKuPM,50396
305
311
  jaclang/tests/test_man_code.py,sha256=ZdNarlZVfT_-8Jv3FjLplHw76tsvkCuISyfX3M4qxPg,5027
306
312
  jaclang/tests/test_reference.py,sha256=FISQpZbB8cmRoAeJOFfXUy13WVxykZjpkPSb1OTotfI,3340
307
313
  jaclang/tests/test_settings.py,sha256=TIX5uiu8H9IpZN2__uFiclcdCpBpPpcAwtlEHyFC4kk,1999
@@ -1535,7 +1541,7 @@ jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA,sha256=BeUQIa8cnYbrjW
1535
1541
  jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD,sha256=XS4fBVrPI7kaNZ56Ggl2RGa76jySWLqTzcrUpZIQTVM,418
1536
1542
  jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
1537
1543
  jaclang/vendor/typing_extensions.py,sha256=gwekpyG9DVG3lxWKX4ni8u7nk3We5slG98mA9F3DJQw,134451
1538
- jaclang-0.7.25.dist-info/METADATA,sha256=Z9pmxYuQBoKzqaxdUdSceDoh3Jrp_hNfgkcji7cgeA0,4965
1539
- jaclang-0.7.25.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1540
- jaclang-0.7.25.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1541
- jaclang-0.7.25.dist-info/RECORD,,
1544
+ jaclang-0.7.27.dist-info/METADATA,sha256=cV-TTH-3xthCP6EsxBV_KuxpqbGGAsM145QLg6wqlKs,4965
1545
+ jaclang-0.7.27.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1546
+ jaclang-0.7.27.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1547
+ jaclang-0.7.27.dist-info/RECORD,,