jaclang 0.8.6__py3-none-any.whl → 0.8.7__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 (32) hide show
  1. jaclang/cli/cli.md +3 -3
  2. jaclang/cli/cli.py +25 -11
  3. jaclang/cli/cmdreg.py +1 -140
  4. jaclang/compiler/passes/main/pyast_gen_pass.py +13 -3
  5. jaclang/compiler/passes/main/pyast_load_pass.py +14 -20
  6. jaclang/compiler/passes/main/tests/fixtures/checker_binary_op.jac +21 -0
  7. jaclang/compiler/passes/main/tests/fixtures/checker_call_expr_class.jac +12 -0
  8. jaclang/compiler/passes/main/tests/fixtures/checker_cyclic_symbol.jac +4 -0
  9. jaclang/compiler/passes/main/tests/fixtures/checker_expr_call.jac +9 -0
  10. jaclang/compiler/passes/main/tests/fixtures/checker_import_missing_module.jac +13 -0
  11. jaclang/compiler/passes/main/tests/fixtures/checker_magic_call.jac +17 -0
  12. jaclang/compiler/passes/main/tests/fixtures/checker_mod_path.jac +8 -0
  13. jaclang/compiler/passes/main/tests/test_checker_pass.py +74 -0
  14. jaclang/compiler/passes/main/type_checker_pass.py +24 -5
  15. jaclang/compiler/type_system/operations.py +104 -0
  16. jaclang/compiler/type_system/type_evaluator.py +141 -2
  17. jaclang/langserve/engine.jac +135 -91
  18. jaclang/langserve/server.jac +21 -14
  19. jaclang/langserve/tests/server_test/test_lang_serve.py +2 -5
  20. jaclang/langserve/tests/test_dev_server.py +1 -1
  21. jaclang/langserve/tests/test_server.py +9 -2
  22. jaclang/langserve/utils.jac +44 -48
  23. jaclang/tests/fixtures/jac_run_py_bugs.py +18 -0
  24. jaclang/tests/fixtures/jac_run_py_import.py +13 -0
  25. jaclang/tests/fixtures/lambda_arg_annotation.jac +15 -0
  26. jaclang/tests/fixtures/lambda_self.jac +18 -0
  27. jaclang/tests/test_cli.py +66 -17
  28. jaclang/utils/module_resolver.py +1 -1
  29. {jaclang-0.8.6.dist-info → jaclang-0.8.7.dist-info}/METADATA +3 -2
  30. {jaclang-0.8.6.dist-info → jaclang-0.8.7.dist-info}/RECORD +32 -20
  31. {jaclang-0.8.6.dist-info → jaclang-0.8.7.dist-info}/WHEEL +1 -1
  32. {jaclang-0.8.6.dist-info → jaclang-0.8.7.dist-info}/entry_points.txt +0 -0
@@ -31,18 +31,18 @@ glob T = TypeVar('T', bound=Callable[(P, Coroutine[(Any, Any, Any)])]);
31
31
  """Return diagnostics."""
32
32
  def gen_diagnostics(
33
33
  from_path: str,
34
- errors: <>list[Alert],
35
- warnings: <>list[Alert]
36
- ) -> <>list[lspt.Diagnostic] {
34
+ errors: list[Alert],
35
+ warnings: list[Alert]
36
+ ) -> list[lspt.Diagnostic] {
37
37
  return [ lspt.Diagnostic(
38
38
  range=create_range(error.loc),
39
39
  message=error.msg,
40
40
  severity=lspt.DiagnosticSeverity.Error
41
- ) for error in errors if error.loc.mod_path == uris.to_fs_path(from_path) ] + [ lspt.Diagnostic(
41
+ ) for error in errors if error.loc.mod_path == from_path ] + [ lspt.Diagnostic(
42
42
  range=create_range(warning.loc),
43
43
  message=warning.msg,
44
44
  severity=lspt.DiagnosticSeverity.Warning
45
- ) for warning in warnings if warning.loc.mod_path == uris.to_fs_path(from_path) ];
45
+ ) for warning in warnings if warning.loc.mod_path == from_path ];
46
46
  }
47
47
 
48
48
 
@@ -75,7 +75,7 @@ def debounce(<>wait: float) -> Callable[[T], Callable[(..., Awaitable[None])]] {
75
75
 
76
76
 
77
77
  """Iterate through symbol table."""
78
- def sym_tab_list(sym_tab: UniScopeNode, file_path: str) -> <>list[UniScopeNode] {
78
+ def sym_tab_list(sym_tab: UniScopeNode, file_path: str) -> list[UniScopeNode] {
79
79
  sym_tabs = [sym_tab]
80
80
  if not (isinstance(sym_tab, uni.Module) and sym_tab.loc.mod_path != file_path )
81
81
  else []
@@ -135,7 +135,7 @@ def position_within_node(<>node: uni.UniNode, line: int, character: int) -> bool
135
135
 
136
136
 
137
137
  """Find index."""
138
- def find_index(sem_tokens: <>list[int], line: int, char: int) -> Optional[int] {
138
+ def find_index(sem_tokens: list[int], line: int, char: int) -> Optional[int] {
139
139
  index = None;
140
140
  token_start_list = [ get_token_start(i, sem_tokens) for i in range(0, len(sem_tokens), 5) ];
141
141
  for (i, j) in enumerate(token_start_list) {
@@ -148,7 +148,7 @@ def find_index(sem_tokens: <>list[int], line: int, char: int) -> Optional[int] {
148
148
 
149
149
 
150
150
  """Recursively collect symbols from the AST."""
151
- def get_symbols_for_outline(<>node: UniScopeNode) -> <>list[lspt.DocumentSymbol] {
151
+ def get_symbols_for_outline(<>node: UniScopeNode) -> list[lspt.DocumentSymbol] {
152
152
  symbols = [];
153
153
  for (key, item) in <>node.names_in_scope.items() {
154
154
  if key in dir(builtins)
@@ -234,34 +234,30 @@ def kind_map(sub_tab: uni.UniNode) -> lspt.SymbolKind {
234
234
 
235
235
  """Map the symbol node to an lspt.CompletionItemKind."""
236
236
  def label_map(sub_tab: SymbolType) -> lspt.CompletionItemKind {
237
- return lspt.CompletionItemKind.Function
238
- if sub_tab in [SymbolType.ABILITY, SymbolType.TEST]
239
- else lspt.CompletionItemKind.Class
240
- if sub_tab in [SymbolType.OBJECT_ARCH,
241
- SymbolType.NODE_ARCH,
242
- SymbolType.EDGE_ARCH,
243
- SymbolType.WALKER_ARCH]
244
- else lspt.CompletionItemKind.Module
245
- if sub_tab == SymbolType.MODULE
246
- else lspt.CompletionItemKind.Enum
247
- if sub_tab == SymbolType.ENUM_ARCH
248
- else lspt.CompletionItemKind.Field
249
- if sub_tab == SymbolType.HAS_VAR
250
- else lspt.CompletionItemKind.Method
251
- if sub_tab == SymbolType.METHOD
252
- else lspt.CompletionItemKind.EnumMember
253
- if sub_tab == SymbolType.ENUM_MEMBER
254
- else lspt.CompletionItemKind.Interface
255
- if sub_tab == SymbolType.IMPL
256
- else lspt.CompletionItemKind.Variable
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
- ;
237
+ return (
238
+ lspt.CompletionItemKind.Function
239
+ if sub_tab in [SymbolType.ABILITY, SymbolType.TEST]
240
+ else lspt.CompletionItemKind.Class
241
+ if sub_tab in [
242
+ SymbolType.OBJECT_ARCH,
243
+ SymbolType.NODE_ARCH,
244
+ SymbolType.EDGE_ARCH,
245
+ SymbolType.WALKER_ARCH
246
+ ]
247
+ else lspt.CompletionItemKind.Module
248
+ if sub_tab == SymbolType.MODULE
249
+ else lspt.CompletionItemKind.Enum
250
+ if sub_tab == SymbolType.ENUM_ARCH
251
+ else lspt.CompletionItemKind.Field
252
+ if sub_tab == SymbolType.HAS_VAR
253
+ else lspt.CompletionItemKind.Method
254
+ if sub_tab == SymbolType.METHOD
255
+ else lspt.CompletionItemKind.EnumMember
256
+ if sub_tab == SymbolType.ENUM_MEMBER
257
+ else lspt.CompletionItemKind.Interface
258
+ if sub_tab == SymbolType.IMPL
259
+ else lspt.CompletionItemKind.Variable
260
+ );
265
261
  }
266
262
 
267
263
 
@@ -269,9 +265,9 @@ def label_map(sub_tab: SymbolType) -> lspt.CompletionItemKind {
269
265
  def collect_all_symbols_in_scope(
270
266
  sym_tab: UniScopeNode,
271
267
  up_tree: bool = True
272
- ) -> <>list[lspt.CompletionItem] {
268
+ ) -> list[lspt.CompletionItem] {
273
269
  symbols = [];
274
- visited = <>set();
270
+ visited = set();
275
271
  current_tab : Optional[UniScopeNode] = sym_tab;
276
272
  while current_tab is not None and current_tab not in visited {
277
273
  visited.add(current_tab);
@@ -295,8 +291,8 @@ def collect_all_symbols_in_scope(
295
291
 
296
292
 
297
293
  """Return all child tab's as completion items."""
298
- def collect_child_tabs(sym_tab: UniScopeNode) -> <>list[lspt.CompletionItem] {
299
- symbols : <>list[lspt.CompletionItem] = [];
294
+ def collect_child_tabs(sym_tab: UniScopeNode) -> list[lspt.CompletionItem] {
295
+ symbols : list[lspt.CompletionItem] = [];
300
296
  for tab in sym_tab.kid_scope {
301
297
  if tab.scope_name not in [ i.label for i in symbols ] {
302
298
  symbols.append(
@@ -312,7 +308,7 @@ def collect_child_tabs(sym_tab: UniScopeNode) -> <>list[lspt.CompletionItem] {
312
308
 
313
309
 
314
310
  """Parse text and return a list of symbols."""
315
- def parse_symbol_path(text: str, dot_position: int) -> <>list[str] {
311
+ def parse_symbol_path(text: str, dot_position: int) -> list[str] {
316
312
  text = text[ : dot_position ][ : -1 ].strip();
317
313
  valid_character_pattern = re.compile('[a-zA-Z0-9_]');
318
314
  reversed_text = text[ : : -1 ];
@@ -342,8 +338,8 @@ def parse_symbol_path(text: str, dot_position: int) -> <>list[str] {
342
338
  """Return the starting position of a token."""
343
339
  def get_token_start(
344
340
  token_index: (int | None),
345
- sem_tokens: <>list[int]
346
- ) -> <>tuple[int, int, int] {
341
+ sem_tokens: list[int]
342
+ ) -> tuple[int, int, int] {
347
343
  if token_index is None or token_index >= len(sem_tokens) {
348
344
  return (0, 0, 0);
349
345
  }
@@ -382,8 +378,8 @@ def find_surrounding_tokens(
382
378
  change_start_char: int,
383
379
  change_end_line: int,
384
380
  change_end_char: int,
385
- sem_tokens: <>list[int]
386
- ) -> <>tuple[(int | None), (int | None), bool] {
381
+ sem_tokens: list[int]
382
+ ) -> tuple[(int | None), (int | None), bool] {
387
383
  prev_token_index = None;
388
384
  next_token_index = None;
389
385
  inside_tok = False;
@@ -422,8 +418,8 @@ def find_surrounding_tokens(
422
418
  """Get the line of code, and the first non-space character index."""
423
419
  def get_line_of_code(
424
420
  line_number: int,
425
- lines: <>list[str]
426
- ) -> Optional[<>tuple[(str, int)]] {
421
+ lines: list[str]
422
+ ) -> Optional[tuple[(str, int)]] {
427
423
  if 0 <= line_number < len(lines) {
428
424
  line = lines[line_number].rstrip('\n');
429
425
  first_non_space = (len(line) - len(line.lstrip()));
@@ -439,7 +435,7 @@ def get_line_of_code(
439
435
 
440
436
  """Add a new text edit to the changes dictionary if it is unique."""
441
437
  def add_unique_text_edit(
442
- changes: <>dict[(str, <>list[lspt.TextEdit])],
438
+ changes: dict[(str, list[lspt.TextEdit])],
443
439
  key: str,
444
440
  new_edit: lspt.TextEdit
445
441
  ) -> None {
@@ -0,0 +1,18 @@
1
+ from jaclang.tests.fixtures.jac_run_py_import import MyModule
2
+
3
+ class SimpleClass:
4
+ def __init__(self, name: str, age: int) -> None:
5
+ self.name = name
6
+ self.age = age
7
+
8
+ def greet(self):
9
+ return f"Hello, my name is {self.name} and I am {self.age} years old."
10
+
11
+
12
+ # Create an object of the class
13
+ person = SimpleClass("Alice", 30)
14
+
15
+ # Run the greet method
16
+ print(person.greet())
17
+
18
+ MyModule.init()
@@ -0,0 +1,13 @@
1
+ class MyModule:
2
+ @staticmethod
3
+ def init():
4
+ print("MyModule initialized!")
5
+
6
+ @staticmethod
7
+ def do_something():
8
+ print("Doing something...")
9
+
10
+
11
+
12
+
13
+
@@ -0,0 +1,15 @@
1
+
2
+
3
+ with entry {
4
+ x = lambda a: int, b: int : b + a;
5
+ print(x(5, 4));
6
+ y = lambda : 567;
7
+ print(y());
8
+ }
9
+
10
+
11
+ with entry{
12
+ f = lambda x:Any :"even" if x % 2 == 0 else "odd";
13
+ print(f(7));
14
+
15
+ }
@@ -0,0 +1,18 @@
1
+
2
+
3
+ walker Tourist {
4
+ can travel with City entry {
5
+
6
+ def foo(a:int){}
7
+ x = lambda a: int, b: int : b + a;
8
+ y = lambda : 567;
9
+ sorted_users = sorted(
10
+ users,
11
+ key=lambda x: dict: x["email"], reverse=True
12
+ );
13
+
14
+ }
15
+ def visit_city(c:City){
16
+ print("Visiting", c.name);
17
+ }
18
+ }
jaclang/tests/test_cli.py CHANGED
@@ -65,7 +65,9 @@ class JacCliTests(TestCase):
65
65
  self.assertIn("Hello Peter Peter", stdout_value)
66
66
  self.assertIn("Peter squared is Peter Peter", stdout_value)
67
67
  self.assertIn("PETER! wrong poem", stdout_value)
68
- self.assertIn("Hello Peter , yoo mother is Mary. Myself, I am Peter.", stdout_value)
68
+ self.assertIn(
69
+ "Hello Peter , yoo mother is Mary. Myself, I am Peter.", stdout_value
70
+ )
69
71
  self.assertIn("Left aligned: Apple | Price: 1.23", stdout_value)
70
72
  self.assertIn("name = Peter 🤔", stdout_value)
71
73
 
@@ -205,19 +207,6 @@ class JacCliTests(TestCase):
205
207
  self.assertIn("Sub objects.", stdout_value)
206
208
  self.assertGreater(stdout_value.count("def exit_"), 10)
207
209
 
208
- def test_jac_cmd_line(self) -> None:
209
- """Basic test for pass."""
210
- process = subprocess.Popen(
211
- ["jac"],
212
- stdin=subprocess.PIPE,
213
- stdout=subprocess.PIPE,
214
- stderr=subprocess.PIPE,
215
- text=True,
216
- )
217
- stdout_value, _ = process.communicate(input="exit\n")
218
- self.assertEqual(process.returncode, 0, "Process did not exit successfully")
219
- self.assertIn("Welcome to the Jac CLI!", stdout_value)
220
-
221
210
  def test_ast_print(self) -> None:
222
211
  """Testing for print AstTool."""
223
212
  captured_output = io.StringIO()
@@ -270,7 +259,7 @@ class JacCliTests(TestCase):
270
259
  '[label="MultiString" shape="oval" style="filled" fillcolor="#fccca4"]',
271
260
  stdout_value,
272
261
  )
273
-
262
+
274
263
  def test_cfg_printgraph(self) -> None:
275
264
  """Testing for print CFG."""
276
265
  captured_output = io.StringIO()
@@ -282,8 +271,8 @@ class JacCliTests(TestCase):
282
271
  stdout_value = captured_output.getvalue()
283
272
  correct_graph = (
284
273
  "digraph G {\n"
285
- ' 0 [label="BB0\\n\\nprint ( \\"im still here\\" ) ;\", shape=box];\n'
286
- ' 1 [label="BB1\\n\\"Hello World!\\" |> print ;\", shape=box];\n'
274
+ ' 0 [label="BB0\\n\\nprint ( \\"im still here\\" ) ;", shape=box];\n'
275
+ ' 1 [label="BB1\\n\\"Hello World!\\" |> print ;", shape=box];\n'
287
276
  "}\n\n"
288
277
  )
289
278
 
@@ -415,6 +404,34 @@ class JacCliTests(TestCase):
415
404
  self.assertIn("class MyClass {", stdout_value)
416
405
  self.assertIn('"""Print function."""', stdout_value)
417
406
 
407
+ def test_lambda_arg_annotation(self) -> None:
408
+ """Test for lambda argument annotation."""
409
+ captured_output = io.StringIO()
410
+ sys.stdout = captured_output
411
+ cli.jac2py(
412
+ f"{self.fixture_abs_path('../../tests/fixtures/lambda_arg_annotation.jac')}"
413
+ )
414
+ sys.stdout = sys.__stdout__
415
+ stdout_value = captured_output.getvalue()
416
+ self.assertIn("x = lambda a, b: b + a", stdout_value)
417
+ self.assertIn("y = lambda: 567", stdout_value)
418
+ self.assertIn("f = lambda x: 'even' if x % 2 == 0 else 'odd'", stdout_value)
419
+
420
+ def test_lambda_self(self) -> None:
421
+ """Test for lambda argument annotation."""
422
+ captured_output = io.StringIO()
423
+ sys.stdout = captured_output
424
+ cli.jac2py(f"{self.fixture_abs_path('../../tests/fixtures/lambda_self.jac')}")
425
+ sys.stdout = sys.__stdout__
426
+ stdout_value = captured_output.getvalue()
427
+ self.assertIn("def travel(self, here: City) -> None:", stdout_value)
428
+ self.assertIn("def foo(a: int) -> None:", stdout_value)
429
+ self.assertIn("x = lambda a, b: b + a", stdout_value)
430
+ self.assertIn("def visit_city(self, c: City) -> None:", stdout_value)
431
+ self.assertIn(
432
+ "sorted(users, key=lambda x: x['email'], reverse=True)", stdout_value
433
+ )
434
+
418
435
  def test_caching_issue(self) -> None:
419
436
  """Test for Caching Issue."""
420
437
  test_file = self.fixture_abs_path("test_caching_issue.jac")
@@ -560,3 +577,35 @@ class JacCliTests(TestCase):
560
577
  stdout, stderr = process.communicate()
561
578
  self.assertIn("Hello, World!", stdout)
562
579
  self.assertIn("Sum: 8", stdout)
580
+
581
+ def test_jac_run_py_bugs(self) -> None:
582
+ """Test jac run python files."""
583
+ process = subprocess.Popen(
584
+ [
585
+ "jac",
586
+ "run",
587
+ self.fixture_abs_path("jac_run_py_bugs.py"),
588
+ ],
589
+ stdin=subprocess.PIPE,
590
+ stdout=subprocess.PIPE,
591
+ stderr=subprocess.PIPE,
592
+ text=True,
593
+ )
594
+ stdout, stderr = process.communicate()
595
+ self.assertIn("Hello, my name is Alice and I am 30 years old.", stdout)
596
+ self.assertIn("MyModule initialized!", stdout)
597
+
598
+ def test_cli_defaults_to_run_with_file(self) -> None:
599
+ """jac myfile.jac should behave like jac run myfile.jac."""
600
+ process = subprocess.Popen(
601
+ [
602
+ "jac",
603
+ self.fixture_abs_path("hello.jac"),
604
+ ],
605
+ stdin=subprocess.PIPE,
606
+ stdout=subprocess.PIPE,
607
+ stderr=subprocess.PIPE,
608
+ text=True,
609
+ )
610
+ stdout, stderr = process.communicate()
611
+ self.assertIn("Hello World!", stdout)
@@ -52,7 +52,7 @@ def resolve_module(target: str, base_path: str) -> Tuple[str, str]:
52
52
  level += 1
53
53
  actual_parts = parts[level:]
54
54
 
55
- for sp in site.getsitepackages():
55
+ for sp in get_jac_search_paths(base_path):
56
56
  res = _candidate_from(sp, actual_parts)
57
57
  if res:
58
58
  return res
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: jaclang
3
- Version: 0.8.6
3
+ Version: 0.8.7
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
  License: MIT
6
6
  Keywords: jac,jaclang,jaseci,python,programming-language,machine-learning,artificial-intelligence
@@ -14,6 +14,7 @@ Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
16
  Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
17
18
  Provides-Extra: all
18
19
  Provides-Extra: cloud
19
20
  Provides-Extra: llm
@@ -1,9 +1,9 @@
1
1
  jaclang/__init__.py,sha256=Na5dttNt9pd93nNzi7xej7S_FAZ3_CTDZUv7tWEGw_c,490
2
2
  jaclang/cli/.gitignore,sha256=NYuons2lzuCpCdefMnztZxeSMgtPVJF6R6zSgVDOV20,27
3
3
  jaclang/cli/__init__.py,sha256=7aaPgYddIAHBvkdv36ngbfwsimMnfGaTDcaHYMg_vf4,23
4
- jaclang/cli/cli.md,sha256=dkYryArunqeR759dOjzFFxXA35HX75FOPFC6NpTGNKE,6046
5
- jaclang/cli/cli.py,sha256=q4D7oB-Le9c0q0AAmnfN143r2p6Al4impRxjhgvG33s,22547
6
- jaclang/cli/cmdreg.py,sha256=EcFsN2Ll9cJdnBOWwO_R1frp0zP8KBKVfATfYsuWmLQ,14392
4
+ jaclang/cli/cli.md,sha256=l12Ev7jr29DFimpGAAoS9NLCLQlMQmM38-ogGFEdVSw,6072
5
+ jaclang/cli/cli.py,sha256=rDZ6cGqvfgEAcSPWGHng7D8Bo11X0taiObQUMg_jRnQ,22920
6
+ jaclang/cli/cmdreg.py,sha256=cRvtESjnwstjYRVD9u5PuTzxO9AZVsa3zSc6Qr1dSMs,8883
7
7
  jaclang/compiler/__init__.py,sha256=6huVTxA1YAjWViq_7vrbKNYi_Q9DMTMkmURlaetyooA,2526
8
8
  jaclang/compiler/codeinfo.py,sha256=ZOSAp1m3dBA8UF-YUz6H6l3wDs1EcuY4xWp13XmgHCo,2332
9
9
  jaclang/compiler/constant.py,sha256=tE92AuqJkP6pwHD0zyL3N1gzmz4K-Xtl74Gad719jMk,8192
@@ -20,8 +20,8 @@ jaclang/compiler/passes/main/def_impl_match_pass.py,sha256=AYhqi5ZFzUQyrJVFAPa9H
20
20
  jaclang/compiler/passes/main/def_use_pass.py,sha256=y35cYo0bmVUUNZNnabvCZ9OqGwZTBPpRjlWV3GTH7VY,4888
21
21
  jaclang/compiler/passes/main/import_pass.py,sha256=nMoFbNIFzZ2sThnvapVvw6IZtoxeycuK7XaDx5AB3Uk,4696
22
22
  jaclang/compiler/passes/main/inheritance_pass.py,sha256=-qD8NeqUqmdskBBkOEm4L81UPucbP_BL9sEqOp7vYd4,5530
23
- jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=eo5Y9sCPzTq6dikC9FExjJFASv4n3F7ag4mSbyGbFac,110578
24
- jaclang/compiler/passes/main/pyast_load_pass.py,sha256=ZlHmGARmJwHm1FCKng2wu7lmcECjxecV_LoiY8t9ANY,85617
23
+ jaclang/compiler/passes/main/pyast_gen_pass.py,sha256=dH3KSChFXavjd_rG-ndniaRYyQb7iWcJNR-mNMwB0qo,110958
24
+ jaclang/compiler/passes/main/pyast_load_pass.py,sha256=gwESgmfd9SYafjQrz6U042pagq9QY46dIN0yCzRGhZw,85386
25
25
  jaclang/compiler/passes/main/pybc_gen_pass.py,sha256=KUQ31396CBb_ib85rYL_QhvHY75ZxyJm8qSps8KYSyE,1876
26
26
  jaclang/compiler/passes/main/pyjac_ast_link_pass.py,sha256=_4l6CLZ_UHDSD0aJyyGesAvY0BSgWtc4F7Deikqgbko,5584
27
27
  jaclang/compiler/passes/main/sem_def_match_pass.py,sha256=txRK3RAtleQsR9sEVIxaWLqy_pTPJEhW3eE2wYKRBSc,2755
@@ -48,8 +48,15 @@ jaclang/compiler/passes/main/tests/fixtures/cfg_gen.jac,sha256=7dAM-0Lm60dnJXnpx
48
48
  jaclang/compiler/passes/main/tests/fixtures/cfg_has_var.jac,sha256=WzaGKic1i66xxanDWHTLVb16WVyddv39VpgbtwrQdFg,233
49
49
  jaclang/compiler/passes/main/tests/fixtures/cfg_if_no_else.jac,sha256=f0nIfUHs2adV_GL17IjcGTkm-WIIJFZHDCnzksXbS1U,180
50
50
  jaclang/compiler/passes/main/tests/fixtures/cfg_return.jac,sha256=gGG8RgpR3qoRzS2RwoFndajN1lLQMqavpYPovS5QEBs,137
51
+ jaclang/compiler/passes/main/tests/fixtures/checker_binary_op.jac,sha256=4hS8q6UlavBdgl1Ut81yd25Z7jxKCZMhRRh7q3Qg3AQ,285
52
+ jaclang/compiler/passes/main/tests/fixtures/checker_call_expr_class.jac,sha256=L9SOnDYfV4B8tleSWLV3aSHS2VGGySTe0JZDhEfK8HI,189
53
+ jaclang/compiler/passes/main/tests/fixtures/checker_cyclic_symbol.jac,sha256=GF5Ezug1A5-tr5emjJTojIW5d8_A6peNb2q9hWs-bXE,27
54
+ jaclang/compiler/passes/main/tests/fixtures/checker_expr_call.jac,sha256=FDFptRXbzgOYv9q-mDNmFXnetAbknUJi-zEAiPzKZpk,114
55
+ jaclang/compiler/passes/main/tests/fixtures/checker_import_missing_module.jac,sha256=agWXZZ3ZidLeVkcWkv_TA0ktHiSS13rDLFo3HZnbJXk,348
51
56
  jaclang/compiler/passes/main/tests/fixtures/checker_imported.jac,sha256=6wjD1NQMbsm0vKf_qCpsr1csqY5a52P8I2je0rk0Qaw,26
52
57
  jaclang/compiler/passes/main/tests/fixtures/checker_importer.jac,sha256=Z6DjHVQDnyAkUDOtZiU-GpHO2eUjXY9_aor5ySLG-3U,121
58
+ jaclang/compiler/passes/main/tests/fixtures/checker_magic_call.jac,sha256=wrR9zviHd8tyIFjPZo51vv9xOcq8Xvzcpy11DXKL1Yo,199
59
+ jaclang/compiler/passes/main/tests/fixtures/checker_mod_path.jac,sha256=Mp-tTqOX6YHSXIE2YiR2gVMWGiB2oYNxi_wL8zK-4FY,93
53
60
  jaclang/compiler/passes/main/tests/fixtures/circular_import.jac,sha256=e6zoQIrSRyToU_rr9be_OK-TGAQzuupKDYfwaS4LrJA,125
54
61
  jaclang/compiler/passes/main/tests/fixtures/codegen_sem.jac,sha256=2K-sPnnuKWvUPvutYhQ6I2voxEgI4xVvl0xf3nZvIRA,1451
55
62
  jaclang/compiler/passes/main/tests/fixtures/codegentext.jac,sha256=U9xyk8hDlWM3jUaozQXOD61f5p9SI-_QfDxA68DUYds,562
@@ -97,7 +104,7 @@ jaclang/compiler/passes/main/tests/fixtures/type_annotation_assignment.jac,sha25
97
104
  jaclang/compiler/passes/main/tests/fixtures/type_info.jac,sha256=Gbatf5_V_2uFVF0l8ICbW8t7N7FKCL-1sE9CbEogT4A,660
98
105
  jaclang/compiler/passes/main/tests/test_binder_pass.py,sha256=0IQPqIW_bwXgMBTIlnBG16wB3W6ExPYC5Z7kU7VzhZ8,3661
99
106
  jaclang/compiler/passes/main/tests/test_cfg_build_pass.py,sha256=BFHuvKbh6mTjemzRRMIAlATar-UDWT8uj8iVro1qsVE,5068
100
- jaclang/compiler/passes/main/tests/test_checker_pass.py,sha256=HQJsg00_94irHnkbtpXY2uSwV1HMsAXHbfvoOUNiGiE,3436
107
+ jaclang/compiler/passes/main/tests/test_checker_pass.py,sha256=5EKPVMcU_bLKFtl4arRKm_uu01iSAGkDFgcQ4PmMh-E,6510
101
108
  jaclang/compiler/passes/main/tests/test_decl_impl_match_pass.py,sha256=HCu5KO1N7kVonIM2N1A9BGRpfnJ4VDwR8TXJGTuKn3M,6039
102
109
  jaclang/compiler/passes/main/tests/test_def_use_pass.py,sha256=CzIcSoUe_wk8gNW6NwF0w_MW9y-13VBLjHZKGYQ4aaE,771
103
110
  jaclang/compiler/passes/main/tests/test_import_pass.py,sha256=2FNsF6Z4zRUsxWOOcbH4fFyvc48FCAP_Yq8qpne04-U,4985
@@ -108,7 +115,7 @@ jaclang/compiler/passes/main/tests/test_sem_def_match_pass.py,sha256=WorjEiU9GdE
108
115
  jaclang/compiler/passes/main/tests/test_sub_node_pass.py,sha256=zO2PNo5DgtD1Qud8rTEdr-gLUVcMUXpQCBY-8-nj684,771
109
116
  jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=7gtUU9vV3q5x2vFt_oHyrq9Q4q538rWcO8911NFtmK4,701
110
117
  jaclang/compiler/passes/main/tests/test_sym_tab_link_pass.py,sha256=N7eNPyIEwiM_1yECaErncmRXTidp89fFRFGFTd_AgIo,1894
111
- jaclang/compiler/passes/main/type_checker_pass.py,sha256=k9YPFor5rN4Lzaq-hR8CP5IV0qb_V9IaGP5Pt_irYvU,5151
118
+ jaclang/compiler/passes/main/type_checker_pass.py,sha256=oZs5u9lV3UGIDC3-Xx0OwDtRGRRJqmiDJXUlXHFOtOg,6076
112
119
  jaclang/compiler/passes/tool/__init__.py,sha256=8M5dq_jq2TC4FCx4Aqr0-Djzf2i_w_1HtYSMLZ0CXNY,299
113
120
  jaclang/compiler/passes/tool/doc_ir.py,sha256=okuoESF1qLbd3OHQxcfzHs35c6eilcIBp2sWNGg1m5w,5978
114
121
  jaclang/compiler/passes/tool/doc_ir_gen_pass.py,sha256=6u8JnRfcnEp9s2_Rmt23IgGKwZsqiGvJsNrz0xGk-gw,60111
@@ -180,16 +187,17 @@ jaclang/compiler/tests/test_importer.py,sha256=BQOuHdrOL5dd0mWeXvX9Om07O9jN59KVG
180
187
  jaclang/compiler/tests/test_parser.py,sha256=LeIVgyQGZmjH_dx8T6g4fOv3KWNzhtfwKn9C3WVdBCM,5888
181
188
  jaclang/compiler/tests/test_sr_errors.py,sha256=iixRll6eP-sgBzR2Zl9Bb-Da5flb67lPaPDQb3IDn3k,1074
182
189
  jaclang/compiler/type_system/__init__.py,sha256=6LO1vhnbQDxb-xPH_YdguQcwUOmtHgmasRNLOf5WV_o,29
183
- jaclang/compiler/type_system/type_evaluator.py,sha256=B9MeSvypv89i_iS_VtItFACNyKvHrTic0xdrFzPvnJc,18645
190
+ jaclang/compiler/type_system/operations.py,sha256=W3Unvaikk-obYcahian0M9tJRBnW_AXU6lhrL4LZ3SA,4129
191
+ jaclang/compiler/type_system/type_evaluator.py,sha256=RJuS59wDEn0gNzBPV1LjfhdL71xrVJdF1UZq_GYUtko,24506
184
192
  jaclang/compiler/type_system/type_utils.py,sha256=EPm3Kdan4cZJswhhjNH_ZjTzpo4fzeXGrWw79uSYa3M,1370
185
193
  jaclang/compiler/type_system/types.py,sha256=H7mgdd2CNX9wOr9D_6R9sb96xVgr47IvLwA5aPzSKms,7536
186
194
  jaclang/compiler/unitree.py,sha256=dzk14I52013ECF5FBjOKoezVKX5aQWZSBpMiMr5g7QM,154375
187
195
  jaclang/langserve/__init__.jac,sha256=3IEtXWjsqOgLA-LPqCwARCw0Kd8B_NeLedALxGshfAE,33
188
196
  jaclang/langserve/dev_engine.jac,sha256=hbuaNyhwNxER34OEQPPIdWS-5TQ-fih3nIjhrtnzJjg,24858
189
197
  jaclang/langserve/dev_server.jac,sha256=GPbFqqx3nX9w63-AFLFrpRo6V_Gb3DDSi097AzygVAM,5800
190
- jaclang/langserve/engine.jac,sha256=r_gAefk2ZTIBZxAQGVYyatDcEvt1VTfGvmTf65rPFSM,24602
198
+ jaclang/langserve/engine.jac,sha256=ZosFbYEZpTt_37eBOZOIzqOb1tDpxsSjwynNgvHhyrk,25999
191
199
  jaclang/langserve/sem_manager.jac,sha256=Gg95nKvXz9RwUNPshgUPHlrdFI8EWzk7Hxxgvs0xwa4,13795
192
- jaclang/langserve/server.jac,sha256=0pBAXu4ruNLuoLIUB307k76HGrR5TRyAYg53jPsqp8U,5768
200
+ jaclang/langserve/server.jac,sha256=OMp04cOsjf-7xAnSQ42Clb3CmPg8XpP2btZz-Snyrec,6192
193
201
  jaclang/langserve/tests/__init__.py,sha256=iDM47k6c3vahaWhwxpbkdEOshbmX-Zl5x669VONjS2I,23
194
202
  jaclang/langserve/tests/defaults.py,sha256=8UWHuCHY-WatPcWFhyX9-4KLuJgODTlLNj0wNnKomIM,7608
195
203
  jaclang/langserve/tests/fixtures/base_module_structure.jac,sha256=bzt1F4kxAW2w0gWLA5PN30IxXN0_Cp7RssOVXxLIy8k,1440
@@ -211,13 +219,13 @@ jaclang/langserve/tests/pylsp_jsonrpc/endpoint.py,sha256=TxDpWUd-8AGJwdRQN_iiCXY
211
219
  jaclang/langserve/tests/pylsp_jsonrpc/exceptions.py,sha256=NGHeFQawZcjoLUcgDmY3bF7BqZR83g7TmdKyzCmRaKM,2836
212
220
  jaclang/langserve/tests/pylsp_jsonrpc/streams.py,sha256=R80_FvICIkrbdGmNtlemWYaxrr7-XldPgLaASnyv0W8,3332
213
221
  jaclang/langserve/tests/server_test/code_test.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
- jaclang/langserve/tests/server_test/test_lang_serve.py,sha256=rRucMdTDtj8e2WXP-DhcI_mcJRx0Ue7naMw2mPuCZwI,11437
222
+ jaclang/langserve/tests/server_test/test_lang_serve.py,sha256=h_mCvwfmY8WJ43vOyGioCRR1gaGV8NuvAXR9umXm-Yw,11382
215
223
  jaclang/langserve/tests/server_test/utils.py,sha256=ji0x497DmzrzxJEhMpVdnev1hMK9W9NnG4850ssNyEg,3707
216
224
  jaclang/langserve/tests/session.jac,sha256=fS-aUHWb-r5ay3R4wJuSmoeoxgAufN4srvTjMP_OhII,10658
217
- jaclang/langserve/tests/test_dev_server.py,sha256=GPKAJOj50ITXObK52ez51kOvv5bSbPAUE3ulKYIvjIM,2910
225
+ jaclang/langserve/tests/test_dev_server.py,sha256=zXjZy3BY40y5dQB2xJ2P3qPEP2B2BvrV4o1wqPm_Q38,2906
218
226
  jaclang/langserve/tests/test_sem_tokens.py,sha256=3ew2yVQhA4PCTRC05sqcoZjb8JSB9hJQJC4TGgD8Ytk,9935
219
- jaclang/langserve/tests/test_server.py,sha256=hc0wXKbayseuAXhpchw1XjeRH_izapje7G28HUtD98I,24668
220
- jaclang/langserve/utils.jac,sha256=jvxVtmfTNEYIFuFmK1hT90EwLDBUut2RQM-GTdzV3Sc,13936
227
+ jaclang/langserve/tests/test_server.py,sha256=U_jwWg07t_sRQr4XfzvjZ12AUhnFMe7k0UvOKtuNB_s,24839
228
+ jaclang/langserve/utils.jac,sha256=o4_O0mro1hwBZMrVbcuAzjSUqxWjh6_GGlmFxjHJiDY,13978
221
229
  jaclang/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
230
  jaclang/runtimelib/__init__.py,sha256=jDDYBCV82qPhmcDVk3NIvHbhng0ebSrXD3xrojg0-eo,34
223
231
  jaclang/runtimelib/archetype.py,sha256=xZ_BRDSRags1p4v4wqm7GGDFraF2wXm4pLpFvHkjRG4,13029
@@ -328,12 +336,16 @@ jaclang/tests/fixtures/import_all_py.py,sha256=glXDPNxw7AJw4On_ltKoYLSnNz6xXHa1M
328
336
  jaclang/tests/fixtures/index_slice.jac,sha256=cRc4_PuUo4g-nsP8Vg7sjqB1y5TVsj9ZMZCxs4Od7e8,628
329
337
  jaclang/tests/fixtures/inherit_check.jac,sha256=1f5lTf1C8Jv8QmfV4tJPG0QjF8w64AhxDVZGABpYkAA,408
330
338
  jaclang/tests/fixtures/jac_from_py.py,sha256=9dOpefwctMG8USPzjRHIGFRywVVUMsfr1xJfCqP1hp4,121
339
+ jaclang/tests/fixtures/jac_run_py_bugs.py,sha256=U28rsUuNqFUH_ONIXD9MM5iTNjNFq2R3Dw_R4mKEIjo,414
340
+ jaclang/tests/fixtures/jac_run_py_import.py,sha256=tSprxrYD4GCEcKoiLkqwSfXnSRZFDdjGj7V_FTv7nVg,173
331
341
  jaclang/tests/fixtures/jacsamp.jac,sha256=EGykSqbVvlBA1UslWp4elMkDBJUevw4E3GLWLw03H6Y,96
332
342
  jaclang/tests/fixtures/jactest_imported.jac,sha256=7mAJufFCrjY0UCz0KEwPEbOK-dHpWuvV3dT8lS3_Zi0,102
333
343
  jaclang/tests/fixtures/jactest_main.jac,sha256=2-_WnbAzJo4yLRF7m9r-cCyB11PP_4j5UB445pdt8B8,408
334
344
  jaclang/tests/fixtures/jp_importer.jac,sha256=72zS4caAoqWcOP2fFshEEb-NxUahL9aTkD-XabwncM8,409
335
345
  jaclang/tests/fixtures/jp_importer_auto.jac,sha256=dZdq2ruCBs5POPC88vyhYzvnXfmhG3uyQtlFWBPMW9Q,410
336
346
  jaclang/tests/fixtures/lambda.jac,sha256=VFF-bh-j4bLamY4RABDmTRY1_O_WPXfAD9swNaMz3rM,112
347
+ jaclang/tests/fixtures/lambda_arg_annotation.jac,sha256=01Cg7FWW2g8R_aqajqoUGhV8WjaWJ5Wq3RqMKv6LEyw,202
348
+ jaclang/tests/fixtures/lambda_self.jac,sha256=1Df_GAZHJAKYnnJymuL8nmo2riY9AMzsuZZveYPMj1o,344
337
349
  jaclang/tests/fixtures/match_multi_ex.jac,sha256=05XB0B0yMWpA84pCvAnKnpXObpE5fcUedpQ8Rly9Qp0,205
338
350
  jaclang/tests/fixtures/maxfail_run_test.jac,sha256=UMoJSwrmNL7mCI65P8XTKrsYgi7mFvwLS3Dd24BmR6k,160
339
351
  jaclang/tests/fixtures/multi_dim_array_split.jac,sha256=xM34uJwKBbI1-Q8Z-dK2lNB7PWvQZUmdsNxMuDwUHKs,290
@@ -391,7 +403,7 @@ jaclang/tests/fixtures/while_else.jac,sha256=Ziej7zCqTc2K7Dy9uE9pzyMns4pWGAVzjRx
391
403
  jaclang/tests/fixtures/with_context.jac,sha256=IitGo_vWRrJ--OU5I9n3LOf_oO8NH02G2D5qIDRkl04,466
392
404
  jaclang/tests/foo/__init__.jac,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
393
405
  jaclang/tests/test_bugs.py,sha256=w1_GJz1lMlsehriDtj1sq-gJlnvF5Kt0Dq1WKnl8By4,556
394
- jaclang/tests/test_cli.py,sha256=3uGLVvVQtucnUS0IMPn9YXCe88iPFry6k9_hV2vYGEA,20825
406
+ jaclang/tests/test_cli.py,sha256=wJQb_pO1sgNRjlWciqcuHjGplLHCAy5vD2tmmp9ZFqg,22761
395
407
  jaclang/tests/test_language.py,sha256=iuCPno6OQaQ-PUGK7QhBuPRX6iameFWxL5aOOyZRHdM,61347
396
408
  jaclang/tests/test_man_code.py,sha256=ouK8XUp2FaEPNu2P7AkZa6OGrow2rNNIcQMF2uhJOvg,5054
397
409
  jaclang/tests/test_reference.py,sha256=p79l0O0PD4VHfKKKV2trlVSRRADlBbXKaOvEXi1X1Yk,3674
@@ -401,7 +413,7 @@ jaclang/utils/__init__.py,sha256=CB3oGfO8uIJsBig2PTQ89gtZB4zs1pIPZEYHa34oliY,203
401
413
  jaclang/utils/helpers.py,sha256=fOObXxov5hgF-VDrsL-w_kE5NA3Cv6Sgdivvbh8xc1I,10132
402
414
  jaclang/utils/lang_tools.py,sha256=n4oshYGy2Ras56A_Tc27dIyoomXJIhqQhd5oX2C9E0g,10819
403
415
  jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
404
- jaclang/utils/module_resolver.py,sha256=6RwoELnRNgiFEeCyJOHa8-REANHOOMZM1bKzKLrTqN0,6645
416
+ jaclang/utils/module_resolver.py,sha256=55Xg9Est2RALcC3WE6M8svJ7eD3MnAjiPF8MyqSBFrE,6654
405
417
  jaclang/utils/symtable_test_helpers.py,sha256=1T9qV8JALdjNjYqVmBY2HVCNI6OodP2D7Uy8qyLpxSA,4512
406
418
  jaclang/utils/test.py,sha256=nLh2t9nbF59BA39UAWK2QUB5WLeb9Hsh006GVivdOVw,6182
407
419
  jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
@@ -5215,7 +5227,7 @@ jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/frequency_lists.pyi,sha256=Dtmz_lJ3F
5215
5227
  jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/matching.pyi,sha256=_qCtgbqOjvvqdQNe4VvwwEggQMtJ65FATWfesuxeukE,3554
5216
5228
  jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/scoring.pyi,sha256=8LMgKMusPGV0WxrcvzZXJbZQCBDKdIMRIdr2wnbXBiI,1454
5217
5229
  jaclang/vendor/typeshed/stubs/zxcvbn/zxcvbn/time_estimates.pyi,sha256=OWLFOMJXtKyoErBCIL7ej-WGLO-blK-j_xhzT-sHiU0,898
5218
- jaclang-0.8.6.dist-info/METADATA,sha256=TysQocXFVG6TZwRGAhxpjIubsbj2LWORDVy53Uyh1xc,5036
5219
- jaclang-0.8.6.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
5220
- jaclang-0.8.6.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
5221
- jaclang-0.8.6.dist-info/RECORD,,
5230
+ jaclang-0.8.7.dist-info/METADATA,sha256=zADeBs0WbQqj21IF6-G2x4oOHBICxgMntZvs4Rowi2s,5087
5231
+ jaclang-0.8.7.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
5232
+ jaclang-0.8.7.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
5233
+ jaclang-0.8.7.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 2.2.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any