jaclang 0.7.17__py3-none-any.whl → 0.7.18__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 CHANGED
@@ -8,7 +8,6 @@ import pickle
8
8
  import shutil
9
9
  import types
10
10
  from typing import Optional
11
- from uuid import UUID
12
11
 
13
12
  import jaclang.compiler.absyntree as ast
14
13
  from jaclang import jac_import
@@ -159,10 +158,9 @@ def get_object(
159
158
  raise ValueError("Not a valid file!\nOnly supports `.jac` and `.jir`")
160
159
 
161
160
  data = {}
162
- if id == "root":
163
- data = jctx.root.__getstate__()
164
- elif obj := jctx.mem.find_by_id(UUID(id)):
165
- data = obj.__getstate__()
161
+ obj = Jac.get_object(id)
162
+ if obj:
163
+ data = obj.__jac__.__getstate__()
166
164
  else:
167
165
  print(f"Object with id {id} not found.")
168
166
 
@@ -2641,6 +2641,31 @@ class PyastGenPass(Pass):
2641
2641
  ]
2642
2642
  elif node.op.name in [Tok.STAR_POW]:
2643
2643
  node.gen.py_ast = node.operand.gen.py_ast
2644
+ elif node.op.name in [Tok.BW_AND]:
2645
+ node.gen.py_ast = [
2646
+ self.sync(
2647
+ ast3.Call(
2648
+ func=self.sync(
2649
+ ast3.Attribute(
2650
+ value=self.sync(
2651
+ ast3.Name(id=Con.JAC_FEATURE.value, ctx=ast3.Load())
2652
+ ),
2653
+ attr="get_object",
2654
+ ctx=ast3.Load(),
2655
+ )
2656
+ ),
2657
+ args=[],
2658
+ keywords=[
2659
+ self.sync(
2660
+ ast3.keyword(
2661
+ arg="id",
2662
+ value=node.operand.gen.py_ast[0],
2663
+ )
2664
+ ),
2665
+ ],
2666
+ )
2667
+ )
2668
+ ]
2644
2669
  else:
2645
2670
  self.ice(f"Unknown Unary operator {node.op.value}")
2646
2671
 
@@ -1562,6 +1562,8 @@ class JacFormatPass(Pass):
1562
1562
  self.emit(node, f"not {node.operand.gen.jac}")
1563
1563
  elif node.op.name in [Tok.PIPE_FWD, Tok.KW_SPAWN, Tok.A_PIPE_FWD]:
1564
1564
  self.emit(node, f"{node.op.value} {node.operand.gen.jac}")
1565
+ elif node.op.name in [Tok.BW_AND]:
1566
+ self.emit(node, f"{node.op.value}{node.operand.gen.jac}")
1565
1567
  else:
1566
1568
  self.error(f"Unary operator {node.op.value} not supported in bootstrap Jac")
1567
1569
 
@@ -22,8 +22,7 @@ from jaclang.langserve.utils import (
22
22
  find_deepest_symbol_node_at_pos,
23
23
  find_index,
24
24
  gen_diagnostics,
25
- get_item_path,
26
- get_mod_path,
25
+ get_location_range,
27
26
  get_symbols_for_outline,
28
27
  parse_symbol_path,
29
28
  resolve_completion_symbol_table,
@@ -335,8 +334,9 @@ class JacLangServer(LanguageServer):
335
334
  and node_selected.parent
336
335
  and isinstance(node_selected.parent, ast.ModulePath)
337
336
  ):
338
- spec = get_mod_path(node_selected.parent, node_selected)
337
+ spec = node_selected.parent.abs_path
339
338
  if spec:
339
+ spec = spec[5:] if spec.startswith("File:") else spec
340
340
  return lspt.Location(
341
341
  uri=uris.from_fs_path(spec),
342
342
  range=lspt.Range(
@@ -349,19 +349,28 @@ class JacLangServer(LanguageServer):
349
349
  elif node_selected.parent and isinstance(
350
350
  node_selected.parent, ast.ModuleItem
351
351
  ):
352
- path_range = get_item_path(node_selected.parent)
353
- if path_range:
354
- path, loc_range = path_range
355
- if path and loc_range:
356
- return lspt.Location(
357
- uri=uris.from_fs_path(path),
358
- range=lspt.Range(
359
- start=lspt.Position(line=loc_range[0], character=0),
360
- end=lspt.Position(line=loc_range[1], character=5),
352
+ path = node_selected.parent.from_mod_path.abs_path
353
+ try: # TODO: Get rid of this when 'from' import is fixed
354
+ loc_range = tuple(
355
+ loc - 1 if loc > 0 else loc
356
+ for loc in get_location_range(node_selected.parent)
357
+ )
358
+ except ValueError:
359
+ loc_range = (0, 0, 0, 0)
360
+
361
+ if path and loc_range:
362
+ path = path[5:] if path.startswith("File:") else path
363
+ return lspt.Location(
364
+ uri=uris.from_fs_path(path),
365
+ range=lspt.Range(
366
+ start=lspt.Position(
367
+ line=loc_range[0], character=loc_range[1]
361
368
  ),
362
- )
363
- else:
364
- return None
369
+ end=lspt.Position(
370
+ line=loc_range[2], character=loc_range[3]
371
+ ),
372
+ ),
373
+ )
365
374
  elif isinstance(node_selected, (ast.ElementStmt, ast.BuiltinType)):
366
375
  return None
367
376
  decl_node = (
@@ -378,7 +387,7 @@ class JacLangServer(LanguageServer):
378
387
  decl_uri = uris.from_fs_path(decl_node.loc.mod_path)
379
388
  try:
380
389
  decl_range = create_range(decl_node.loc)
381
- except ValueError: # 'print' name has decl in 0,0,0,0
390
+ except ValueError:
382
391
  return None
383
392
  decl_location = lspt.Location(
384
393
  uri=decl_uri,
@@ -1,6 +1,6 @@
1
1
  import:py os;
2
- import:py from math, sqrt as square_root;
2
+ import:py from math{ sqrt as square_root}
3
3
  import:py datetime as dt;
4
- import:jac from base_module_structure, add as add_numbers , subtract,x,Colorenum as clr;
4
+ import:jac from base_module_structure{ add as add_numbers , subtract,x,Colorenum as clr}
5
5
  import:jac base_module_structure as base_module_structure;
6
- import:py from py_import,add1 as ss, sub1 as subtract1,apple,Orange1;
6
+ import:py from py_import{add1 as ss, sub1 as subtract1,apple,Orange1}
@@ -187,11 +187,15 @@ class TestJacLangServer(TestCase):
187
187
  )
188
188
  lsp.deep_check(import_file)
189
189
  positions = [
190
- (2, 24, "datetime.py:0:0-0:0"),
190
+ (0, 12, "tdlib/os/__init__.pyi:0:0-0:0"),
191
+ (1, 18, "stdlib/math.pyi:0:0-0:0"),
192
+ (2, 24, "datetime.pyi:0:0-0:0"),
191
193
  (3, 17, "base_module_structure.jac:0:0-0:0"),
192
- (3, 87, "base_module_structure.jac:23:0-23:5"),
193
- (5, 65, "py_import.py:12:0-20:5"),
194
- (5, 35, "py_import.py:3:0-4:5"),
194
+ (3, 87, "base_module_structure.jac:23:5-23:14"),
195
+ (5, 65, "py_import.py:0:0-0:0"),
196
+ (5, 35, "py_import.py:0:0-0:0"),
197
+ # (5, 65, "py_import.py:12:0-20:5"), # TODO : Should work after 'from' import files are raised
198
+ # (5, 35, "py_import.py:3:0-4:5"),
195
199
  ]
196
200
 
197
201
  for line, char, expected in positions:
@@ -2,10 +2,7 @@
2
2
 
3
3
  import asyncio
4
4
  import builtins
5
- import importlib.util
6
- import os
7
5
  import re
8
- import sys
9
6
  from functools import wraps
10
7
  from typing import Any, Awaitable, Callable, Coroutine, Optional, ParamSpec, TypeVar
11
8
 
@@ -209,6 +206,17 @@ def create_range(loc: CodeLocInfo) -> lspt.Range:
209
206
  )
210
207
 
211
208
 
209
+ def get_location_range(mod_item: ast.ModuleItem) -> tuple[int, int, int, int]:
210
+ """Get location range."""
211
+ if not mod_item.from_mod_path.sub_module:
212
+ raise ValueError("Module items should have module path. Not Possible.")
213
+ lookup = mod_item.from_mod_path.sub_module.sym_tab.lookup(mod_item.name.value)
214
+ if not lookup:
215
+ raise ValueError("Module items should have a symbol table entry. Not Possible.")
216
+ loc = lookup.decl.loc
217
+ return loc.first_line, loc.col_start, loc.last_line, loc.col_end
218
+
219
+
212
220
  def kind_map(sub_tab: ast.AstNode) -> lspt.SymbolKind:
213
221
  """Map the symbol node to an lspt.SymbolKind."""
214
222
  return (
@@ -273,103 +281,6 @@ def label_map(sub_tab: SymbolType) -> lspt.CompletionItemKind:
273
281
  )
274
282
 
275
283
 
276
- def get_mod_path(
277
- mod_path: ast.ModulePath, name_node: ast.Name
278
- ) -> str | None: # TODO: This should go away
279
- """Get path for a module import name."""
280
- ret_target = None
281
- if mod_path.parent and (
282
- (
283
- isinstance(mod_path.parent.parent, ast.Import)
284
- and mod_path.parent.parent.is_py
285
- )
286
- or (
287
- isinstance(mod_path.parent, ast.Import)
288
- and mod_path.parent.from_loc
289
- and mod_path.parent.is_py
290
- )
291
- ):
292
- if mod_path.path and name_node in mod_path.path:
293
- temporary_path_str = ("." * mod_path.level) + ".".join(
294
- [p.value for p in mod_path.path[: mod_path.path.index(name_node) + 1]]
295
- if mod_path.path
296
- else ""
297
- )
298
- else:
299
- temporary_path_str = mod_path.dot_path_str
300
- sys.path.append(os.path.dirname(mod_path.loc.mod_path))
301
- spec = importlib.util.find_spec(temporary_path_str)
302
- sys.path.remove(os.path.dirname(mod_path.loc.mod_path))
303
- if spec and spec.origin and spec.origin.endswith(".py"):
304
- ret_target = spec.origin
305
- elif mod_path.parent and (
306
- (
307
- isinstance(mod_path.parent.parent, ast.Import)
308
- and mod_path.parent.parent.is_jac
309
- )
310
- or (
311
- isinstance(mod_path.parent, ast.Import)
312
- and mod_path.parent.from_loc
313
- and mod_path.parent.is_jac
314
- )
315
- ):
316
- ret_target = mod_path.resolve_relative_path()
317
- return ret_target
318
-
319
-
320
- def get_item_path(mod_item: ast.ModuleItem) -> tuple[str, tuple[int, int]] | None:
321
- """Get path."""
322
- item_name = mod_item.name.value
323
- if mod_item.from_parent.is_py and mod_item.from_parent.from_loc:
324
- path = get_mod_path(mod_item.from_parent.from_loc, mod_item.name)
325
- if path:
326
- return get_definition_range(path, item_name)
327
- elif mod_item.from_parent.is_jac:
328
- mod_node = mod_item.from_mod_path
329
- if mod_node.sub_module and mod_node.sub_module._sym_tab:
330
- for symbol_name, symbol in mod_node.sub_module._sym_tab.tab.items():
331
- if symbol_name == item_name:
332
- return symbol.decl.loc.mod_path, (
333
- symbol.decl.loc.first_line - 1,
334
- symbol.decl.loc.last_line - 1,
335
- )
336
- return None
337
-
338
-
339
- def get_definition_range(
340
- filename: str, name: str
341
- ) -> tuple[str, tuple[int, int]] | None:
342
- """Get the start and end line of a function or class definition in a file."""
343
- import ast
344
-
345
- with open(filename, "r") as file:
346
- source = file.read()
347
-
348
- tree = ast.parse(source)
349
-
350
- for node in ast.walk(tree):
351
- if isinstance(node, (ast.FunctionDef, ast.ClassDef)) and node.name == name:
352
- start_line = node.lineno
353
- end_line = (
354
- node.body[-1].end_lineno
355
- if hasattr(node.body[-1], "end_lineno")
356
- else node.body[-1].lineno
357
- )
358
- if start_line and end_line:
359
- return filename, (start_line - 1, end_line - 1)
360
- elif isinstance(node, ast.Assign):
361
- for target in node.targets:
362
- if isinstance(target, ast.Name) and target.id == name:
363
- start_line = node.lineno
364
- end_line = (
365
- node.end_lineno if hasattr(node, "end_lineno") else node.lineno
366
- )
367
- if start_line and end_line:
368
- return filename, (start_line - 1, end_line - 1)
369
-
370
- return None
371
-
372
-
373
284
  def collect_all_symbols_in_scope(
374
285
  sym_tab: SymbolTable, up_tree: bool = True
375
286
  ) -> list[lspt.CompletionItem]:
jaclang/plugin/builtin.py CHANGED
@@ -2,11 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import TYPE_CHECKING
5
+ from typing import Optional
6
6
 
7
- if TYPE_CHECKING:
8
- from typing import Optional
9
- from jaclang.runtimelib.constructs import NodeArchitype
7
+ from jaclang.plugin.feature import JacFeature as Jac
8
+ from jaclang.runtimelib.constructs import Architype, NodeArchitype
10
9
 
11
10
 
12
11
  def dotgen(
@@ -40,3 +39,8 @@ def dotgen(
40
39
  node_limit=node_limit,
41
40
  dot_file=dot_file,
42
41
  )
42
+
43
+
44
+ def jid(obj: Architype) -> str:
45
+ """Get the id of the object."""
46
+ return Jac.object_ref(obj)
jaclang/plugin/default.py CHANGED
@@ -12,13 +12,13 @@ from collections import OrderedDict
12
12
  from dataclasses import field
13
13
  from functools import wraps
14
14
  from typing import Any, Callable, Mapping, Optional, Sequence, Type, Union
15
+ from uuid import UUID
15
16
 
16
17
  import jaclang.compiler.absyntree as ast
17
18
  from jaclang.compiler.constant import EdgeDir, colors
18
19
  from jaclang.compiler.passes.main.pyast_gen_pass import PyastGenPass
19
20
  from jaclang.compiler.semtable import SemInfo, SemRegistry, SemScope
20
21
  from jaclang.runtimelib.constructs import (
21
- Anchor,
22
22
  Architype,
23
23
  DSFunc,
24
24
  EdgeAnchor,
@@ -44,7 +44,6 @@ import pluggy
44
44
  hookimpl = pluggy.HookimplMarker("jac")
45
45
 
46
46
  __all__ = [
47
- "Anchor",
48
47
  "EdgeAnchor",
49
48
  "GenericEdge",
50
49
  "hookimpl",
@@ -72,6 +71,21 @@ class JacFeatureDefaults:
72
71
  """Get current execution context."""
73
72
  return ExecutionContext.get()
74
73
 
74
+ @staticmethod
75
+ @hookimpl
76
+ def get_object(id: str) -> Architype | None:
77
+ if id == "root":
78
+ return Jac.get_context().root.architype
79
+ elif obj := Jac.get_context().mem.find_by_id(UUID(id)):
80
+ return obj.architype
81
+
82
+ return None
83
+
84
+ @staticmethod
85
+ @hookimpl
86
+ def object_ref(obj: Architype) -> str:
87
+ return obj.__jac__.id.hex
88
+
75
89
  @staticmethod
76
90
  @hookimpl
77
91
  def make_architype(
@@ -903,7 +917,7 @@ class JacBuiltin:
903
917
  for source, target, edge in connections:
904
918
  dot_content += (
905
919
  f"{visited_nodes.index(source)} -> {visited_nodes.index(target)} "
906
- f' [label="{html.escape(str(edge.__jac__.architype.__class__.__name__))} "];\n'
920
+ f' [label="{html.escape(str(edge.__jac__.architype))} "];\n'
907
921
  )
908
922
  for node_ in visited_nodes:
909
923
  color = (
jaclang/plugin/feature.py CHANGED
@@ -46,6 +46,16 @@ class JacFeature:
46
46
  """Get current execution context."""
47
47
  return pm.hook.get_context()
48
48
 
49
+ @staticmethod
50
+ def get_object(id: str) -> Architype | None:
51
+ """Get object given id."""
52
+ return pm.hook.get_object(id=id)
53
+
54
+ @staticmethod
55
+ def object_ref(obj: Architype) -> str:
56
+ """Get object reference id."""
57
+ return pm.hook.object_ref(obj=obj)
58
+
49
59
  @staticmethod
50
60
  def make_architype(
51
61
  cls: type,
jaclang/plugin/spec.py CHANGED
@@ -48,6 +48,18 @@ class JacFeatureSpec:
48
48
  """Get current execution context."""
49
49
  raise NotImplementedError
50
50
 
51
+ @staticmethod
52
+ @hookspec(firstresult=True)
53
+ def get_object(id: str) -> Architype | None:
54
+ """Get object given id.."""
55
+ raise NotImplementedError
56
+
57
+ @staticmethod
58
+ @hookspec(firstresult=True)
59
+ def object_ref(obj: Architype) -> str:
60
+ """Get object given id.."""
61
+ raise NotImplementedError
62
+
51
63
  @staticmethod
52
64
  @hookspec(firstresult=True)
53
65
  def make_architype(
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import importlib
6
+ import importlib.util
6
7
  import os
7
8
  import sys
8
9
  import types
@@ -18,7 +18,7 @@ class Memory(Generic[ID, TANCH]):
18
18
  """Generic Memory Handler."""
19
19
 
20
20
  __mem__: dict[ID, TANCH] = field(default_factory=dict)
21
- __gc__: set[ID] = field(default_factory=set)
21
+ __gc__: set[TANCH] = field(default_factory=set)
22
22
 
23
23
  def close(self) -> None:
24
24
  """Close memory handler."""
@@ -62,8 +62,8 @@ class Memory(Generic[ID, TANCH]):
62
62
  ids = [ids]
63
63
 
64
64
  for id in ids:
65
- self.__mem__.pop(id, None)
66
- self.__gc__.add(id)
65
+ if anchor := self.__mem__.pop(id, None):
66
+ self.__gc__.add(anchor)
67
67
 
68
68
 
69
69
  @dataclass
@@ -84,9 +84,9 @@ class ShelfStorage(Memory[UUID, Anchor]):
84
84
 
85
85
  root = Jac.get_root().__jac__
86
86
 
87
- for id in self.__gc__:
88
- self.__shelf__.pop(str(id), None)
89
- self.__mem__.pop(id, None)
87
+ for anchor in self.__gc__:
88
+ self.__shelf__.pop(str(anchor.id), None)
89
+ self.__mem__.pop(anchor.id, None)
90
90
 
91
91
  for d in self.__mem__.values():
92
92
  if d.persistent and d.hash != hash(dumps(d)):
@@ -31,6 +31,7 @@ with entry{
31
31
  print(d2.count('a(val')==19,d2.count('#F5E5FF')==2 ,'Edge1' not in d2,d2.count('GenericEdge')==42);
32
32
  print(d3.count('a(val')==6,d3.count("GenericEdge")==5,d3.count('#F5E5FF')==1);
33
33
  print(d4.count("a(val")==25,d4.count("GenericEdge")==66,d4.count('#FFF0F')==3);
34
+ print(d5.count("Edge1(val=6)")==2, d5.count("GenericEdge()")==24);
34
35
  # print(l3<l2);
35
36
  # print(d1);
36
37
  # print(d2);
@@ -0,0 +1,12 @@
1
+ node MyNode {
2
+ has value: int = 0;
3
+ }
4
+
5
+ with entry {
6
+ root ++> (x:=MyNode());
7
+ obj_id = jid(x);
8
+ myobj = &obj_id;
9
+ print(obj_id);
10
+ print(myobj);
11
+ print("valid:", myobj == x);
12
+ }
@@ -39,7 +39,7 @@ class JacLanguageTests(TestCase):
39
39
  sys.stdout = captured_output
40
40
 
41
41
  # Execute the function
42
- cli.run(self.fixture_abs_path("sub_abil_sep.jac")) # type: ignore
42
+ cli.run(self.fixture_abs_path("sub_abil_sep.jac"))
43
43
 
44
44
  sys.stdout = sys.__stdout__
45
45
  stdout_value = captured_output.getvalue()
@@ -376,7 +376,7 @@ class JacLanguageTests(TestCase):
376
376
  jac_import("builtin_dotgen", base_path=self.fixture_abs_path("./"))
377
377
  sys.stdout = sys.__stdout__
378
378
  stdout_value = captured_output.getvalue()
379
- self.assertEqual(stdout_value.count("True"), 14)
379
+ self.assertEqual(stdout_value.count("True"), 16)
380
380
 
381
381
  def test_with_contexts(self) -> None:
382
382
  """Test walking through edges."""
@@ -951,3 +951,14 @@ class JacLanguageTests(TestCase):
951
951
  self.assertIn("Edges in bar:\n - Edge: Link", stdout_value)
952
952
  self.assertIn("Item value: 0", stdout_value)
953
953
  self.assertIn("Created 5 items.", stdout_value)
954
+
955
+ def test_object_ref_interface(self) -> None:
956
+ """Test class method output."""
957
+ captured_output = io.StringIO()
958
+ sys.stdout = captured_output
959
+ cli.run(self.fixture_abs_path("objref.jac"))
960
+ sys.stdout = sys.__stdout__
961
+ stdout_value = captured_output.getvalue().split("\n")
962
+ self.assertEqual(len(stdout_value[0]), 32)
963
+ self.assertEqual("MyNode(value=0)", stdout_value[1])
964
+ self.assertEqual("valid: True", stdout_value[2])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaclang
3
- Version: 0.7.17
3
+ Version: 0.7.18
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
@@ -12,7 +12,9 @@ Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
+ Provides-Extra: all
15
16
  Provides-Extra: llm
17
+ Provides-Extra: streamlit
16
18
  Project-URL: Documentation, https://jac-lang.org
17
19
  Project-URL: Repository, https://github.com/Jaseci-Labs/jaclang
18
20
  Description-Content-Type: text/markdown
@@ -2,7 +2,7 @@ jaclang/__init__.py,sha256=quKqbhKk5CQ0k798jIXMbeAKzQxD0yhOpQGSvYD6TD8,399
2
2
  jaclang/cli/.gitignore,sha256=NYuons2lzuCpCdefMnztZxeSMgtPVJF6R6zSgVDOV20,27
3
3
  jaclang/cli/__init__.py,sha256=7aaPgYddIAHBvkdv36ngbfwsimMnfGaTDcaHYMg_vf4,23
4
4
  jaclang/cli/cli.md,sha256=4BPJGdcyvs_rXgd_DPEGjkKSGe5ureXXYaQsf-_z_LU,5939
5
- jaclang/cli/cli.py,sha256=K7WEKjiDrhxHprmBsQmfxdJCLWxaXsRHoA0mFU0EEVs,15959
5
+ jaclang/cli/cli.py,sha256=XbxY2D6j0nRrhqaTBg0_e3f9haiHZNo1jUHbJYxZMUo,15878
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=O1GO5Hb02vRlz7OpYHinQV5lQ7YuNUV9Hgjlc3QWtZg,2780
@@ -21,7 +21,7 @@ jaclang/compiler/passes/main/def_use_pass.py,sha256=68Uts_v-R-9mzBXC9EfXpcBEQwqn
21
21
  jaclang/compiler/passes/main/fuse_typeinfo_pass.py,sha256=afe2-0zsfdoP6-hUd2y2zKV_ZFtPpxxapm8q2Mkik4Y,22466
22
22
  jaclang/compiler/passes/main/import_pass.py,sha256=F7CeHKhFip3zp7FVOCpEsua0HRAudwIQdxyjqOp4JdQ,11702
23
23
  jaclang/compiler/passes/main/py_collect_dep_pass.py,sha256=OTulloovybZpXJXrQFsKgzXoRsgf-x5UfO6qalhJndg,2447
24
- jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=e0A0KYE3Kr6opQv2GbIy1YJJM5fmmk1J_8X_geEy9Bg,141143
24
+ jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=ACUhGsLq34N-Sfo96IAgkTnds9ZY6I7J6okr6rFvPpo,142105
25
25
  jaclang/compiler/passes/main/pyast_load_pass.py,sha256=k-tf5cZVlygDg4BGBYcAznO6w0hM4-0Pdzlwr4Sw48I,94027
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=1pW0uLEnhM5hCwVFAREdd_miyr3qTK0h_SJVfR_ryig,8604
@@ -72,7 +72,7 @@ jaclang/compiler/passes/main/tests/test_typeinfo_pass.py,sha256=ehC0_giLg7NwB7fR
72
72
  jaclang/compiler/passes/main/type_check_pass.py,sha256=TdMAzdHYXrKv-vTylGhvxjSDylk0HoOQUa7A4OC1d5A,4208
73
73
  jaclang/compiler/passes/tool/__init__.py,sha256=xekCOXysHIcthWm8NRmQoA1Ah1XV8vFbkfeHphJtUdc,223
74
74
  jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=CSnuWy4gZfTcWKe0Q7LBikBgWe1zJr0QmNUkgrZ7B38,3657
75
- jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=PDcIo12DS1sjRmvvtG5YqpAkxxBGsMgnw3rqYEbDj9E,89765
75
+ jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=ngLu4qrTXev0NYNcL1feng89xHxTBXzZEQ_AYSZO3Qw,89878
76
76
  jaclang/compiler/passes/tool/schedules.py,sha256=kmbsCazAMizGAdQuZpFky5BPlYlMXqNw7wOUzdi_wBo,432
77
77
  jaclang/compiler/passes/tool/tests/__init__.py,sha256=AeOaZjA1rf6VAr0JqIit6jlcmOzW7pxGr4U1fOwgK_Y,24
78
78
  jaclang/compiler/passes/tool/tests/fixtures/corelib.jac,sha256=RGIOyYW5eyadmOf0H-COpLPMJIIkWOFVERI5dNEM3J8,12581
@@ -133,7 +133,7 @@ jaclang/compiler/tests/fixtures/stuff.jac,sha256=qOq6WOwhlprMmJpiqQudgqnr4qTd9uh
133
133
  jaclang/compiler/tests/test_importer.py,sha256=glEyjV21nJaCVrDXbF5kkcZYBcCTnmWngdUBbuygAxY,2289
134
134
  jaclang/compiler/tests/test_parser.py,sha256=Sj9Kz1FghESaPpyx_kEvScs4xvz-vgEdH8yyQJ0iB7M,4820
135
135
  jaclang/langserve/__init__.py,sha256=3qbnivBBcLZCfmDYRMIeKkG08Lx7XQsJJg-qG8TU8yc,51
136
- jaclang/langserve/engine.py,sha256=uqJ96tJzgRPjT0Ya9LSPtgwMLJONCDtUKobAmjn9QR0,17610
136
+ jaclang/langserve/engine.py,sha256=3aTIGP0PIu8Wku4xRytsdstqPNe6xwU5QGikyj9jdcY,18015
137
137
  jaclang/langserve/sem_manager.py,sha256=d5QzT9WVYarZfTg1sUF_pTfNMYb65HLz3vX839b5Jeo,14918
138
138
  jaclang/langserve/server.py,sha256=qkWhsJLaQT2o-obIeOcPqag3B3wANzGFgW5EmC8tYYg,5445
139
139
  jaclang/langserve/tests/__init__.py,sha256=iDM47k6c3vahaWhwxpbkdEOshbmX-Zl5x669VONjS2I,23
@@ -147,7 +147,7 @@ jaclang/langserve/tests/fixtures/circle_pure.test.jac,sha256=Ys-IoqcYqId1T-Pcz2i
147
147
  jaclang/langserve/tests/fixtures/circle_pure_err.impl.jac,sha256=rsXatY9a-wZONRPJ6VOuw7Bj9R_CrJO_TEwAVXj1PjU,702
148
148
  jaclang/langserve/tests/fixtures/circle_pure_err.jac,sha256=jQ5QX0G5khGACoY82CM-6LcOX57w4e29tHVicE2eMgw,608
149
149
  jaclang/langserve/tests/fixtures/hello.jac,sha256=iRMKtYVCw1zLvjOQbj3q__3Manj1Di1YeDTNMEvYtBc,36
150
- jaclang/langserve/tests/fixtures/import_include_statements.jac,sha256=C7aW24QodYRHB0czqvpEZwR4A60ktYa4pGNWNXisL7s,300
150
+ jaclang/langserve/tests/fixtures/import_include_statements.jac,sha256=4TiVpsj2Of1J67AJjZdxUQechHYVq9HlL1UDCuY9LME,300
151
151
  jaclang/langserve/tests/fixtures/py_import.py,sha256=BvNimsRmsbJWd-JNM31oJpl52bYvSdfQ6Np3DJNt7d0,320
152
152
  jaclang/langserve/tests/fixtures/rename.jac,sha256=VrdXiQh1xQIBWKVFT6oO4DxgEncyLRPFl87aKw5QUI8,251
153
153
  jaclang/langserve/tests/pylsp_jsonrpc/__init__.py,sha256=bDWxRjmELPCVGy243_0kNrG7PttyZsv_eZ9JTKQrU1E,105
@@ -157,13 +157,13 @@ jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py,sha256=NGHeFQawZcjoLUcgDmY3b
157
157
  jaclang/langserve/tests/pylsp_jsonrpc/streams.py,sha256=R80_FvICIkrbdGmNtlemWYaxrr7-XldPgLaASnyv0W8,3332
158
158
  jaclang/langserve/tests/session.py,sha256=3pIRoQjZnsnUWIYnO2SpK7c1PAiHMCFrrStNK2tawRM,9572
159
159
  jaclang/langserve/tests/test_sem_tokens.py,sha256=HWNaA1CK5qxFeipmd4AAvjAbJSEW4-09hY2UHVfvtlc,9897
160
- jaclang/langserve/tests/test_server.py,sha256=HAlrSmAv6Yk8WNulqnNsj8vUGZyIHFrX_FtwPMKgzfI,22651
161
- jaclang/langserve/utils.py,sha256=NZAAILkgwKF-NZPNqI0dI7VQ4cL65UcqL-5m9mAdAqQ,22122
160
+ jaclang/langserve/tests/test_server.py,sha256=FEjC4mmG85sU0O4qykmfu1Ks62mkveKRgpHep4vt3Rk,22908
161
+ jaclang/langserve/utils.py,sha256=tDsdEOtZdmJ6Xn8b0Ohwt8fRVNm5qtUC4Cub85CG3Mk,19028
162
162
  jaclang/plugin/__init__.py,sha256=5t2krHKt_44PrCTGojzxEimxpNHYVQcn89jAiCSXE_k,165
163
- jaclang/plugin/builtin.py,sha256=zAypgY6GemiCmbFUyhj9g_0qNyQFLnDPHGlZ0BuA3RE,1194
164
- jaclang/plugin/default.py,sha256=-lJ-OuZ96XNFu4moqh925rSdP__5GVHL6nW2xpF47zw,30809
165
- jaclang/plugin/feature.py,sha256=Q2xapTAEz0BiI0X0takouqgyrbjClFPtDQUrp356UT4,11315
166
- jaclang/plugin/spec.py,sha256=rEbzIwWLMDJK4-SZhLPnKE0SzUy8AgjENZjAxouFOH0,10028
163
+ jaclang/plugin/builtin.py,sha256=Hj8SVcauuhzsPQJBzt8jIfHkSUAcqsKfAFyCPYdBZKA,1300
164
+ jaclang/plugin/default.py,sha256=oxPO7tud8VqP20BrfnDNpLPtM0kaL00s-1F70X3hvCg,31173
165
+ jaclang/plugin/feature.py,sha256=SgTFAjJI_SbYn2ZdUsx-b4vtYHnl_STRa5oV7AM2yX8,11603
166
+ jaclang/plugin/spec.py,sha256=TlNUQu51daKsmiPeFoQcXZ7HVdoYN5zGA03OAMmpVac,10362
167
167
  jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
168
168
  jaclang/plugin/tests/fixtures/impl_match.jac,sha256=WEhcA1GlovusITEFO2bOjYYqiiULyYGKhM17uK2GqnI,91
169
169
  jaclang/plugin/tests/fixtures/impl_match_impl.jac,sha256=k1385r7Hdlq6mUKxEHa3VOKJUIWH08hYg2kErhbYwFM,31
@@ -177,9 +177,9 @@ jaclang/runtimelib/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-e
177
177
  jaclang/runtimelib/architype.py,sha256=sqsrobtbHaHDYJaqbXx9iapZ3TJ92APXFzw9bSGnQ90,21659
178
178
  jaclang/runtimelib/constructs.py,sha256=QWut5kKRaBbIelb12cpTSa_D0xDGPOoHHq4SaDetyo8,760
179
179
  jaclang/runtimelib/context.py,sha256=gUiPZ4ZoHoz_vHjxG9kvIw4hlmx8G8lPTquGC6qJoi4,5609
180
- jaclang/runtimelib/importer.py,sha256=QiaPopBJkAakwvder77JNH3S-q5skFdi5BGoW_sBNTQ,14268
180
+ jaclang/runtimelib/importer.py,sha256=dQWPj3n7Ahschq5FRJVy_r6oghNxp3j8o9zi72FEviE,14291
181
181
  jaclang/runtimelib/machine.py,sha256=QAodSjVm45-0VmhmFRMEJtFp1j3k2VvoiUi117YVS5g,5455
182
- jaclang/runtimelib/memory.py,sha256=I5dGmiDUW2H3Zjx-XIpCGWfORNpKM_EYwWVwTltKbfE,5029
182
+ jaclang/runtimelib/memory.py,sha256=GlzdN81728IsTmPLOe70HCDFE_JRHIEWlfDzfjWxn8o,5072
183
183
  jaclang/runtimelib/test.py,sha256=HRCl3cf0uPTe58Kcx_sBUb6ow8J53rnmpFOhA7g9oAA,2851
184
184
  jaclang/runtimelib/utils.py,sha256=P9gVE3XFhRzr745RCDXXIP391AcsL4aL_6HrXws_qa4,8155
185
185
  jaclang/settings.py,sha256=a8q39_6QvMVXGTjAzOwmfYMjk7w3H-iyMCEQADAw5iU,3455
@@ -193,7 +193,7 @@ jaclang/tests/fixtures/baddy.jac,sha256=waLlwMyW_JCE1x_SuVzRER1RBe1j3XiLTw-0Njzn
193
193
  jaclang/tests/fixtures/baddy.test.jac,sha256=Uq-Nlf44QUAtbOfDCbc9_ceLxmo31PILDTSzAv8nJq4,33
194
194
  jaclang/tests/fixtures/bar.jac,sha256=9I50W-KAhOqTwcsCkmug8Grm2cPMAhUwsE_fllIQNm8,781
195
195
  jaclang/tests/fixtures/blankwithentry.jac,sha256=lnMDDKyKnldsUIx1AVCIHt47KY3gR2CZYhox8663sLM,53
196
- jaclang/tests/fixtures/builtin_dotgen.jac,sha256=HsAHVyN7HxhbICqe4GXV51cJlMe68WMleMmx9KeR8fU,1759
196
+ jaclang/tests/fixtures/builtin_dotgen.jac,sha256=1CCJTSmMD1Zt_FkC-poPGyHRV3rIcst616UtYfuLIrE,1830
197
197
  jaclang/tests/fixtures/byllmissue.jac,sha256=vAwxzbRNx5yOM3HTDSH7wafPYXU7AunBOZmgdsT2rhc,86
198
198
  jaclang/tests/fixtures/chandra_bugs.jac,sha256=vcBjZ4P7S1PPUs-_0Stt779pus95RJTMs1x_-m0w7yY,282
199
199
  jaclang/tests/fixtures/chandra_bugs2.jac,sha256=OZP6JOsIr8WK-joPZ54-LcbVVvtuZ5ILPdkynSSx3uU,559
@@ -254,6 +254,7 @@ jaclang/tests/fixtures/needs_import_2.jac,sha256=RC4aok5TCbxInmTp8OmArCt4afawPP9
254
254
  jaclang/tests/fixtures/needs_import_3.jac,sha256=9ASkW82KUKDgydt8dR48XucG66n6xeLEGLwAgRgfOR8,104
255
255
  jaclang/tests/fixtures/needs_import_dup.jac,sha256=hJab0QWdoTLuNaNhtY6zjzyGGUouRyT9uQknhP-lXXQ,315
256
256
  jaclang/tests/fixtures/nosigself.jac,sha256=jCjNizUVOrgJwXJ_-TdOzKsq8hlhU6xuX0Mz27W92lQ,187
257
+ jaclang/tests/fixtures/objref.jac,sha256=u_Sc8CTbsqe0D0VI5jUEWsV36l2PH0uNukSn3LSlJPI,195
257
258
  jaclang/tests/fixtures/pyfunc.py,sha256=Os1xnL4I4ddNkpv4Vs5aOxu95dEM0JuNIoiECyCCjJ0,163
258
259
  jaclang/tests/fixtures/pyfunc_1.py,sha256=bDEx4oIco0CxXmy1OGwGhcYh9QTNSEIpBuwV8KZ-IFs,5304
259
260
  jaclang/tests/fixtures/pyfunc_2.py,sha256=wnPS3t9wEElWtLekP3O5NcKI15-WKg08h4wbiijaMXo,5055
@@ -281,7 +282,7 @@ jaclang/tests/fixtures/walker_override.jac,sha256=Ok58ZAgxuV6aECNxYrjbbyAWSiqIbn
281
282
  jaclang/tests/fixtures/with_context.jac,sha256=cDA_4YWe5UVmQRgcpktzkZ_zsswQpV_T2Otf_rFnPy8,466
282
283
  jaclang/tests/test_bugs.py,sha256=tBPsIlSPqZDIz4QaScNRT-WdGIdJ0uU-aRBWq1XUZ6o,555
283
284
  jaclang/tests/test_cli.py,sha256=cqGHeL15sy34qJRZyD48Wu6rnOh1ZDHNS3pg0jOJvag,12515
284
- jaclang/tests/test_language.py,sha256=n-BpE6uce2QY7Fq4pcdxnqiO3RWdIftSftxRJYX4LZM,38611
285
+ jaclang/tests/test_language.py,sha256=5Vv2wD0PkBLESiNhKCToT3FAeQoQpzSElv_xwg6BVMo,39082
285
286
  jaclang/tests/test_man_code.py,sha256=ZdNarlZVfT_-8Jv3FjLplHw76tsvkCuISyfX3M4qxPg,5027
286
287
  jaclang/tests/test_reference.py,sha256=FISQpZbB8cmRoAeJOFfXUy13WVxykZjpkPSb1OTotfI,3340
287
288
  jaclang/tests/test_settings.py,sha256=TIX5uiu8H9IpZN2__uFiclcdCpBpPpcAwtlEHyFC4kk,1999
@@ -1515,7 +1516,7 @@ jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA,sha256=BeUQIa8cnYbrjW
1515
1516
  jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD,sha256=XS4fBVrPI7kaNZ56Ggl2RGa76jySWLqTzcrUpZIQTVM,418
1516
1517
  jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
1517
1518
  jaclang/vendor/typing_extensions.py,sha256=gwekpyG9DVG3lxWKX4ni8u7nk3We5slG98mA9F3DJQw,134451
1518
- jaclang-0.7.17.dist-info/METADATA,sha256=xjK4r2WduVsgjCZcCsmxFL_GddWBTnLGjeYSCgW0NmQ,4807
1519
- jaclang-0.7.17.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1520
- jaclang-0.7.17.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1521
- jaclang-0.7.17.dist-info/RECORD,,
1519
+ jaclang-0.7.18.dist-info/METADATA,sha256=AEdrDMQWk6zb30Ji2LCf-h5DtAnEvzAPkhyc_3dwWC0,4853
1520
+ jaclang-0.7.18.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1521
+ jaclang-0.7.18.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1522
+ jaclang-0.7.18.dist-info/RECORD,,