jaclang 0.6.0__py3-none-any.whl → 0.6.1__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.
- jaclang/cli/cli.py +90 -3
- jaclang/cli/cmdreg.py +18 -6
- jaclang/compiler/absyntree.py +1 -2
- jaclang/compiler/generated/jac_parser.py +1 -1
- jaclang/compiler/parser.py +1 -1
- jaclang/compiler/passes/main/def_impl_match_pass.py +4 -1
- jaclang/compiler/passes/main/fuse_typeinfo_pass.py +10 -7
- jaclang/compiler/passes/main/import_pass.py +39 -22
- jaclang/compiler/passes/main/pyast_gen_pass.py +6 -57
- jaclang/compiler/passes/main/pyjac_ast_link_pass.py +218 -0
- jaclang/compiler/passes/main/schedules.py +2 -0
- jaclang/compiler/passes/main/sym_tab_build_pass.py +9 -3
- jaclang/compiler/passes/main/tests/test_import_pass.py +11 -0
- jaclang/core/aott.py +10 -1
- jaclang/core/construct.py +157 -21
- jaclang/core/importer.py +6 -2
- jaclang/core/memory.py +48 -0
- jaclang/core/shelve_storage.py +55 -0
- jaclang/plugin/__init__.py +1 -2
- jaclang/plugin/builtin.py +1 -1
- jaclang/plugin/default.py +97 -4
- jaclang/plugin/feature.py +28 -9
- jaclang/plugin/spec.py +45 -10
- jaclang/plugin/tests/test_jaseci.py +219 -0
- jaclang/utils/treeprinter.py +7 -2
- {jaclang-0.6.0.dist-info → jaclang-0.6.1.dist-info}/METADATA +1 -1
- {jaclang-0.6.0.dist-info → jaclang-0.6.1.dist-info}/RECORD +30 -26
- {jaclang-0.6.0.dist-info → jaclang-0.6.1.dist-info}/WHEEL +0 -0
- {jaclang-0.6.0.dist-info → jaclang-0.6.1.dist-info}/entry_points.txt +0 -0
- {jaclang-0.6.0.dist-info → jaclang-0.6.1.dist-info}/top_level.txt +0 -0
jaclang/plugin/spec.py
CHANGED
|
@@ -3,18 +3,21 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import types
|
|
6
|
-
from
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from typing import Any, Callable, Optional, TYPE_CHECKING, Type, TypeVar, Union
|
|
7
8
|
|
|
8
9
|
from jaclang.compiler.absyntree import Module
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from jaclang.core.construct import EdgeArchitype, NodeArchitype
|
|
13
|
+
from jaclang.plugin.default import (
|
|
14
|
+
Architype,
|
|
15
|
+
EdgeDir,
|
|
16
|
+
ExecutionContext,
|
|
17
|
+
WalkerArchitype,
|
|
18
|
+
Root,
|
|
19
|
+
)
|
|
20
|
+
from jaclang.core.memory import Memory
|
|
18
21
|
|
|
19
22
|
import pluggy
|
|
20
23
|
|
|
@@ -23,9 +26,41 @@ hookspec = pluggy.HookspecMarker("jac")
|
|
|
23
26
|
T = TypeVar("T")
|
|
24
27
|
|
|
25
28
|
|
|
29
|
+
# TODO: DSFunc should be moved into jaclang/core
|
|
30
|
+
@dataclass(eq=False)
|
|
31
|
+
class DSFunc:
|
|
32
|
+
"""Data Spatial Function."""
|
|
33
|
+
|
|
34
|
+
name: str
|
|
35
|
+
trigger: type | types.UnionType | tuple[type | types.UnionType, ...] | None
|
|
36
|
+
func: Callable[[Any, Any], Any] | None = None
|
|
37
|
+
|
|
38
|
+
def resolve(self, cls: type) -> None:
|
|
39
|
+
"""Resolve the function."""
|
|
40
|
+
self.func = getattr(cls, self.name)
|
|
41
|
+
|
|
42
|
+
|
|
26
43
|
class JacFeatureSpec:
|
|
27
44
|
"""Jac Feature."""
|
|
28
45
|
|
|
46
|
+
@staticmethod
|
|
47
|
+
@hookspec(firstresult=True)
|
|
48
|
+
def context(session: str = "") -> ExecutionContext:
|
|
49
|
+
"""Get the execution context."""
|
|
50
|
+
raise NotImplementedError
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
@hookspec(firstresult=True)
|
|
54
|
+
def reset_context() -> None:
|
|
55
|
+
"""Reset the execution context."""
|
|
56
|
+
raise NotImplementedError
|
|
57
|
+
|
|
58
|
+
@staticmethod
|
|
59
|
+
@hookspec(firstresult=True)
|
|
60
|
+
def memory_hook() -> Memory | None:
|
|
61
|
+
"""Create memory abstraction."""
|
|
62
|
+
raise NotImplementedError
|
|
63
|
+
|
|
29
64
|
@staticmethod
|
|
30
65
|
@hookspec(firstresult=True)
|
|
31
66
|
def make_architype(
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"""Test for jaseci plugin."""
|
|
2
|
+
|
|
3
|
+
import io
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
from jaclang.cli import cli
|
|
8
|
+
from jaclang.utils.test import TestCase
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TestJaseciPlugin(TestCase):
|
|
12
|
+
"""Test jaseci plugin."""
|
|
13
|
+
|
|
14
|
+
def setUp(self) -> None:
|
|
15
|
+
"""Set up test."""
|
|
16
|
+
super().setUp()
|
|
17
|
+
|
|
18
|
+
def tearDown(self) -> None:
|
|
19
|
+
"""Tear down test."""
|
|
20
|
+
super().tearDown()
|
|
21
|
+
sys.stdout = sys.__stdout__
|
|
22
|
+
|
|
23
|
+
def _output2buffer(self) -> None:
|
|
24
|
+
"""Start capturing output."""
|
|
25
|
+
self.capturedOutput = io.StringIO()
|
|
26
|
+
sys.stdout = self.capturedOutput
|
|
27
|
+
|
|
28
|
+
def _output2std(self) -> None:
|
|
29
|
+
"""Redirect output back to stdout."""
|
|
30
|
+
sys.stdout = sys.__stdout__
|
|
31
|
+
|
|
32
|
+
def _del_session(self, session: str) -> None:
|
|
33
|
+
if os.path.exists(session):
|
|
34
|
+
os.remove(session)
|
|
35
|
+
|
|
36
|
+
def test_walker_simple_persistent(self) -> None:
|
|
37
|
+
"""Test simple persistent object."""
|
|
38
|
+
session = self.fixture_abs_path("test_walker_simple_persistent.session")
|
|
39
|
+
self._output2buffer()
|
|
40
|
+
cli.run(
|
|
41
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
42
|
+
session=session,
|
|
43
|
+
walker="create",
|
|
44
|
+
)
|
|
45
|
+
cli.run(
|
|
46
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
47
|
+
session=session,
|
|
48
|
+
walker="traverse",
|
|
49
|
+
)
|
|
50
|
+
output = self.capturedOutput.getvalue().strip()
|
|
51
|
+
self.assertEqual(output, "node a\nnode b")
|
|
52
|
+
self._del_session(session)
|
|
53
|
+
|
|
54
|
+
def test_entrypoint_root(self) -> None:
|
|
55
|
+
"""Test entrypoint being root."""
|
|
56
|
+
session = self.fixture_abs_path("test_entrypoint_root.session")
|
|
57
|
+
cli.run(
|
|
58
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
59
|
+
session=session,
|
|
60
|
+
walker="create",
|
|
61
|
+
)
|
|
62
|
+
obj = cli.get_object(session=session, id="root")
|
|
63
|
+
self._output2buffer()
|
|
64
|
+
cli.run(
|
|
65
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
66
|
+
session=session,
|
|
67
|
+
node=str(obj["_jac_"]["id"]),
|
|
68
|
+
walker="traverse",
|
|
69
|
+
)
|
|
70
|
+
output = self.capturedOutput.getvalue().strip()
|
|
71
|
+
self.assertEqual(output, "node a\nnode b")
|
|
72
|
+
self._del_session(session)
|
|
73
|
+
|
|
74
|
+
def test_entrypoint_non_root(self) -> None:
|
|
75
|
+
"""Test entrypoint being non root node."""
|
|
76
|
+
session = self.fixture_abs_path("test_entrypoint_non_root.session")
|
|
77
|
+
cli.run(
|
|
78
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
79
|
+
session=session,
|
|
80
|
+
walker="create",
|
|
81
|
+
)
|
|
82
|
+
obj = cli.get_object(session=session, id="root")
|
|
83
|
+
edge_obj = cli.get_object(session=session, id=str(obj["_jac_"]["edge_ids"][0]))
|
|
84
|
+
a_obj = cli.get_object(session=session, id=str(edge_obj["_jac_"]["target_id"]))
|
|
85
|
+
self._output2buffer()
|
|
86
|
+
cli.run(
|
|
87
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
88
|
+
session=session,
|
|
89
|
+
node=str(a_obj["_jac_"]["id"]),
|
|
90
|
+
walker="traverse",
|
|
91
|
+
)
|
|
92
|
+
output = self.capturedOutput.getvalue().strip()
|
|
93
|
+
self.assertEqual(output, "node a\nnode b")
|
|
94
|
+
self._del_session(session)
|
|
95
|
+
|
|
96
|
+
def test_get_edge(self) -> None:
|
|
97
|
+
"""Test get an edge object."""
|
|
98
|
+
session = self.fixture_abs_path("test_get_edge.session")
|
|
99
|
+
cli.run(
|
|
100
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
101
|
+
session=session,
|
|
102
|
+
)
|
|
103
|
+
obj = cli.get_object(session=session, id="root")
|
|
104
|
+
self.assertEqual(len(obj["_jac_"]["edge_ids"]), 2)
|
|
105
|
+
edge_objs = [
|
|
106
|
+
cli.get_object(session=session, id=str(e_id))
|
|
107
|
+
for e_id in obj["_jac_"]["edge_ids"]
|
|
108
|
+
]
|
|
109
|
+
node_ids = [obj["_jac_"]["target_id"] for obj in edge_objs]
|
|
110
|
+
node_objs = [cli.get_object(session=session, id=str(n_id)) for n_id in node_ids]
|
|
111
|
+
self.assertEqual(len(node_objs), 2)
|
|
112
|
+
self.assertEqual({obj["tag"] for obj in node_objs}, {"first", "second"})
|
|
113
|
+
self._del_session(session)
|
|
114
|
+
|
|
115
|
+
def test_filter_on_edge_get_edge(self) -> None:
|
|
116
|
+
"""Test filtering on edge."""
|
|
117
|
+
session = self.fixture_abs_path("test_filter_on_edge_get_edge.session")
|
|
118
|
+
cli.run(
|
|
119
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
120
|
+
session=session,
|
|
121
|
+
)
|
|
122
|
+
self._output2buffer()
|
|
123
|
+
cli.run(
|
|
124
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
125
|
+
session=session,
|
|
126
|
+
walker="filter_on_edge_get_edge",
|
|
127
|
+
)
|
|
128
|
+
self.assertEqual(
|
|
129
|
+
self.capturedOutput.getvalue().strip(), "[simple_edge(index=1)]"
|
|
130
|
+
)
|
|
131
|
+
self._del_session(session)
|
|
132
|
+
|
|
133
|
+
def test_filter_on_edge_get_node(self) -> None:
|
|
134
|
+
"""Test filtering on edge, then get node."""
|
|
135
|
+
session = self.fixture_abs_path("test_filter_on_edge_get_node.session")
|
|
136
|
+
cli.run(
|
|
137
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
138
|
+
session=session,
|
|
139
|
+
)
|
|
140
|
+
self._output2buffer()
|
|
141
|
+
cli.run(
|
|
142
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
143
|
+
session=session,
|
|
144
|
+
walker="filter_on_edge_get_node",
|
|
145
|
+
)
|
|
146
|
+
self.assertEqual(
|
|
147
|
+
self.capturedOutput.getvalue().strip(), "[simple(tag='second')]"
|
|
148
|
+
)
|
|
149
|
+
self._del_session(session)
|
|
150
|
+
|
|
151
|
+
def test_filter_on_node_get_node(self) -> None:
|
|
152
|
+
"""Test filtering on node, then get edge."""
|
|
153
|
+
session = self.fixture_abs_path("test_filter_on_node_get_node.session")
|
|
154
|
+
cli.run(
|
|
155
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
156
|
+
session=session,
|
|
157
|
+
)
|
|
158
|
+
self._output2buffer()
|
|
159
|
+
cli.run(
|
|
160
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
161
|
+
session=session,
|
|
162
|
+
walker="filter_on_node_get_node",
|
|
163
|
+
)
|
|
164
|
+
self.assertEqual(
|
|
165
|
+
self.capturedOutput.getvalue().strip(), "[simple(tag='second')]"
|
|
166
|
+
)
|
|
167
|
+
self._del_session(session)
|
|
168
|
+
|
|
169
|
+
def test_filter_on_edge_visit(self) -> None:
|
|
170
|
+
"""Test filtering on edge, then visit."""
|
|
171
|
+
session = self.fixture_abs_path("test_filter_on_edge_visit.session")
|
|
172
|
+
cli.run(
|
|
173
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
174
|
+
session=session,
|
|
175
|
+
)
|
|
176
|
+
self._output2buffer()
|
|
177
|
+
cli.run(
|
|
178
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
179
|
+
session=session,
|
|
180
|
+
walker="filter_on_edge_visit",
|
|
181
|
+
)
|
|
182
|
+
self.assertEqual(self.capturedOutput.getvalue().strip(), "simple(tag='first')")
|
|
183
|
+
self._del_session(session)
|
|
184
|
+
|
|
185
|
+
def test_filter_on_node_visit(self) -> None:
|
|
186
|
+
"""Test filtering on node, then visit."""
|
|
187
|
+
session = self.fixture_abs_path("test_filter_on_node_visit.session")
|
|
188
|
+
cli.run(
|
|
189
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
190
|
+
session=session,
|
|
191
|
+
)
|
|
192
|
+
self._output2buffer()
|
|
193
|
+
cli.run(
|
|
194
|
+
filename=self.fixture_abs_path("simple_node_connection.jac"),
|
|
195
|
+
session=session,
|
|
196
|
+
walker="filter_on_node_visit",
|
|
197
|
+
)
|
|
198
|
+
self.assertEqual(self.capturedOutput.getvalue().strip(), "simple(tag='first')")
|
|
199
|
+
self._del_session(session)
|
|
200
|
+
|
|
201
|
+
def test_indirect_reference_node(self) -> None:
|
|
202
|
+
"""Test reference node indirectly without visiting."""
|
|
203
|
+
session = self.fixture_abs_path("test_indirect_reference_node.session")
|
|
204
|
+
cli.run(
|
|
205
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
206
|
+
session=session,
|
|
207
|
+
walker="create",
|
|
208
|
+
)
|
|
209
|
+
self._output2buffer()
|
|
210
|
+
cli.run(
|
|
211
|
+
filename=self.fixture_abs_path("simple_persistent.jac"),
|
|
212
|
+
session=session,
|
|
213
|
+
walker="indirect_ref",
|
|
214
|
+
)
|
|
215
|
+
self.assertEqual(
|
|
216
|
+
self.capturedOutput.getvalue().strip(),
|
|
217
|
+
"[b(name='node b')]\n[GenericEdge]",
|
|
218
|
+
)
|
|
219
|
+
self._del_session(session)
|
jaclang/utils/treeprinter.py
CHANGED
|
@@ -93,12 +93,17 @@ def print_ast_tree(
|
|
|
93
93
|
if isinstance(node, ast.AstAccessNode) and node.access is not None
|
|
94
94
|
else ""
|
|
95
95
|
)
|
|
96
|
+
sym_table_link = (
|
|
97
|
+
f", SymbolTable: {node.sym_info.typ_sym_table.name}"
|
|
98
|
+
if isinstance(node, AstSymbolNode) and node.sym_info.typ_sym_table
|
|
99
|
+
else ", SymbolTable: None" if isinstance(node, AstSymbolNode) else ""
|
|
100
|
+
)
|
|
96
101
|
if isinstance(node, Token) and isinstance(node, AstSymbolNode):
|
|
97
|
-
return f"{node.__class__.__name__} - {node.value} - Type: {node.sym_info.typ}, {access}"
|
|
102
|
+
return f"{node.__class__.__name__} - {node.value} - Type: {node.sym_info.typ}, {access} {sym_table_link}"
|
|
98
103
|
elif isinstance(node, Token):
|
|
99
104
|
return f"{node.__class__.__name__} - {node.value}, {access}"
|
|
100
105
|
elif isinstance(node, AstSymbolNode):
|
|
101
|
-
return f"{node.__class__.__name__} - {node.sym_name} - Type: {node.sym_info.typ}, {access}"
|
|
106
|
+
return f"{node.__class__.__name__} - {node.sym_name} - Type: {node.sym_info.typ}, {access} {sym_table_link}"
|
|
102
107
|
else:
|
|
103
108
|
return f"{node.__class__.__name__}, {access}"
|
|
104
109
|
|
|
@@ -1,41 +1,42 @@
|
|
|
1
1
|
jaclang/__init__.py,sha256=vTvt9LIz5RNKrLRueH3gUM3KTAjsqoanHQ_Pn9m4i9g,675
|
|
2
2
|
jaclang/settings.py,sha256=2bLDsF1xiFI9VL8vEIPZ5A5Q-XQ9hfK9lIszH99nKkc,3156
|
|
3
3
|
jaclang/cli/__init__.py,sha256=7aaPgYddIAHBvkdv36ngbfwsimMnfGaTDcaHYMg_vf4,23
|
|
4
|
-
jaclang/cli/cli.py,sha256=
|
|
5
|
-
jaclang/cli/cmdreg.py,sha256=
|
|
4
|
+
jaclang/cli/cli.py,sha256=ebyAI2if_uNOOnmr0fFWZfi0yDHrcHLs_64t_a7vccI,13114
|
|
5
|
+
jaclang/cli/cmdreg.py,sha256=u0jAd6A8czt7tBgPBBKBhYAG4By1FrjEGaTU2XFKeYs,8372
|
|
6
6
|
jaclang/compiler/__init__.py,sha256=Fq2rBjvbFxTbolEC872X5CicOjyJmKo0yZlnUcChg6k,3119
|
|
7
|
-
jaclang/compiler/absyntree.py,sha256=
|
|
7
|
+
jaclang/compiler/absyntree.py,sha256=FdXLGp2FR5PqqEeDhZ-yidoA1xxontQrqTDZcmQmuvc,126904
|
|
8
8
|
jaclang/compiler/codeloc.py,sha256=KMwf5OMQu3_uDjIdH7ta2piacUtXNPgUV1t8OuLjpzE,2828
|
|
9
9
|
jaclang/compiler/compile.py,sha256=fS6Uvor93EavESKrwadqp7bstcpMRRACvBkqbr4En04,2682
|
|
10
10
|
jaclang/compiler/constant.py,sha256=C8nOgWLAg-fRg8Qax_jRcYp6jGyWSSA1gwzk9Zdy7HE,6534
|
|
11
11
|
jaclang/compiler/jac.lark,sha256=Kvq5zZbQMJ-1bdXLVuCafRVS9w91UfN-0nLnEq0gOSw,17019
|
|
12
|
-
jaclang/compiler/parser.py,sha256=
|
|
12
|
+
jaclang/compiler/parser.py,sha256=7MCxaVZ_yyAR7YZ8zsFa4G_JkIUANh-HgB6v0MPjEfM,138178
|
|
13
13
|
jaclang/compiler/symtable.py,sha256=f-9c3eQJTDhEG22kYC3Vd4i5gRWf77_CsqFm7t8Wsng,6031
|
|
14
14
|
jaclang/compiler/workspace.py,sha256=I1MF2jaSylDOcQQV4Ez3svi4FdOyfmbNupuZT7q9aFQ,7797
|
|
15
15
|
jaclang/compiler/generated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
jaclang/compiler/generated/jac_parser.py,sha256=
|
|
16
|
+
jaclang/compiler/generated/jac_parser.py,sha256=UQAJYoyhoTtWbpZSyz5otTI7G30DaZWrtnj8RELvqDw,338438
|
|
17
17
|
jaclang/compiler/passes/__init__.py,sha256=0Tw0d130ZjzA05jVcny9cf5NfLjlaM70PKqFnY4zqn4,69
|
|
18
18
|
jaclang/compiler/passes/ir_pass.py,sha256=gh1Zd8ouu79FoxerW1sMxktmfeC9gHyp4H_MoAviYP8,5504
|
|
19
19
|
jaclang/compiler/passes/transform.py,sha256=Z3TuHMJ7TyyBHt0XmRWEjMk8-t6logKs7XG_OTDJIvo,2162
|
|
20
20
|
jaclang/compiler/passes/main/__init__.py,sha256=m8vZ0F6EiwOm0e0DWKRYgc8JcgiT2ayBrY6GojZkTfY,945
|
|
21
21
|
jaclang/compiler/passes/main/access_modifier_pass.py,sha256=1tQJ9bNlOVX3sgL0DK4jv643Pu5xl68oL8LNsaHf-MY,4864
|
|
22
|
-
jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=
|
|
22
|
+
jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=L78FrCoUsflxGueKITda_idfwZOo4dbr68bzmwXyKUQ,3442
|
|
23
23
|
jaclang/compiler/passes/main/def_use_pass.py,sha256=d2REmfme2HjUj8avDcXUuPbv3yKfvYHqpL49sxniLhQ,8576
|
|
24
|
-
jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=
|
|
25
|
-
jaclang/compiler/passes/main/import_pass.py,sha256=
|
|
26
|
-
jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=
|
|
24
|
+
jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=Y7pQSmeCxGcn3X912A_u-JqKV6pxn-7bwXsOhVmgYko,15944
|
|
25
|
+
jaclang/compiler/passes/main/import_pass.py,sha256=Ac_vpWDmGqg9Tv5OfOFjRrT43QHu2BdzVaLCmFnHxRc,7482
|
|
26
|
+
jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=sL5VIR2cT_NQYlyFopZz5XSXjQcisltVwdmLL8pXf3w,136197
|
|
27
27
|
jaclang/compiler/passes/main/pyast_load_pass.py,sha256=UDbosNQ88CcfSW1wKBYgLRz3ZBxpJ8cGwpn_KZaYvvk,89725
|
|
28
28
|
jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=CjA9AqyMO3Pv_b5Hh0YI6JmCqIru2ASonO6rhrkau-M,1336
|
|
29
|
+
jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=K5jNHRPrFcC_-RbgY7lngSNSDQLQr27N31_aUrGUACo,7864
|
|
29
30
|
jaclang/compiler/passes/main/pyout_pass.py,sha256=clJkASFiBiki5w0MQXYIwcdvahYETgqAjKlYOYVYKNQ,3137
|
|
30
31
|
jaclang/compiler/passes/main/registry_pass.py,sha256=Lp_EqlflXkSgQuJe_EVBtzC16YAJx70bDO6X0nJIX5U,4579
|
|
31
|
-
jaclang/compiler/passes/main/schedules.py,sha256=
|
|
32
|
+
jaclang/compiler/passes/main/schedules.py,sha256=oTH2EvvopLdmrtPl8b-CENWAPviIZe7qNLOuODJ5Iuw,1253
|
|
32
33
|
jaclang/compiler/passes/main/sub_node_tab_pass.py,sha256=fGgK0CBWsuD6BS4BsLwXPl1b5UC2N2YEOGa6jNMu8N8,1332
|
|
33
|
-
jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=
|
|
34
|
+
jaclang/compiler/passes/main/sym_tab_build_pass.py,sha256=1bUU-p0zCoLoF7_HgLr2FKxUuc_4y2O7-5FSJD8mfWc,42020
|
|
34
35
|
jaclang/compiler/passes/main/type_check_pass.py,sha256=-f41Ukr3B1w4rkQdZ2xJy6nozymgnVKjJ8E1fn7qJmI,3339
|
|
35
36
|
jaclang/compiler/passes/main/tests/__init__.py,sha256=UBAATLUEH3yuBN4LYKnXXV79kokRc4XB-rX12qfu0ds,28
|
|
36
37
|
jaclang/compiler/passes/main/tests/test_decl_def_match_pass.py,sha256=QDsvTEpJt3AuS3GRwfq-1mezRCpx7rwEEyg1AbusaBs,1374
|
|
37
38
|
jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=dmyZgXugOCN-_YY7dxkNHgt8vqey8qzNJf8sWyLLZ5w,1013
|
|
38
|
-
jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=
|
|
39
|
+
jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=2oRz8lO1ORiTn36NkkshpXeT_K0L_jM8KZuvxgVzbbE,1141
|
|
39
40
|
jaclang/compiler/passes/main/tests/test_pyast_build_pass.py,sha256=LIT4TP-nhtftRtY5rNySRQlim-dWMSlkfUvkhZTk4pc,1383
|
|
40
41
|
jaclang/compiler/passes/main/tests/test_pyast_gen_pass.py,sha256=fNL_FS26AQGlRCvwWfl-Qyt7iW2_A99GIHOAnnkpw9A,4731
|
|
41
42
|
jaclang/compiler/passes/main/tests/test_pybc_gen_pass.py,sha256=If8PE4exN5g9o1NRElNC0XdfIwJAp7M7f69rzmYRYUQ,655
|
|
@@ -61,10 +62,12 @@ jaclang/compiler/tests/test_workspace.py,sha256=SEBcvz_daTbonrLHK9FbjiH86TUbOtVG
|
|
|
61
62
|
jaclang/compiler/tests/fixtures/__init__.py,sha256=udQ0T6rajpW_nMiYKJNckqP8izZ-pH3P4PNTJEln2NU,36
|
|
62
63
|
jaclang/compiler/tests/fixtures/activity.py,sha256=fSvxYDKufsPeQIrbuh031zHw_hdbRv5iK9mS7dD8E54,263
|
|
63
64
|
jaclang/core/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
|
|
64
|
-
jaclang/core/aott.py,sha256=
|
|
65
|
-
jaclang/core/construct.py,sha256=
|
|
66
|
-
jaclang/core/importer.py,sha256=
|
|
65
|
+
jaclang/core/aott.py,sha256=MMFmel9cf1KrREjLUY9vV0b38pdb_4N3pxe5jMedBYA,7582
|
|
66
|
+
jaclang/core/construct.py,sha256=ZwgOO-P2OTv8d7mnxBkRg-AitrzYxsbFNqJZjRE9YqM,18649
|
|
67
|
+
jaclang/core/importer.py,sha256=JW_bxxEASklIBjezBiDaor95X6JLRUFspnN-zImtY8E,6100
|
|
68
|
+
jaclang/core/memory.py,sha256=QDOtAlxARQ_pg6NkmZ_QYKWhnIHzd2Mm1jzZUck7pRY,1415
|
|
67
69
|
jaclang/core/registry.py,sha256=4uuXahPN4SMVEWwJ6Gjm5LM14rePMGoyjQtSbDQmQZs,4178
|
|
70
|
+
jaclang/core/shelve_storage.py,sha256=UsZRHM8KPGUlZTX_bfcxzabInNrTaQVNMatQifycMYg,1692
|
|
68
71
|
jaclang/core/utils.py,sha256=5e4DyjtSweFxKeIuEyeYGV2MsuTtfnncfIwRdoyFdys,7736
|
|
69
72
|
jaclang/core/llms/__init__.py,sha256=hxuxduH6ahhkXgJ9eUkhfn8LCS1KTz1ESuYgtspu_c0,371
|
|
70
73
|
jaclang/core/llms/anthropic.py,sha256=JmgKLUTk27Hg221rt4QBLRjonxE_qLkkSgZuLFZUrCg,1979
|
|
@@ -75,19 +78,20 @@ jaclang/core/llms/ollama.py,sha256=mlNf844qgiBizVRRBfQt-pM8sN6dX7ESqdo2SXu8aE0,2
|
|
|
75
78
|
jaclang/core/llms/openai.py,sha256=uG4BIW8x9NhWMhy9taqb4esIa3POO_cezsZ7ZclLan8,1975
|
|
76
79
|
jaclang/core/llms/togetherai.py,sha256=MTPz7QasO2MjDn8hVCjOVU3SO6H6pF9Qoh7ZHmx46yw,2005
|
|
77
80
|
jaclang/core/llms/utils.py,sha256=mTpROnh4qS8fE26TkcotSt-mAqWoSeEeRBOu0SgoPmA,219
|
|
78
|
-
jaclang/plugin/__init__.py,sha256=
|
|
79
|
-
jaclang/plugin/builtin.py,sha256=
|
|
80
|
-
jaclang/plugin/default.py,sha256=
|
|
81
|
-
jaclang/plugin/feature.py,sha256=
|
|
82
|
-
jaclang/plugin/spec.py,sha256=
|
|
81
|
+
jaclang/plugin/__init__.py,sha256=5t2krHKt_44PrCTGojzxEimxpNHYVQcn89jAiCSXE_k,165
|
|
82
|
+
jaclang/plugin/builtin.py,sha256=PP2Vs4p_oDbGYEx0iBFDYH49I4uSRnNVWgx2aOzorVA,1187
|
|
83
|
+
jaclang/plugin/default.py,sha256=EegsveW7I41Pvkh261LVr3smC08rcbUXLBkrhLTh9mY,27142
|
|
84
|
+
jaclang/plugin/feature.py,sha256=Qi30JWJvt51s9nx3eJ0_BSTYIeTYLHe-e26y0IjJLz8,9444
|
|
85
|
+
jaclang/plugin/spec.py,sha256=mJRUMGaIhlHbZIvO2J-A1q3eNhnIWJ0iBCPmxhHiHx4,9043
|
|
83
86
|
jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
|
|
84
87
|
jaclang/plugin/tests/test_features.py,sha256=uNQ52HHc0GiOGg5xUZk-ddafdtud0IHN4H_EUAs4er4,3547
|
|
88
|
+
jaclang/plugin/tests/test_jaseci.py,sha256=XcVL-FOZMTsjJEZqCa-rcYyEPl1dxdFFu9vhvm8kUaI,7956
|
|
85
89
|
jaclang/utils/__init__.py,sha256=86LQ_LDyWV-JFkYBpeVHpLaVxkqwFDP60XpWXOFZIQk,46
|
|
86
90
|
jaclang/utils/helpers.py,sha256=6tfu2paCSSAUzJMZlMVl4ftbf9HOWN4TaJz7U-S0G1g,5831
|
|
87
91
|
jaclang/utils/lang_tools.py,sha256=odv66Os8bJvw9JIUUkccGWvEPL98c-60veAiOiNyTy4,9956
|
|
88
92
|
jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
|
|
89
93
|
jaclang/utils/test.py,sha256=7-2Te0GQcKY3RJfNKa3cEJjG-RMC1r-0fHuOcFXrmE8,5383
|
|
90
|
-
jaclang/utils/treeprinter.py,sha256=
|
|
94
|
+
jaclang/utils/treeprinter.py,sha256=v9VSvo23fgyqwImpI07BbTMcIT9hIhP3qpKrUorQqMw,11414
|
|
91
95
|
jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
|
|
92
96
|
jaclang/utils/tests/test_lang_tools.py,sha256=YmV1AWieSoqcxWJYnxX1Lz3dZAR0rRvz6billsGJdHY,4144
|
|
93
97
|
jaclang/vendor/__init__.py,sha256=pbflH5hBfDiKfTJEjIXId44Eof8CVmXQlZwFYDG6_4E,35
|
|
@@ -419,8 +423,8 @@ jaclang/vendor/pluggy/_manager.py,sha256=fcYU7VER0CplRym4jAJ7RCFYl6cfDSeVM589YHH
|
|
|
419
423
|
jaclang/vendor/pluggy/_result.py,sha256=wXDoVy68bOaOrBzQ0bWFb3HTbpqhvdQMgYwaZvfzxfA,3239
|
|
420
424
|
jaclang/vendor/pluggy/_tracing.py,sha256=kSBr25F_rNklV2QhLD6h1jx6Z1kcKDRbuYvF5jv35pU,2089
|
|
421
425
|
jaclang/vendor/pluggy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
422
|
-
jaclang-0.6.
|
|
423
|
-
jaclang-0.6.
|
|
424
|
-
jaclang-0.6.
|
|
425
|
-
jaclang-0.6.
|
|
426
|
-
jaclang-0.6.
|
|
426
|
+
jaclang-0.6.1.dist-info/METADATA,sha256=S-qS3kFV3qS56zFcgi913MsaleTwimf3H-rfNgW-J6Y,546
|
|
427
|
+
jaclang-0.6.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
428
|
+
jaclang-0.6.1.dist-info/entry_points.txt,sha256=Z-snS3MDBdV1Z4znXDZTenyyndovaNjqRkDW1t2kYSs,50
|
|
429
|
+
jaclang-0.6.1.dist-info/top_level.txt,sha256=ZOAoLpE67ozkUJd-v3C59wBNXiteRD8IWPbsYB3M08g,8
|
|
430
|
+
jaclang-0.6.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|