jaclang 0.7.8__py3-none-any.whl → 0.7.10__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
@@ -243,7 +243,7 @@ def test(
243
243
 
244
244
  jac test => jac test -d .
245
245
  """
246
- Jac.run_test(
246
+ failcount = Jac.run_test(
247
247
  filepath=filepath,
248
248
  filter=filter,
249
249
  xit=xit,
@@ -251,6 +251,8 @@ def test(
251
251
  directory=directory,
252
252
  verbose=verbose,
253
253
  )
254
+ if failcount:
255
+ raise SystemExit(f"Tests failed: {failcount}")
254
256
 
255
257
 
256
258
  @cmd_registry.register
@@ -676,7 +676,7 @@ class Module(AstDocNode):
676
676
  if self.doc:
677
677
  new_kid.append(self.doc)
678
678
  new_kid.extend(self.body)
679
- self.set_kids(nodes=new_kid)
679
+ self.set_kids(nodes=new_kid if len(new_kid) else [EmptyToken()])
680
680
  return res
681
681
 
682
682
  def unparse(self) -> str:
@@ -8,6 +8,7 @@ import os
8
8
  import pathlib
9
9
  import sys
10
10
 
11
+ # import jaclang
11
12
  import jaclang.compiler.absyntree as ast
12
13
  import jaclang.compiler.passes.utils.mypy_ast_build as myab
13
14
  from jaclang.compiler.constant import Constants as Con
@@ -93,12 +94,29 @@ class JacTypeCheckPass(Pass):
93
94
  mypy_graph[module.name] = st
94
95
  new_modules.append(st)
95
96
 
97
+ # def get_stub(mod: str) -> myab.BuildSource:
98
+ # """Get stub file path."""
99
+ # return myab.BuildSource(
100
+ # path=str(
101
+ # pathlib.Path(os.path.dirname(jaclang.__file__)).parent
102
+ # / "stubs"
103
+ # / "jaclang"
104
+ # / "plugin"
105
+ # / f"{mod}.pyi"
106
+ # ),
107
+ # module=f"jaclang.plugin.{mod}",
108
+ # )
109
+
96
110
  graph = myab.load_graph(
97
111
  [
98
112
  myab.BuildSource(
99
113
  path=str(self.__path / "typeshed" / "stdlib" / "builtins.pyi"),
100
114
  module="builtins",
101
- )
115
+ ),
116
+ # get_stub("default"),
117
+ # get_stub("feature"),
118
+ # get_stub("spec"),
119
+ # get_stub("builtin"),
102
120
  ],
103
121
  manager,
104
122
  old_graph=mypy_graph,
@@ -3,7 +3,7 @@
3
3
  import ast as ast3
4
4
  from difflib import unified_diff
5
5
 
6
- import jaclang.compiler.absyntree as ast
6
+
7
7
  from jaclang.compiler.compile import jac_file_to_pass, jac_str_to_pass
8
8
  from jaclang.compiler.passes.main import PyastGenPass
9
9
  from jaclang.compiler.passes.main.schedules import py_code_gen as without_format
@@ -2,7 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import asyncio
5
6
  import logging
7
+ from concurrent.futures import ThreadPoolExecutor
6
8
  from enum import IntEnum
7
9
  from typing import Optional
8
10
 
@@ -60,21 +62,35 @@ class ModuleInfo:
60
62
  """Return uri."""
61
63
  return uris.from_fs_path(self.ir.loc.mod_path)
62
64
 
63
- @property
64
- def has_syntax_error(self) -> bool:
65
- """Return if there are syntax errors."""
66
- return len(self.errors) > 0 and self.alev == ALev.QUICK
67
-
68
- def update_with(self, new_info: ModuleInfo, refresh: bool = False) -> None:
65
+ def update_with(
66
+ self,
67
+ build: Pass,
68
+ alev: ALev,
69
+ refresh: bool = False,
70
+ mod_override: Optional[ast.Module] = None,
71
+ ) -> None:
69
72
  """Update module info."""
70
- self.ir = new_info.ir
73
+ target_mod = mod_override if mod_override else build.ir
74
+ if not isinstance(target_mod, ast.Module):
75
+ return
76
+ self.ir = target_mod # if alev > ALev.QUICK else self.ir
71
77
  if refresh:
72
- self.errors = new_info.errors
73
- self.warnings = new_info.warnings
78
+ self.errors = build.errors_had
79
+ self.warnings = build.warnings_had
74
80
  else:
75
- self.errors += [i for i in new_info.errors if i not in self.errors]
76
- self.warnings += [i for i in new_info.warnings if i not in self.warnings]
77
- self.alev = new_info.alev
81
+ self.errors += [
82
+ i
83
+ for i in build.errors_had
84
+ if i not in self.errors
85
+ if i.loc.mod_path == target_mod.loc.mod_path
86
+ ]
87
+ self.warnings += [
88
+ i
89
+ for i in build.warnings_had
90
+ if i not in self.warnings
91
+ if i.loc.mod_path == target_mod.loc.mod_path
92
+ ]
93
+ self.alev = alev
78
94
  self.diagnostics = self.gen_diagnostics()
79
95
  if self.alev == ALev.TYPE:
80
96
  self.sem_tokens = self.gen_sem_tokens()
@@ -126,8 +142,9 @@ class JacLangServer(LanguageServer):
126
142
  """Initialize workspace."""
127
143
  super().__init__("jac-lsp", "v0.1")
128
144
  self.modules: dict[str, ModuleInfo] = {}
145
+ self.executor = ThreadPoolExecutor()
129
146
 
130
- def push_diagnostics(self, file_path: str) -> None:
147
+ async def push_diagnostics(self, file_path: str) -> None:
131
148
  """Push diagnostics for a file."""
132
149
  if file_path in self.modules:
133
150
  self.publish_diagnostics(
@@ -155,36 +172,36 @@ class JacLangServer(LanguageServer):
155
172
  if not isinstance(build.ir, ast.Module):
156
173
  self.log_error("Error with module build.")
157
174
  return
158
- new_mod = ModuleInfo(
159
- ir=build.ir,
160
- errors=[
161
- i
162
- for i in build.errors_had
163
- if i.loc.mod_path == uris.to_fs_path(file_path)
164
- ],
165
- warnings=[
166
- i
167
- for i in build.warnings_had
168
- if i.loc.mod_path == uris.to_fs_path(file_path)
169
- ],
170
- alev=alev,
171
- )
172
175
  if file_path in self.modules:
173
- self.modules[file_path].update_with(new_mod, refresh=refresh)
176
+ self.modules[file_path].update_with(build, alev, refresh=refresh)
174
177
  else:
175
- self.modules[file_path] = new_mod
176
- for p in build.ir.mod_deps.keys():
177
- uri = uris.from_fs_path(p)
178
- new_mod = ModuleInfo(
179
- ir=build.ir.mod_deps[p],
180
- errors=[i for i in build.errors_had if i.loc.mod_path == p],
181
- warnings=[i for i in build.warnings_had if i.loc.mod_path == p],
178
+ self.modules[file_path] = ModuleInfo(
179
+ ir=build.ir,
180
+ errors=[
181
+ i
182
+ for i in build.errors_had
183
+ if i.loc.mod_path == uris.to_fs_path(file_path)
184
+ ],
185
+ warnings=[
186
+ i
187
+ for i in build.warnings_had
188
+ if i.loc.mod_path == uris.to_fs_path(file_path)
189
+ ],
182
190
  alev=alev,
183
191
  )
192
+ for p in build.ir.mod_deps.keys():
193
+ uri = uris.from_fs_path(p)
184
194
  if not refresh and uri in self.modules:
185
- self.modules[uri].update_with(new_mod)
195
+ self.modules[uri].update_with(
196
+ build, alev, mod_override=build.ir.mod_deps[p], refresh=refresh
197
+ )
186
198
  else:
187
- self.modules[uri] = new_mod
199
+ self.modules[uri] = ModuleInfo(
200
+ ir=build.ir.mod_deps[p],
201
+ errors=[i for i in build.errors_had if i.loc.mod_path == p],
202
+ warnings=[i for i in build.warnings_had if i.loc.mod_path == p],
203
+ alev=alev,
204
+ )
188
205
  self.modules[uri].parent = (
189
206
  self.modules[file_path] if file_path != uri else None
190
207
  )
@@ -230,17 +247,23 @@ class JacLangServer(LanguageServer):
230
247
  self.update_modules(file_path, build, ALev.TYPE)
231
248
  return len(self.modules[file_path].errors) == 0
232
249
 
233
- def analyze_and_publish(self, uri: str, level: int = 2) -> None:
250
+ async def analyze_and_publish(self, uri: str, level: int = 2) -> None:
234
251
  """Analyze and publish diagnostics."""
235
252
  self.log_py(f"Analyzing {uri}...")
236
- success = self.quick_check(uri)
237
- self.push_diagnostics(uri)
253
+ success = await asyncio.get_event_loop().run_in_executor(
254
+ self.executor, self.quick_check, uri
255
+ )
256
+ await self.push_diagnostics(uri)
238
257
  if success and level > 0:
239
- success = self.deep_check(uri)
240
- self.push_diagnostics(uri)
258
+ success = await asyncio.get_event_loop().run_in_executor(
259
+ self.executor, self.deep_check, uri
260
+ )
261
+ await self.push_diagnostics(uri)
241
262
  if level > 1:
242
- self.type_check(uri)
243
- self.push_diagnostics(uri)
263
+ await asyncio.get_event_loop().run_in_executor(
264
+ self.executor, self.type_check, uri
265
+ )
266
+ await self.push_diagnostics(uri)
244
267
 
245
268
  def get_completion(
246
269
  self, file_path: str, position: lspt.Position
@@ -338,7 +361,9 @@ class JacLangServer(LanguageServer):
338
361
 
339
362
  def get_document_symbols(self, file_path: str) -> list[lspt.DocumentSymbol]:
340
363
  """Return document symbols for a file."""
341
- if root_node := self.modules[file_path].ir._sym_tab:
364
+ if file_path in self.modules and (
365
+ root_node := self.modules[file_path].ir._sym_tab
366
+ ):
342
367
  return collect_symbols(root_node)
343
368
  return []
344
369
 
@@ -18,21 +18,24 @@ server = JacLangServer()
18
18
 
19
19
  @server.feature(lspt.TEXT_DOCUMENT_DID_OPEN)
20
20
  @server.feature(lspt.TEXT_DOCUMENT_DID_SAVE)
21
- def did_open(ls: JacLangServer, params: lspt.DidOpenTextDocumentParams) -> None:
21
+ async def did_open(ls: JacLangServer, params: lspt.DidOpenTextDocumentParams) -> None:
22
22
  """Check syntax on change."""
23
- ls.analyze_and_publish(params.text_document.uri)
24
- # token_params = lspt.SemanticTokensParams(
25
- # text_document=lspt.TextDocumentIdentifier(uri=params.text_document.uri)
26
- # )
27
- # tokens = semantic_tokens_full(ls, token_params)
28
- # ls.send_notification("textDocument/publishSemanticTokens", tokens)
23
+ await ls.analyze_and_publish(params.text_document.uri)
29
24
 
30
25
 
31
26
  @server.feature(lspt.TEXT_DOCUMENT_DID_CHANGE)
32
- @debounce(0.1)
27
+ @debounce(0.3)
33
28
  async def did_change(ls: JacLangServer, params: lspt.DidOpenTextDocumentParams) -> None:
34
29
  """Check syntax on change."""
35
- ls.analyze_and_publish(params.text_document.uri, level=0)
30
+ await ls.analyze_and_publish(params.text_document.uri, level=1)
31
+
32
+
33
+ @server.feature(lspt.TEXT_DOCUMENT_FORMATTING)
34
+ def formatting(
35
+ ls: JacLangServer, params: lspt.DocumentFormattingParams
36
+ ) -> list[lspt.TextEdit]:
37
+ """Format the given document."""
38
+ return ls.formatted_jac(params.text_document.uri)
36
39
 
37
40
 
38
41
  @server.feature(
@@ -86,14 +89,6 @@ def completion(ls: JacLangServer, params: lspt.CompletionParams) -> lspt.Complet
86
89
  return ls.get_completion(params.text_document.uri, params.position)
87
90
 
88
91
 
89
- @server.feature(lspt.TEXT_DOCUMENT_FORMATTING)
90
- def formatting(
91
- ls: JacLangServer, params: lspt.DocumentFormattingParams
92
- ) -> list[lspt.TextEdit]:
93
- """Format the given document."""
94
- return ls.formatted_jac(params.text_document.uri)
95
-
96
-
97
92
  @server.feature(lspt.TEXT_DOCUMENT_HOVER, lspt.HoverOptions(work_done_progress=True))
98
93
  def hover(
99
94
  ls: JacLangServer, params: lspt.TextDocumentPositionParams
jaclang/plugin/default.py CHANGED
@@ -251,9 +251,10 @@ class JacFeatureDefaults:
251
251
  maxfail: Optional[int],
252
252
  directory: Optional[str],
253
253
  verbose: bool,
254
- ) -> bool:
254
+ ) -> int:
255
255
  """Run the test suite in the specified .jac file."""
256
256
  test_file = False
257
+ ret_count = 0
257
258
  if filepath:
258
259
  if filepath.endswith(".jac"):
259
260
  base, mod_name = os.path.split(filepath)
@@ -262,6 +263,7 @@ class JacFeatureDefaults:
262
263
  JacTestCheck.reset()
263
264
  Jac.jac_import(target=mod_name, base_path=base)
264
265
  JacTestCheck.run_test(xit, maxfail, verbose)
266
+ ret_count = JacTestCheck.failcount
265
267
  else:
266
268
  print("Not a .jac file.")
267
269
  else:
@@ -293,10 +295,11 @@ class JacFeatureDefaults:
293
295
  if JacTestCheck.breaker and (xit or maxfail):
294
296
  break
295
297
  JacTestCheck.breaker = False
298
+ ret_count += JacTestCheck.failcount
296
299
  JacTestCheck.failcount = 0
297
300
  print("No test files found.") if not test_file else None
298
301
 
299
- return True
302
+ return ret_count
300
303
 
301
304
  @staticmethod
302
305
  @hookimpl
jaclang/plugin/feature.py CHANGED
@@ -132,7 +132,7 @@ class JacFeature:
132
132
  maxfail: Optional[int] = None,
133
133
  directory: Optional[str] = None,
134
134
  verbose: bool = False,
135
- ) -> bool:
135
+ ) -> int:
136
136
  """Run the test suite in the specified .jac file."""
137
137
  return pm.hook.run_test(
138
138
  filepath=filepath,
jaclang/plugin/spec.py CHANGED
@@ -121,7 +121,7 @@ class JacFeatureSpec:
121
121
  maxfail: Optional[int],
122
122
  directory: Optional[str],
123
123
  verbose: bool,
124
- ) -> bool:
124
+ ) -> int:
125
125
  """Run the test suite in the specified .jac file."""
126
126
  raise NotImplementedError
127
127
 
jaclang/py.typed ADDED
File without changes
@@ -2,6 +2,7 @@
2
2
 
3
3
  import io
4
4
  import sys
5
+ from contextlib import suppress
5
6
 
6
7
  from jaclang.cli import cli
7
8
  from jaclang.utils.test import TestCase
@@ -114,11 +115,12 @@ class JacCliTests(TestCase):
114
115
  sys.stdout = stdio_block
115
116
 
116
117
  # Execute the function
117
- cli.test(
118
- self.fixture_abs_path(
119
- "../../../examples/manual_code/circle_clean_tests.jac"
118
+ with suppress(SystemExit):
119
+ cli.test(
120
+ self.fixture_abs_path(
121
+ "../../../examples/manual_code/circle_clean_tests.jac"
122
+ )
120
123
  )
121
- )
122
124
 
123
125
  sys.stderr = sys.__stderr__
124
126
  sys.stdout = sys.__stdout__
jaclang/utils/helpers.py CHANGED
@@ -108,12 +108,12 @@ def auto_generate_refs() -> None:
108
108
  heading = heading.strip()
109
109
  heading_snakecase = heading_to_snake(heading)
110
110
  content = (
111
- f'## {heading}\n**Grammar Snippet**\n```yaml linenums="{lines[0]}"\n--8<-- '
112
- f'"jaclang/compiler/jac.lark:{lines[0]}:{lines[1]}"\n```\n'
113
- f'**Code Example**\n=== "Jac"\n ```jac linenums="1"\n --8<-- "examples/reference/'
111
+ f'## {heading}\n**Code Example**\n=== "Jac"\n ```jac linenums="1"\n --8<-- "examples/reference/'
114
112
  f'{heading_snakecase}.jac"\n'
115
113
  f' ```\n=== "Python"\n ```python linenums="1"\n --8<-- "examples/reference/'
116
114
  f'{heading_snakecase}.py"\n ```\n'
115
+ f'??? example "Jac Grammar Snippet"\n ```yaml linenums="{lines[0]}"\n --8<-- '
116
+ f'"jaclang/compiler/jac.lark:{lines[0]}:{lines[1]}"\n ```\n'
117
117
  "**Description**\n\n--8<-- "
118
118
  f'"examples/reference/'
119
119
  f'{heading_snakecase}.md"\n'
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaclang
3
- Version: 0.7.8
3
+ Version: 0.7.10
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
7
- Keywords: jac,jaclang,programming-language,machine-learning,artificial-intelligence
7
+ Keywords: jac,jaclang,jaseci,python,programming-language,machine-learning,artificial-intelligence
8
8
  Author: Jason Mars
9
9
  Author-email: jason@jaseci.org
10
10
  Requires-Python: >=3.11.0,<4.0.0
@@ -2,11 +2,11 @@ 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=8CbN_oqMhZ71AJhgA9J0Q551GMO3ey273dgaFPckLyI,13582
5
+ jaclang/cli/cli.py,sha256=LUu53it5DMotyuhY1f28twR3KTR2inhrYyml9Ga00NI,13667
6
6
  jaclang/cli/cmdreg.py,sha256=u0jAd6A8czt7tBgPBBKBhYAG4By1FrjEGaTU2XFKeYs,8372
7
7
  jaclang/compiler/.gitignore,sha256=n1k2_xXTorp9PY8hhYM4psHircn-NMaFx95bSgDKopo,10
8
8
  jaclang/compiler/__init__.py,sha256=P8h-q53h-MTK8Wmvpb7sP5R6Ojz94Y2F9nqMwIUt0d4,3064
9
- jaclang/compiler/absyntree.py,sha256=q3Ma7mGGzPDRoiNEX_H0wJmechx4zGpSYTnYCJpa-WA,134509
9
+ jaclang/compiler/absyntree.py,sha256=Xwkd3sxRmjWobNZEO-UNDmDfSC0wA0ihN-FSRXrZ-1Q,134545
10
10
  jaclang/compiler/codeloc.py,sha256=YhJcHjhMCOT6mV1qLehwriuFgW0H2-ntq68k_r8yBs4,2800
11
11
  jaclang/compiler/compile.py,sha256=0d8p4i2LXg2RCu1XfWx_Jq_dx7pK2Zn2VIj-apvX_nI,3389
12
12
  jaclang/compiler/constant.py,sha256=n4KaEkvnb9-KVJJVvxiWimhjbrOiknBvLHAVDBFbF7Y,8991
@@ -62,7 +62,7 @@ jaclang/compiler/passes/main/tests/test_sub_node_pass.py,sha256=I8m2SM2Z-OJkRG3C
62
62
  jaclang/compiler/passes/main/tests/test_sym_tab_build_pass.py,sha256=85mUM6mYYLCrQ9AivBIbreG7CgdsJH2zrNOqdcpnwBo,730
63
63
  jaclang/compiler/passes/main/tests/test_type_check_pass.py,sha256=v2_KmcyX1_fOpReRKM0mUnlFXKVPRvFCMR3Mw9ftytI,2265
64
64
  jaclang/compiler/passes/main/tests/test_typeinfo_pass.py,sha256=ehC0_giLg7NwB7fR10nW5Te8mZ76qmUFxkK1bEjtmrw,129
65
- jaclang/compiler/passes/main/type_check_pass.py,sha256=ER2GXi_B0qRD31p224yAI9b3PZeSRLAXkpfFa1oq1C4,3440
65
+ jaclang/compiler/passes/main/type_check_pass.py,sha256=TyVC3jmuxMvG8Fo4TbceMnRSgZxX98m65cfMh10C5O8,4073
66
66
  jaclang/compiler/passes/tool/__init__.py,sha256=xekCOXysHIcthWm8NRmQoA1Ah1XV8vFbkfeHphJtUdc,223
67
67
  jaclang/compiler/passes/tool/fuse_comments_pass.py,sha256=N9a84qArNuTXX1iaXsBzqcufx6A3zYq2p-1ieH6FmHc,3133
68
68
  jaclang/compiler/passes/tool/jac_formatter_pass.py,sha256=yqq2OOSs2tlDKUnPe0GS3NAZh8F5fquA5ZTYw44QX08,87356
@@ -100,7 +100,7 @@ jaclang/compiler/passes/tool/tests/fixtures/simple_walk.jac,sha256=6jwYKXxJ1B4Vf
100
100
  jaclang/compiler/passes/tool/tests/fixtures/simple_walk_fmt.jac,sha256=6jwYKXxJ1B4VfYDFlQhStN3_QX7dDXzC2gI6U9-KhZM,806
101
101
  jaclang/compiler/passes/tool/tests/test_fuse_comments_pass.py,sha256=ZeWHsm7VIyyS8KKpoB2SdlHM4jF22fMfSrfTfxt2MQw,398
102
102
  jaclang/compiler/passes/tool/tests/test_jac_format_pass.py,sha256=AKGBEz02bS9REJuryZlPvY2avE_XWqKV8sRrnh5hu2g,6101
103
- jaclang/compiler/passes/tool/tests/test_unparse_validate.py,sha256=sIBDl35Cns6vv200GsKyLBbIggKKV2tDy4gq_J8zf6E,2768
103
+ jaclang/compiler/passes/tool/tests/test_unparse_validate.py,sha256=HtaIGwLoY2yz1T3nkI9SFjMEnY_st7cnUcz6hmguR6I,2728
104
104
  jaclang/compiler/passes/transform.py,sha256=GEHK3zFWrEjbAQ3mIl3D59jBuIrA8DRbw9t_IlUqg3M,2297
105
105
  jaclang/compiler/passes/utils/__init__.py,sha256=UsI5rUopTUiStAzup4kbPwIwrnC5ofCrqWBCBbM2-k4,35
106
106
  jaclang/compiler/passes/utils/mypy_ast_build.py,sha256=aPvvdGSwbOGHYiK5kY665bqtfjj7s2YfTONV4EuLai8,26162
@@ -126,8 +126,8 @@ jaclang/core/memory.py,sha256=7QukfL6wDBXrdpRn01yu4RMNkmIMNqFiKrI0zfpGSy4,2947
126
126
  jaclang/core/test.py,sha256=HRCl3cf0uPTe58Kcx_sBUb6ow8J53rnmpFOhA7g9oAA,2851
127
127
  jaclang/core/utils.py,sha256=uzEsRSuNSMMo7dlvCozGv0TnpUmHEjGNzUTZt1Df2gQ,7741
128
128
  jaclang/langserve/__init__.py,sha256=3qbnivBBcLZCfmDYRMIeKkG08Lx7XQsJJg-qG8TU8yc,51
129
- jaclang/langserve/engine.py,sha256=oo9IvUFTKxpfk65sk2ExRBEhN0y2PzFTLrTNF0rxMeE,16289
130
- jaclang/langserve/server.py,sha256=XGg9AfGiY17DvVGLQ-O228OwdvSsKaqdhnsiYxVgwew,4368
129
+ jaclang/langserve/engine.py,sha256=9Uyzn00usblkej_dc8J0g8DCZhPxgvbHEgYinyzUV-k,17212
130
+ jaclang/langserve/server.py,sha256=4WrJXEVYWEcTjXlNoRx0patf34tjPXENKg35ofSYhtI,4121
131
131
  jaclang/langserve/tests/__init__.py,sha256=iDM47k6c3vahaWhwxpbkdEOshbmX-Zl5x669VONjS2I,23
132
132
  jaclang/langserve/tests/defaults.py,sha256=8UWHuCHY-WatPcWFhyX9-4KLuJgODTlLNj0wNnKomIM,7608
133
133
  jaclang/langserve/tests/fixtures/base_module_structure.jac,sha256=gtU3Uq0gsJy6G8Dg4IWiL-YSk_LVFAYK4mVEPt5rGpE,515
@@ -151,9 +151,9 @@ jaclang/langserve/tests/test_server.py,sha256=Bmllojot7c40rq0mDMOAiOyowY0-ECh_qA
151
151
  jaclang/langserve/utils.py,sha256=JS_XxDAtqTO4r0wSQjxgGqHwx9xTN_JZpNI1YP-kgbY,9868
152
152
  jaclang/plugin/__init__.py,sha256=5t2krHKt_44PrCTGojzxEimxpNHYVQcn89jAiCSXE_k,165
153
153
  jaclang/plugin/builtin.py,sha256=MEMPUnj_rlwcCNmUkfH5S8iazMnQ6fpp6tls4fh5z7k,1188
154
- jaclang/plugin/default.py,sha256=PBRhDnMChwLbV-Mzuy5Uss1ziRZ3UNCnGfOb1D6fOP4,23533
155
- jaclang/plugin/feature.py,sha256=fhyQRNYOkcXlYn1ObFPqdOHPhtC_lGQfgd7RD2ooLUY,9792
156
- jaclang/plugin/spec.py,sha256=CMu6rzi94eIZaqsFz3NIbN3upJgGneb4FE_7Rly7slE,8893
154
+ jaclang/plugin/default.py,sha256=QF-ITQrpr_8zpX6P7PCuvD0CxPteY_EsEwDZSiUiSEA,23658
155
+ jaclang/plugin/feature.py,sha256=V1-Zis7DwLK1QrL1h89Dk_M45hNe5iyISE37PR_aFKU,9791
156
+ jaclang/plugin/spec.py,sha256=WjqNywrQYR8aSVa47Kx2RqgTFDfvWe2vydNIjxysy5M,8892
157
157
  jaclang/plugin/tests/__init__.py,sha256=rn_tNG8jCHWwBc_rx4yFkGc4N1GISb7aPuTFVRTvrTk,38
158
158
  jaclang/plugin/tests/fixtures/impl_match.jac,sha256=WEhcA1GlovusITEFO2bOjYYqiiULyYGKhM17uK2GqnI,91
159
159
  jaclang/plugin/tests/fixtures/impl_match_impl.jac,sha256=k1385r7Hdlq6mUKxEHa3VOKJUIWH08hYg2kErhbYwFM,31
@@ -161,6 +161,7 @@ jaclang/plugin/tests/fixtures/simple_node_connection.jac,sha256=KdbpACWtnj92TqQq
161
161
  jaclang/plugin/tests/fixtures/simple_persistent.jac,sha256=o0TZTOJEZjFW8A2IGY8ICBZEBZzHhqha0xQFFBK_DSI,624
162
162
  jaclang/plugin/tests/test_features.py,sha256=p0N5inZn92Cj0eqslmDR0-q6pVG8hkcQfA6CuQcfP3Y,2352
163
163
  jaclang/plugin/tests/test_jaseci.py,sha256=XcVL-FOZMTsjJEZqCa-rcYyEPl1dxdFFu9vhvm8kUaI,7956
164
+ jaclang/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
165
  jaclang/settings.py,sha256=7rKy_kQkWjciwBoWHoJVYrK0nxLwaG54FFvFLOGGggk,3375
165
166
  jaclang/tests/fixtures/abc.jac,sha256=AWzRxTBjvQwoLSOakjn0kKXWqKvDaUYGc1zmBk1Nd5c,1770
166
167
  jaclang/tests/fixtures/access_checker.jac,sha256=6Inm14cZsyMfezFRs2zfnQEZSE_JRxVvytcZbox7BNw,375
@@ -244,11 +245,11 @@ jaclang/tests/fixtures/with_context.jac,sha256=cDA_4YWe5UVmQRgcpktzkZ_zsswQpV_T2
244
245
  jaclang/tests/test_bugs.py,sha256=tBPsIlSPqZDIz4QaScNRT-WdGIdJ0uU-aRBWq1XUZ6o,555
245
246
  jaclang/tests/test_cli.py,sha256=tnqdx8W5jTlsDJYR3713EikJqCbcgWEknEwuRHByvWk,8703
246
247
  jaclang/tests/test_language.py,sha256=T0DqM3aFjJ5_0oWqKhEkOyY1eruv-uGRgWkjWWcngXE,34671
247
- jaclang/tests/test_man_code.py,sha256=Kq93zg3hEfiouvpWvmfCgR6lDT5RKDp28k5ZaWe1Xeg,4519
248
+ jaclang/tests/test_man_code.py,sha256=fLaN9TxvaTsiEBcud0VO1KOsv0EjonNnuS-JcRHyji4,4606
248
249
  jaclang/tests/test_reference.py,sha256=FoZQS-U9teiag8mAmX5X6ak4fuCOv00mvOyqJ44Zkc8,3379
249
250
  jaclang/tests/test_settings.py,sha256=TIX5uiu8H9IpZN2__uFiclcdCpBpPpcAwtlEHyFC4kk,1999
250
251
  jaclang/utils/__init__.py,sha256=86LQ_LDyWV-JFkYBpeVHpLaVxkqwFDP60XpWXOFZIQk,46
251
- jaclang/utils/helpers.py,sha256=v-jQ-SDzGLrrLXKxoL1PaCguJqcV-X1UlwjWSL3GNAI,6142
252
+ jaclang/utils/helpers.py,sha256=aPAIj7j_Gqg0DToFj-DEbfea6gIbiBhAEFDtxw-Av4c,6168
252
253
  jaclang/utils/lang_tools.py,sha256=5R-Pe_ylXqWEPXrUGsQ3Vy7rrItf_mbyK19ptFSKiJI,10020
253
254
  jaclang/utils/log.py,sha256=G8Y_DnETgTh9xzvlW5gh9zqJ1ap4YY_MDTwIMu5Uc0Y,262
254
255
  jaclang/utils/test.py,sha256=Ll3H2l8U2OVQGHAkohsryDXIKSJHJseQSrMHS8JQTiw,5414
@@ -1477,7 +1478,7 @@ jaclang/vendor/typing_extensions-4.12.2.dist-info/METADATA,sha256=BeUQIa8cnYbrjW
1477
1478
  jaclang/vendor/typing_extensions-4.12.2.dist-info/RECORD,sha256=XS4fBVrPI7kaNZ56Ggl2RGa76jySWLqTzcrUpZIQTVM,418
1478
1479
  jaclang/vendor/typing_extensions-4.12.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
1479
1480
  jaclang/vendor/typing_extensions.py,sha256=gwekpyG9DVG3lxWKX4ni8u7nk3We5slG98mA9F3DJQw,134451
1480
- jaclang-0.7.8.dist-info/METADATA,sha256=LTPHZdBbBJASj1F0iU9uv1uY49AgOhQaDMxmfQfTYp0,4807
1481
- jaclang-0.7.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1482
- jaclang-0.7.8.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1483
- jaclang-0.7.8.dist-info/RECORD,,
1481
+ jaclang-0.7.10.dist-info/METADATA,sha256=ZGjbf_LoUyPYl01OoQViBQMvVuO0xsJAFz9IeQSUGXo,4822
1482
+ jaclang-0.7.10.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1483
+ jaclang-0.7.10.dist-info/entry_points.txt,sha256=8sMi4Tvi9f8tQDN2QAXsSA2icO27zQ4GgEdph6bNEZM,49
1484
+ jaclang-0.7.10.dist-info/RECORD,,