wcgw 2.2.2__tar.gz → 2.3.0__tar.gz
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 wcgw might be problematic. Click here for more details.
- {wcgw-2.2.2 → wcgw-2.3.0}/PKG-INFO +2 -2
- {wcgw-2.2.2 → wcgw-2.3.0}/gpt_instructions.txt +1 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/pyproject.toml +3 -3
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/anthropic_client.py +5 -2
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/mcp_server/server.py +9 -4
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/openai_client.py +1 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/tools.py +210 -72
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/types_.py +2 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/uv.lock +131 -134
- {wcgw-2.2.2 → wcgw-2.3.0}/.github/workflows/python-publish.yml +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/.github/workflows/python-tests.yml +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/.github/workflows/python-types.yml +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/.gitignore +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/.python-version +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/.vscode/settings.json +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/README.md +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/gpt_action_json_schema.json +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/openai.md +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/__init__.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/__init__.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/__init__.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/__main__.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/cli.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/common.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/computer_use.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/diff-instructions.txt +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/mcp_server/Readme.md +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/mcp_server/__init__.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/openai_utils.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/client/sys_utils.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/relay/serve.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/src/wcgw/relay/static/privacy.txt +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/static/claude-ss.jpg +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/static/computer-use.jpg +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/static/example.jpg +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/static/rocket-icon.png +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/static/ss1.png +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/tests/test_basic.py +0 -0
- {wcgw-2.2.2 → wcgw-2.3.0}/tests/test_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wcgw
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Shell and coding agent on claude and chatgpt
|
|
5
5
|
Project-URL: Homepage, https://github.com/rusiaaman/wcgw
|
|
6
6
|
Author-email: Aman Rusia <gapypi@arcfu.com>
|
|
@@ -9,7 +9,6 @@ Requires-Dist: anthropic>=0.39.0
|
|
|
9
9
|
Requires-Dist: fastapi>=0.115.0
|
|
10
10
|
Requires-Dist: humanize>=4.11.0
|
|
11
11
|
Requires-Dist: mcp
|
|
12
|
-
Requires-Dist: nltk>=3.9.1
|
|
13
12
|
Requires-Dist: openai>=1.46.0
|
|
14
13
|
Requires-Dist: petname>=2.6
|
|
15
14
|
Requires-Dist: pexpect>=4.9.0
|
|
@@ -19,6 +18,7 @@ Requires-Dist: python-dotenv>=1.0.1
|
|
|
19
18
|
Requires-Dist: rich>=13.8.1
|
|
20
19
|
Requires-Dist: semantic-version>=2.10.0
|
|
21
20
|
Requires-Dist: shell>=1.0.1
|
|
21
|
+
Requires-Dist: syntax-checker==0.2.10
|
|
22
22
|
Requires-Dist: tiktoken==0.7.0
|
|
23
23
|
Requires-Dist: toml>=0.10.2
|
|
24
24
|
Requires-Dist: typer>=0.12.5
|
|
@@ -23,6 +23,7 @@ Instructions for `BashCommand`:
|
|
|
23
23
|
Instructions for `Read File`
|
|
24
24
|
- Read full content of a file.
|
|
25
25
|
- Provide absolute file path only.
|
|
26
|
+
- Use this instead of 'cat' from BashCommand
|
|
26
27
|
|
|
27
28
|
Instructions for `Write if Empty`
|
|
28
29
|
- Write content to an empty or non-existent file. Provide file path and content. Use this instead of BashCommand for writing new files.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
authors = [{ name = "Aman Rusia", email = "gapypi@arcfu.com" }]
|
|
3
3
|
name = "wcgw"
|
|
4
|
-
version = "2.
|
|
4
|
+
version = "2.3.0"
|
|
5
5
|
description = "Shell and coding agent on claude and chatgpt"
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
requires-python = ">=3.11, <3.13"
|
|
@@ -22,10 +22,10 @@ dependencies = [
|
|
|
22
22
|
"websockets>=13.1",
|
|
23
23
|
"pydantic>=2.9.2",
|
|
24
24
|
"semantic-version>=2.10.0",
|
|
25
|
-
"nltk>=3.9.1",
|
|
26
25
|
"anthropic>=0.39.0",
|
|
27
|
-
"mcp",
|
|
28
26
|
"humanize>=4.11.0",
|
|
27
|
+
"mcp",
|
|
28
|
+
"syntax-checker==0.2.10",
|
|
29
29
|
]
|
|
30
30
|
|
|
31
31
|
[project.urls]
|
|
@@ -173,6 +173,7 @@ def loop(
|
|
|
173
173
|
- Always run `pwd` if you get any file or directory not found error to make sure you're not lost.
|
|
174
174
|
- The control will return to you in 5 seconds regardless of the status. For heavy commands, keep checking status using BashInteraction till they are finished.
|
|
175
175
|
- Run long running commands in background using screen instead of "&".
|
|
176
|
+
- Use longer wait_for_seconds if the command is expected to run for a long time.
|
|
176
177
|
""",
|
|
177
178
|
),
|
|
178
179
|
ToolParam(
|
|
@@ -185,8 +186,9 @@ def loop(
|
|
|
185
186
|
- Send send_specials=["Enter"] to recheck status of a running program.
|
|
186
187
|
- Only one of send_text, send_specials, send_ascii should be provided.
|
|
187
188
|
- This returns within 5 seconds, for heavy programs keep checking status for upto 10 turns before asking user to continue checking again.
|
|
188
|
-
|
|
189
|
-
|
|
189
|
+
- Programs don't hang easily, so most likely explanation for no output is usually that the program is still running, and you need to check status again using ["Enter"].
|
|
190
|
+
- Do not send Ctrl-c before checking for status till 10 minutes or whatever is appropriate for the program to finish.
|
|
191
|
+
- Set longer wait_for_seconds when program is expected to run for a long time.
|
|
190
192
|
""",
|
|
191
193
|
),
|
|
192
194
|
ToolParam(
|
|
@@ -195,6 +197,7 @@ def loop(
|
|
|
195
197
|
description="""
|
|
196
198
|
- Read full file content
|
|
197
199
|
- Provide absolute file path only
|
|
200
|
+
- Use this instead of 'cat' from BashCommand
|
|
198
201
|
""",
|
|
199
202
|
),
|
|
200
203
|
ToolParam(
|
|
@@ -91,8 +91,9 @@ async def handle_list_tools() -> list[types.Tool]:
|
|
|
91
91
|
- Optionally `exit shell has restarted` is the output, in which case environment resets, you can run fresh commands.
|
|
92
92
|
- The first or the last line might be `(...truncated)` if the output is too long.
|
|
93
93
|
- Always run `pwd` if you get any file or directory not found error to make sure you're not lost.
|
|
94
|
-
- The control will return to you in
|
|
94
|
+
- The control will return to you in 3 seconds regardless of the status. For heavy commands, keep checking status using BashInteraction till they are finished.
|
|
95
95
|
- Run long running commands in background using screen instead of "&".
|
|
96
|
+
- Use longer wait_for_seconds if the command is expected to run for a long time.
|
|
96
97
|
""",
|
|
97
98
|
),
|
|
98
99
|
ToolParam(
|
|
@@ -105,8 +106,9 @@ async def handle_list_tools() -> list[types.Tool]:
|
|
|
105
106
|
- Send send_specials=["Enter"] to recheck status of a running program.
|
|
106
107
|
- Only one of send_text, send_specials, send_ascii should be provided.
|
|
107
108
|
- This returns within 3 seconds, for heavy programs keep checking status for upto 10 turns before asking user to continue checking again.
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
- Programs don't hang easily, so most likely explanation for no output is usually that the program is still running, and you need to check status again using ["Enter"].
|
|
110
|
+
- Do not send Ctrl-c before checking for status till 10 minutes or whatever is appropriate for the program to finish.
|
|
111
|
+
- Set longer wait_for_seconds when program is expected to run for a long time.
|
|
110
112
|
""",
|
|
111
113
|
),
|
|
112
114
|
ToolParam(
|
|
@@ -115,6 +117,7 @@ async def handle_list_tools() -> list[types.Tool]:
|
|
|
115
117
|
description="""
|
|
116
118
|
- Read full file content
|
|
117
119
|
- Provide absolute file path only
|
|
120
|
+
- Use this instead of 'cat' from BashCommand
|
|
118
121
|
""",
|
|
119
122
|
),
|
|
120
123
|
ToolParam(
|
|
@@ -247,7 +250,9 @@ async def handle_call_tool(
|
|
|
247
250
|
- Always read relevant files before editing.
|
|
248
251
|
- Do not provide code snippets unless asked by the user, instead directly add/edit the code.
|
|
249
252
|
- Do not install new tools/packages before ensuring no such tools/package or an alternative already exists.
|
|
250
|
-
|
|
253
|
+
- Do not use artifacts if you have access to the repository and not asked by the user to provide artifacts/snippets. Directly create/update using shell tools.
|
|
254
|
+
- Do not use Ctrl-c or Ctrl-z or interrupt commands without asking the user, because often the program don't show any update but they still are running.
|
|
255
|
+
- Do not use echo to write multi-line files, always use FileEdit tool to update a code.
|
|
251
256
|
|
|
252
257
|
Additional instructions:
|
|
253
258
|
Always run `pwd` if you get any file or directory not found error to make sure you're not lost, or to get absolute cwd.
|
|
@@ -42,7 +42,7 @@ import rich
|
|
|
42
42
|
import pyte
|
|
43
43
|
from dotenv import load_dotenv
|
|
44
44
|
|
|
45
|
-
import
|
|
45
|
+
from syntax_checker import check_syntax
|
|
46
46
|
from openai import OpenAI
|
|
47
47
|
from openai.types.chat import (
|
|
48
48
|
ChatCompletionMessageParam,
|
|
@@ -50,7 +50,7 @@ from openai.types.chat import (
|
|
|
50
50
|
ChatCompletionMessage,
|
|
51
51
|
ParsedChatCompletionMessage,
|
|
52
52
|
)
|
|
53
|
-
from
|
|
53
|
+
from difflib import SequenceMatcher
|
|
54
54
|
|
|
55
55
|
from ..types_ import (
|
|
56
56
|
BashCommand,
|
|
@@ -183,6 +183,7 @@ class BashState:
|
|
|
183
183
|
self._is_in_docker: Optional[str] = ""
|
|
184
184
|
self._cwd: str = os.getcwd()
|
|
185
185
|
self._shell = start_shell()
|
|
186
|
+
self._whitelist_for_overwrite: set[str] = set()
|
|
186
187
|
|
|
187
188
|
# Get exit info to ensure shell is ready
|
|
188
189
|
_get_exit_code(self._shell)
|
|
@@ -235,6 +236,13 @@ class BashState:
|
|
|
235
236
|
)
|
|
236
237
|
return "Not pending"
|
|
237
238
|
|
|
239
|
+
@property
|
|
240
|
+
def whitelist_for_overwrite(self) -> set[str]:
|
|
241
|
+
return self._whitelist_for_overwrite
|
|
242
|
+
|
|
243
|
+
def add_to_whitelist_for_overwrite(self, file_path: str) -> None:
|
|
244
|
+
self._whitelist_for_overwrite.add(file_path)
|
|
245
|
+
|
|
238
246
|
|
|
239
247
|
BASH_STATE = BashState()
|
|
240
248
|
|
|
@@ -269,7 +277,7 @@ def update_repl_prompt(command: str) -> bool:
|
|
|
269
277
|
BASH_STATE.shell.sendintr()
|
|
270
278
|
index = BASH_STATE.shell.expect([PROMPT, pexpect.TIMEOUT], timeout=0.2)
|
|
271
279
|
if index == 0:
|
|
272
|
-
return
|
|
280
|
+
return True
|
|
273
281
|
before = BASH_STATE.shell.before or ""
|
|
274
282
|
assert before, "Something went wrong updating repl prompt"
|
|
275
283
|
PROMPT = before.split("\n")[-1].strip()
|
|
@@ -301,6 +309,34 @@ def get_status() -> str:
|
|
|
301
309
|
return status.rstrip()
|
|
302
310
|
|
|
303
311
|
|
|
312
|
+
T = TypeVar("T")
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def save_out_of_context(
|
|
316
|
+
tokens: list[T],
|
|
317
|
+
max_tokens: int,
|
|
318
|
+
suffix: str,
|
|
319
|
+
tokens_converted: Callable[[list[T]], str],
|
|
320
|
+
) -> tuple[str, list[Path]]:
|
|
321
|
+
file_contents = list[str]()
|
|
322
|
+
for i in range(0, len(tokens), max_tokens):
|
|
323
|
+
file_contents.append(tokens_converted(tokens[i : i + max_tokens]))
|
|
324
|
+
|
|
325
|
+
if len(file_contents) == 1:
|
|
326
|
+
return file_contents[0], []
|
|
327
|
+
|
|
328
|
+
rest_paths = list[Path]()
|
|
329
|
+
for i, content in enumerate(file_contents):
|
|
330
|
+
if i == 0:
|
|
331
|
+
continue
|
|
332
|
+
file_path = NamedTemporaryFile(delete=False, suffix=suffix).name
|
|
333
|
+
with open(file_path, "w") as f:
|
|
334
|
+
f.write(content)
|
|
335
|
+
rest_paths.append(Path(file_path))
|
|
336
|
+
|
|
337
|
+
return file_contents[0], rest_paths
|
|
338
|
+
|
|
339
|
+
|
|
304
340
|
def execute_bash(
|
|
305
341
|
enc: tiktoken.Encoding,
|
|
306
342
|
bash_arg: BashCommand | BashInteraction,
|
|
@@ -490,8 +526,6 @@ class ImageData(BaseModel):
|
|
|
490
526
|
|
|
491
527
|
Param = ParamSpec("Param")
|
|
492
528
|
|
|
493
|
-
T = TypeVar("T")
|
|
494
|
-
|
|
495
529
|
|
|
496
530
|
def ensure_no_previous_output(func: Callable[Param, T]) -> Callable[Param, T]:
|
|
497
531
|
def wrapper(*args: Param.args, **kwargs: Param.kwargs) -> T:
|
|
@@ -537,20 +571,19 @@ def write_file(writefile: WriteIfEmpty, error_on_exist: bool) -> str:
|
|
|
537
571
|
else:
|
|
538
572
|
path_ = writefile.file_path
|
|
539
573
|
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
len(TOOL_CALLS) > 1
|
|
543
|
-
and isinstance(TOOL_CALLS[-2], FileEdit)
|
|
544
|
-
and TOOL_CALLS[-2].file_path == path_
|
|
545
|
-
)
|
|
546
|
-
and error_on_exist
|
|
547
|
-
)
|
|
548
|
-
|
|
574
|
+
error_on_exist_ = error_on_exist and path_ not in BASH_STATE.whitelist_for_overwrite
|
|
575
|
+
add_overwrite_warning = ""
|
|
549
576
|
if not BASH_STATE.is_in_docker:
|
|
550
|
-
if error_on_exist and os.path.exists(path_):
|
|
551
|
-
|
|
552
|
-
if
|
|
553
|
-
|
|
577
|
+
if (error_on_exist or error_on_exist_) and os.path.exists(path_):
|
|
578
|
+
content = Path(path_).read_text().strip()
|
|
579
|
+
if content:
|
|
580
|
+
if error_on_exist_:
|
|
581
|
+
return f"Error: can't write to existing file {path_}, use other functions to edit the file"
|
|
582
|
+
elif error_on_exist:
|
|
583
|
+
add_overwrite_warning = content
|
|
584
|
+
|
|
585
|
+
# Since we've already errored once, add this to whitelist
|
|
586
|
+
BASH_STATE.add_to_whitelist_for_overwrite(path_)
|
|
554
587
|
|
|
555
588
|
path = Path(path_)
|
|
556
589
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
@@ -561,12 +594,19 @@ def write_file(writefile: WriteIfEmpty, error_on_exist: bool) -> str:
|
|
|
561
594
|
except OSError as e:
|
|
562
595
|
return f"Error: {e}"
|
|
563
596
|
else:
|
|
564
|
-
if error_on_exist:
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
597
|
+
if error_on_exist or error_on_exist_:
|
|
598
|
+
return_code, content, stderr = command_run(
|
|
599
|
+
f"docker exec {BASH_STATE.is_in_docker} cat {shlex.quote(path_)}",
|
|
600
|
+
timeout=TIMEOUT,
|
|
601
|
+
)
|
|
602
|
+
if return_code != 0 and content.strip():
|
|
603
|
+
if error_on_exist_:
|
|
604
|
+
return f"Error: can't write to existing file {path_}, use other functions to edit the file"
|
|
605
|
+
else:
|
|
606
|
+
add_overwrite_warning = content
|
|
607
|
+
|
|
608
|
+
# Since we've already errored once, add this to whitelist
|
|
609
|
+
BASH_STATE.add_to_whitelist_for_overwrite(path_)
|
|
570
610
|
|
|
571
611
|
with TemporaryDirectory() as tmpdir:
|
|
572
612
|
tmppath = os.path.join(tmpdir, os.path.basename(path_))
|
|
@@ -586,42 +626,75 @@ def write_file(writefile: WriteIfEmpty, error_on_exist: bool) -> str:
|
|
|
586
626
|
if rcode != 0:
|
|
587
627
|
return f"Error: Write failed with code {rcode}"
|
|
588
628
|
|
|
629
|
+
extension = Path(path_).suffix.lstrip(".")
|
|
630
|
+
|
|
589
631
|
console.print(f"File written to {path_}")
|
|
590
|
-
|
|
632
|
+
|
|
633
|
+
warnings = []
|
|
634
|
+
try:
|
|
635
|
+
check = check_syntax(extension, writefile.file_content)
|
|
636
|
+
syntax_errors = check.description
|
|
637
|
+
if syntax_errors:
|
|
638
|
+
console.print(f"W: Syntax errors encountered: {syntax_errors}")
|
|
639
|
+
warnings.append(f"""
|
|
640
|
+
---
|
|
641
|
+
Warning: tree-sitter reported syntax errors, please re-read the file and fix if any errors.
|
|
642
|
+
Errors:
|
|
643
|
+
{syntax_errors}
|
|
644
|
+
---
|
|
645
|
+
""")
|
|
646
|
+
|
|
647
|
+
except Exception:
|
|
648
|
+
pass
|
|
649
|
+
|
|
650
|
+
if add_overwrite_warning:
|
|
651
|
+
warnings.append(
|
|
652
|
+
"\n---\nWarning: a file already existed and it's now overwritten. Was it a mistake? If yes please revert your action."
|
|
653
|
+
"Here's the previous content:\n```\n" + add_overwrite_warning + "\n```"
|
|
654
|
+
"\n---\n"
|
|
655
|
+
)
|
|
656
|
+
|
|
657
|
+
return "Success" + "".join(warnings)
|
|
591
658
|
|
|
592
659
|
|
|
593
660
|
def find_least_edit_distance_substring(
|
|
594
|
-
|
|
595
|
-
) -> tuple[str, str
|
|
596
|
-
|
|
597
|
-
content_lines = [
|
|
598
|
-
line.strip() for line in orig_content_lines
|
|
599
|
-
] # Remove trailing and leading space for calculating edit distance
|
|
661
|
+
orig_content_lines: list[str], find_lines: list[str]
|
|
662
|
+
) -> tuple[list[str], str]:
|
|
663
|
+
# Prepare content lines, stripping whitespace and keeping track of original indices
|
|
664
|
+
content_lines = [line.strip() for line in orig_content_lines]
|
|
600
665
|
new_to_original_indices = {}
|
|
601
666
|
new_content_lines = []
|
|
602
|
-
for i in
|
|
603
|
-
if not
|
|
667
|
+
for i, line in enumerate(content_lines):
|
|
668
|
+
if not line:
|
|
604
669
|
continue
|
|
605
|
-
new_content_lines.append(
|
|
670
|
+
new_content_lines.append(line)
|
|
606
671
|
new_to_original_indices[len(new_content_lines) - 1] = i
|
|
607
672
|
content_lines = new_content_lines
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
#
|
|
613
|
-
|
|
673
|
+
|
|
674
|
+
# Prepare find lines, removing empty lines
|
|
675
|
+
find_lines = [line.strip() for line in find_lines if line.strip()]
|
|
676
|
+
|
|
677
|
+
# Initialize variables for best match tracking
|
|
678
|
+
max_similarity = 0.0
|
|
614
679
|
min_edit_distance_lines = []
|
|
615
680
|
context_lines = []
|
|
681
|
+
|
|
682
|
+
# For each possible starting position in content
|
|
616
683
|
for i in range(max(1, len(content_lines) - len(find_lines) + 1)):
|
|
617
|
-
|
|
684
|
+
# Calculate similarity for the block starting at position i
|
|
685
|
+
block_similarity = 0.0
|
|
618
686
|
for j in range(len(find_lines)):
|
|
619
687
|
if (i + j) < len(content_lines):
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
688
|
+
# Use SequenceMatcher for more efficient similarity calculation
|
|
689
|
+
similarity = SequenceMatcher(
|
|
690
|
+
None, content_lines[i + j], find_lines[j]
|
|
691
|
+
).ratio()
|
|
692
|
+
block_similarity += similarity
|
|
693
|
+
|
|
694
|
+
# If this block is more similar than previous best
|
|
695
|
+
if block_similarity > max_similarity:
|
|
696
|
+
max_similarity = block_similarity
|
|
697
|
+
# Map back to original line indices
|
|
625
698
|
orig_start_index = new_to_original_indices[i]
|
|
626
699
|
orig_end_index = (
|
|
627
700
|
new_to_original_indices.get(
|
|
@@ -629,42 +702,79 @@ def find_least_edit_distance_substring(
|
|
|
629
702
|
)
|
|
630
703
|
+ 1
|
|
631
704
|
)
|
|
705
|
+
# Get the original lines
|
|
632
706
|
min_edit_distance_lines = orig_content_lines[
|
|
633
707
|
orig_start_index:orig_end_index
|
|
634
708
|
]
|
|
635
|
-
|
|
709
|
+
# Get context (10 lines before and after)
|
|
636
710
|
context_lines = orig_content_lines[
|
|
637
711
|
max(0, orig_start_index - 10) : (orig_end_index + 10)
|
|
638
712
|
]
|
|
713
|
+
|
|
639
714
|
return (
|
|
640
|
-
|
|
715
|
+
min_edit_distance_lines,
|
|
641
716
|
"\n".join(context_lines),
|
|
642
|
-
min_edit_distance,
|
|
643
717
|
)
|
|
644
718
|
|
|
645
719
|
|
|
646
|
-
def
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
720
|
+
def lines_replacer(
|
|
721
|
+
orig_content_lines: list[str], search_lines: list[str], replace_lines: list[str]
|
|
722
|
+
) -> str:
|
|
723
|
+
# Validation for empty search
|
|
724
|
+
search_lines = list(filter(None, [x.strip() for x in search_lines]))
|
|
725
|
+
|
|
726
|
+
# Create mapping of non-empty lines to original indices
|
|
727
|
+
new_to_original_indices = []
|
|
728
|
+
new_content_lines = []
|
|
729
|
+
for i, line in enumerate(orig_content_lines):
|
|
730
|
+
stripped = line.strip()
|
|
731
|
+
if not stripped:
|
|
732
|
+
continue
|
|
733
|
+
new_content_lines.append(stripped)
|
|
734
|
+
new_to_original_indices.append(i)
|
|
735
|
+
|
|
736
|
+
if not new_content_lines and not search_lines:
|
|
737
|
+
return "\n".join(replace_lines)
|
|
738
|
+
elif not search_lines:
|
|
739
|
+
raise ValueError("Search block is empty")
|
|
740
|
+
elif not new_content_lines:
|
|
741
|
+
raise ValueError("File content is empty")
|
|
742
|
+
|
|
743
|
+
# Search for matching block
|
|
744
|
+
for i in range(len(new_content_lines) - len(search_lines) + 1):
|
|
745
|
+
if all(
|
|
746
|
+
new_content_lines[i + j] == search_lines[j]
|
|
747
|
+
for j in range(len(search_lines))
|
|
748
|
+
):
|
|
749
|
+
start_idx = new_to_original_indices[i]
|
|
750
|
+
end_idx = new_to_original_indices[i + len(search_lines) - 1] + 1
|
|
751
|
+
return "\n".join(
|
|
752
|
+
orig_content_lines[:start_idx]
|
|
753
|
+
+ replace_lines
|
|
754
|
+
+ orig_content_lines[end_idx:]
|
|
657
755
|
)
|
|
658
|
-
raise Exception(
|
|
659
|
-
f"""Error: no match found for the provided search block.
|
|
660
|
-
Requested search block: \n```\n{find_lines}\n```
|
|
661
|
-
Possible relevant section in the file:\n---\n```\n{context_lines}\n```\n---\nFile not edited
|
|
662
|
-
\nPlease retry with exact search. Re-read the file if unsure.
|
|
663
|
-
"""
|
|
664
|
-
)
|
|
665
756
|
|
|
666
|
-
|
|
667
|
-
|
|
757
|
+
raise ValueError("Search block not found in content")
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
def edit_content(content: str, find_lines: str, replace_with_lines: str) -> str:
|
|
761
|
+
replace_with_lines_ = replace_with_lines.split("\n")
|
|
762
|
+
find_lines_ = find_lines.split("\n")
|
|
763
|
+
content_lines_ = content.split("\n")
|
|
764
|
+
try:
|
|
765
|
+
return lines_replacer(content_lines_, find_lines_, replace_with_lines_)
|
|
766
|
+
except ValueError:
|
|
767
|
+
pass
|
|
768
|
+
|
|
769
|
+
_, context_lines = find_least_edit_distance_substring(content_lines_, find_lines_)
|
|
770
|
+
|
|
771
|
+
raise Exception(
|
|
772
|
+
f"""Error: no match found for the provided search block.
|
|
773
|
+
Requested search block: \n```\n{find_lines}\n```
|
|
774
|
+
Possible relevant section in the file:\n---\n```\n{context_lines}\n```\n---\nFile not edited
|
|
775
|
+
\nPlease retry with exact search. Re-read the file if unsure.
|
|
776
|
+
"""
|
|
777
|
+
)
|
|
668
778
|
|
|
669
779
|
|
|
670
780
|
def do_diff_edit(fedit: FileEdit) -> str:
|
|
@@ -695,6 +805,9 @@ def _do_diff_edit(fedit: FileEdit) -> str:
|
|
|
695
805
|
else:
|
|
696
806
|
path_ = fedit.file_path
|
|
697
807
|
|
|
808
|
+
# The LLM is now aware that the file exists
|
|
809
|
+
BASH_STATE.add_to_whitelist_for_overwrite(path_)
|
|
810
|
+
|
|
698
811
|
if not BASH_STATE.is_in_docker:
|
|
699
812
|
if not os.path.exists(path_):
|
|
700
813
|
raise Exception(f"Error: file {path_} does not exist")
|
|
@@ -775,6 +888,22 @@ def _do_diff_edit(fedit: FileEdit) -> str:
|
|
|
775
888
|
if rcode != 0:
|
|
776
889
|
raise Exception(f"Error: Write failed with code {rcode}")
|
|
777
890
|
|
|
891
|
+
syntax_errors = ""
|
|
892
|
+
extension = Path(path_).suffix.lstrip(".")
|
|
893
|
+
try:
|
|
894
|
+
check = check_syntax(extension, apply_diff_to)
|
|
895
|
+
syntax_errors = check.description
|
|
896
|
+
if syntax_errors:
|
|
897
|
+
console.print(f"W: Syntax errors encountered: {syntax_errors}")
|
|
898
|
+
return f"""Wrote file succesfully.
|
|
899
|
+
---
|
|
900
|
+
However, tree-sitter reported syntax errors, please re-read the file and fix if there are any errors.
|
|
901
|
+
Errors:
|
|
902
|
+
{syntax_errors}
|
|
903
|
+
"""
|
|
904
|
+
except Exception:
|
|
905
|
+
pass
|
|
906
|
+
|
|
778
907
|
return "Success"
|
|
779
908
|
|
|
780
909
|
|
|
@@ -885,7 +1014,7 @@ def get_tool_output(
|
|
|
885
1014
|
output = ask_confirmation(arg), 0.0
|
|
886
1015
|
elif isinstance(arg, (BashCommand | BashInteraction)):
|
|
887
1016
|
console.print("Calling execute bash tool")
|
|
888
|
-
output = execute_bash(enc, arg, max_tokens,
|
|
1017
|
+
output = execute_bash(enc, arg, max_tokens, arg.wait_for_seconds)
|
|
889
1018
|
elif isinstance(arg, WriteIfEmpty):
|
|
890
1019
|
console.print("Calling write file tool")
|
|
891
1020
|
output = write_file(arg, True), 0
|
|
@@ -1054,6 +1183,8 @@ def read_file(readfile: ReadFile, max_tokens: Optional[int]) -> str:
|
|
|
1054
1183
|
if not os.path.isabs(readfile.file_path):
|
|
1055
1184
|
return f"Failure: file_path should be absolute path, current working directory is {BASH_STATE.cwd}"
|
|
1056
1185
|
|
|
1186
|
+
BASH_STATE.add_to_whitelist_for_overwrite(readfile.file_path)
|
|
1187
|
+
|
|
1057
1188
|
if not BASH_STATE.is_in_docker:
|
|
1058
1189
|
path = Path(readfile.file_path)
|
|
1059
1190
|
if not path.exists():
|
|
@@ -1075,7 +1206,14 @@ def read_file(readfile: ReadFile, max_tokens: Optional[int]) -> str:
|
|
|
1075
1206
|
if max_tokens is not None:
|
|
1076
1207
|
tokens = default_enc.encode(content)
|
|
1077
1208
|
if len(tokens) > max_tokens:
|
|
1078
|
-
content =
|
|
1079
|
-
|
|
1209
|
+
content, rest = save_out_of_context(
|
|
1210
|
+
tokens,
|
|
1211
|
+
max_tokens - 100,
|
|
1212
|
+
Path(readfile.file_path).suffix,
|
|
1213
|
+
default_enc.decode,
|
|
1214
|
+
)
|
|
1215
|
+
if rest:
|
|
1216
|
+
rest_ = "\n".join(map(str, rest))
|
|
1217
|
+
content += f"\n(...truncated)\n---\nI've split the rest of the file into multiple files. Here are the remaining splits, please read them:\n{rest_}"
|
|
1080
1218
|
|
|
1081
1219
|
return content
|
|
@@ -5,6 +5,7 @@ from pydantic import BaseModel
|
|
|
5
5
|
|
|
6
6
|
class BashCommand(BaseModel):
|
|
7
7
|
command: str
|
|
8
|
+
wait_for_seconds: Optional[int] = None
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
Specials = Literal[
|
|
@@ -17,6 +18,7 @@ class BashInteraction(BaseModel):
|
|
|
17
18
|
send_text: Optional[str] = None
|
|
18
19
|
send_specials: Optional[Sequence[Specials]] = None
|
|
19
20
|
send_ascii: Optional[Sequence[int]] = None
|
|
21
|
+
wait_for_seconds: Optional[int] = None
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
class ReadImage(BaseModel):
|
|
@@ -12,7 +12,7 @@ wheels = [
|
|
|
12
12
|
|
|
13
13
|
[[package]]
|
|
14
14
|
name = "anthropic"
|
|
15
|
-
version = "0.
|
|
15
|
+
version = "0.42.0"
|
|
16
16
|
source = { registry = "https://pypi.org/simple" }
|
|
17
17
|
dependencies = [
|
|
18
18
|
{ name = "anyio" },
|
|
@@ -23,34 +23,32 @@ dependencies = [
|
|
|
23
23
|
{ name = "sniffio" },
|
|
24
24
|
{ name = "typing-extensions" },
|
|
25
25
|
]
|
|
26
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
26
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/7c/91b79f5ae4a52497a4e330d66ea5929aec2878ee2c9f8a998dbe4f4c7f01/anthropic-0.42.0.tar.gz", hash = "sha256:bf8b0ed8c8cb2c2118038f29c58099d2f99f7847296cafdaa853910bfff4edf4", size = 192361 }
|
|
27
27
|
wheels = [
|
|
28
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
28
|
+
{ url = "https://files.pythonhosted.org/packages/ba/33/b907a6d27dd0d8d3adb4edb5c9e9c85a189719ec6855051cce3814c8ef13/anthropic-0.42.0-py3-none-any.whl", hash = "sha256:46775f65b723c078a2ac9e9de44a46db5c6a4fabeacfd165e5ea78e6817f4eff", size = 203365 },
|
|
29
29
|
]
|
|
30
30
|
|
|
31
31
|
[[package]]
|
|
32
32
|
name = "anyio"
|
|
33
|
-
version = "4.
|
|
33
|
+
version = "4.7.0"
|
|
34
34
|
source = { registry = "https://pypi.org/simple" }
|
|
35
35
|
dependencies = [
|
|
36
36
|
{ name = "idna" },
|
|
37
37
|
{ name = "sniffio" },
|
|
38
|
+
{ name = "typing-extensions" },
|
|
38
39
|
]
|
|
39
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
40
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f6/40/318e58f669b1a9e00f5c4453910682e2d9dd594334539c7b7817dabb765f/anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48", size = 177076 }
|
|
40
41
|
wheels = [
|
|
41
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
42
|
+
{ url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352", size = 93052 },
|
|
42
43
|
]
|
|
43
44
|
|
|
44
45
|
[[package]]
|
|
45
46
|
name = "asttokens"
|
|
46
|
-
version = "
|
|
47
|
+
version = "3.0.0"
|
|
47
48
|
source = { registry = "https://pypi.org/simple" }
|
|
48
|
-
|
|
49
|
-
{ name = "six" },
|
|
50
|
-
]
|
|
51
|
-
sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", size = 62284 }
|
|
49
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978 }
|
|
52
50
|
wheels = [
|
|
53
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
51
|
+
{ url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918 },
|
|
54
52
|
]
|
|
55
53
|
|
|
56
54
|
[[package]]
|
|
@@ -67,11 +65,11 @@ wheels = [
|
|
|
67
65
|
|
|
68
66
|
[[package]]
|
|
69
67
|
name = "certifi"
|
|
70
|
-
version = "2024.
|
|
68
|
+
version = "2024.12.14"
|
|
71
69
|
source = { registry = "https://pypi.org/simple" }
|
|
72
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
70
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 }
|
|
73
71
|
wheels = [
|
|
74
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
72
|
+
{ url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 },
|
|
75
73
|
]
|
|
76
74
|
|
|
77
75
|
[[package]]
|
|
@@ -163,16 +161,16 @@ wheels = [
|
|
|
163
161
|
|
|
164
162
|
[[package]]
|
|
165
163
|
name = "fastapi"
|
|
166
|
-
version = "0.115.
|
|
164
|
+
version = "0.115.6"
|
|
167
165
|
source = { registry = "https://pypi.org/simple" }
|
|
168
166
|
dependencies = [
|
|
169
167
|
{ name = "pydantic" },
|
|
170
168
|
{ name = "starlette" },
|
|
171
169
|
{ name = "typing-extensions" },
|
|
172
170
|
]
|
|
173
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
171
|
+
sdist = { url = "https://files.pythonhosted.org/packages/93/72/d83b98cd106541e8f5e5bfab8ef2974ab45a62e8a6c5b5e6940f26d2ed4b/fastapi-0.115.6.tar.gz", hash = "sha256:9ec46f7addc14ea472958a96aae5b5de65f39721a46aaf5705c480d9a8b76654", size = 301336 }
|
|
174
172
|
wheels = [
|
|
175
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
173
|
+
{ url = "https://files.pythonhosted.org/packages/52/b3/7e4df40e585df024fac2f80d1a2d579c854ac37109675db2b0cc22c0bb9e/fastapi-0.115.6-py3-none-any.whl", hash = "sha256:e9240b29e36fa8f4bb7290316988e90c381e5092e0cbe84e7818cc3713bcf305", size = 94843 },
|
|
176
174
|
]
|
|
177
175
|
|
|
178
176
|
[[package]]
|
|
@@ -211,18 +209,17 @@ wheels = [
|
|
|
211
209
|
|
|
212
210
|
[[package]]
|
|
213
211
|
name = "httpx"
|
|
214
|
-
version = "0.
|
|
212
|
+
version = "0.28.1"
|
|
215
213
|
source = { registry = "https://pypi.org/simple" }
|
|
216
214
|
dependencies = [
|
|
217
215
|
{ name = "anyio" },
|
|
218
216
|
{ name = "certifi" },
|
|
219
217
|
{ name = "httpcore" },
|
|
220
218
|
{ name = "idna" },
|
|
221
|
-
{ name = "sniffio" },
|
|
222
219
|
]
|
|
223
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
220
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 }
|
|
224
221
|
wheels = [
|
|
225
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
222
|
+
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 },
|
|
226
223
|
]
|
|
227
224
|
|
|
228
225
|
[[package]]
|
|
@@ -254,7 +251,7 @@ wheels = [
|
|
|
254
251
|
|
|
255
252
|
[[package]]
|
|
256
253
|
name = "ipython"
|
|
257
|
-
version = "8.
|
|
254
|
+
version = "8.30.0"
|
|
258
255
|
source = { registry = "https://pypi.org/simple" }
|
|
259
256
|
dependencies = [
|
|
260
257
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
@@ -268,9 +265,9 @@ dependencies = [
|
|
|
268
265
|
{ name = "traitlets" },
|
|
269
266
|
{ name = "typing-extensions", marker = "python_full_version < '3.12'" },
|
|
270
267
|
]
|
|
271
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
268
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d8/8b/710af065ab8ed05649afa5bd1e07401637c9ec9fb7cfda9eac7e91e9fbd4/ipython-8.30.0.tar.gz", hash = "sha256:cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e", size = 5592205 }
|
|
272
269
|
wheels = [
|
|
273
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
270
|
+
{ url = "https://files.pythonhosted.org/packages/1d/f3/1332ba2f682b07b304ad34cad2f003adcfeb349486103f4b632335074a7c/ipython-8.30.0-py3-none-any.whl", hash = "sha256:85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321", size = 820765 },
|
|
274
271
|
]
|
|
275
272
|
|
|
276
273
|
[[package]]
|
|
@@ -287,43 +284,34 @@ wheels = [
|
|
|
287
284
|
|
|
288
285
|
[[package]]
|
|
289
286
|
name = "jiter"
|
|
290
|
-
version = "0.8.
|
|
291
|
-
source = { registry = "https://pypi.org/simple" }
|
|
292
|
-
sdist = { url = "https://files.pythonhosted.org/packages/78/1e/3462be93c2443392a710ae1c2bba2239f44bbf0c826baea77da9f8311678/jiter-0.8.0.tar.gz", hash = "sha256:86fee98b569d4cc511ff2e3ec131354fafebd9348a487549c31ad371ae730310", size = 162953 }
|
|
293
|
-
wheels = [
|
|
294
|
-
{ url = "https://files.pythonhosted.org/packages/84/e8/336b77bdda32e9a6167ca80b454905772c515a65c35e93d97ed6dc9b6fc0/jiter-0.8.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f6f4e645efd96b4690b9b6091dbd4e0fa2885ba5c57a0305c1916b75b4f30ff6", size = 304423 },
|
|
295
|
-
{ url = "https://files.pythonhosted.org/packages/c9/87/28f93b5373cbca74ac3c6fd6e2025113f1a73164beb7cd966cdaed88cf70/jiter-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f61cf6d93c1ade9b8245c9f14b7900feadb0b7899dbe4aa8de268b705647df81", size = 310783 },
|
|
296
|
-
{ url = "https://files.pythonhosted.org/packages/57/2b/a23342154077995562bedb9c6dc85c6d113910ae54a225118f2b4f6e5765/jiter-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0396bc5cb1309c6dab085e70bb3913cdd92218315e47b44afe9eace68ee8adaa", size = 333675 },
|
|
297
|
-
{ url = "https://files.pythonhosted.org/packages/ee/cb/26dc6e8ae37208e5adc992fc762172efd65b658756e78daf803916d49996/jiter-0.8.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62d0e42ec5dc772bd8554a304358220be5d97d721c4648b23f3a9c01ccc2cb26", size = 354158 },
|
|
298
|
-
{ url = "https://files.pythonhosted.org/packages/e7/5e/de7b2bab00b9648940bb31e34c5b13fffe890e3695560cb72439f8fdd44a/jiter-0.8.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec4b711989860705733fc59fb8c41b2def97041cea656b37cf6c8ea8dee1c3f4", size = 380842 },
|
|
299
|
-
{ url = "https://files.pythonhosted.org/packages/91/c1/f5bad3882d27359a3eb8110f2a0cf9e8fa7a6ffc0b1f7bdb9ad2c5a6facb/jiter-0.8.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859cc35bf304ab066d88f10a44a3251a9cd057fb11ec23e00be22206db878f4f", size = 388716 },
|
|
300
|
-
{ url = "https://files.pythonhosted.org/packages/bc/8c/052f85d911045c720ddd15bfbb71edc1c9043b54f5ab946d0f5cac7ac02c/jiter-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5000195921aa293b39b9b5bc959d7fa658e7f18f938c0e52732da8e3cc70a278", size = 343308 },
|
|
301
|
-
{ url = "https://files.pythonhosted.org/packages/6c/90/d703274855ee34f4da7b50877042bdef9650298a7125067630a62191db7e/jiter-0.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:36050284c0abde57aba34964d3920f3d6228211b65df7187059bb7c7f143759a", size = 374680 },
|
|
302
|
-
{ url = "https://files.pythonhosted.org/packages/7f/42/6af2ca86e7434ab3c028ddb9c38edcdbff2c3edbd599d0ca5b21aa9dfc02/jiter-0.8.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a88f608e050cfe45c48d771e86ecdbf5258314c883c986d4217cc79e1fb5f689", size = 512131 },
|
|
303
|
-
{ url = "https://files.pythonhosted.org/packages/9d/6c/afc4f73accfb9570a4b729840e4e3607196b924fddbdc346d0f02e662375/jiter-0.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:646cf4237665b2e13b4159d8f26d53f59bc9f2e6e135e3a508a2e5dd26d978c6", size = 505038 },
|
|
304
|
-
{ url = "https://files.pythonhosted.org/packages/eb/cf/c3b6821151db25f617d83ff00022dd5769375ead7ab65bf68874b21e0bba/jiter-0.8.0-cp311-none-win32.whl", hash = "sha256:21fe5b8345db1b3023052b2ade9bb4d369417827242892051244af8fae8ba231", size = 204655 },
|
|
305
|
-
{ url = "https://files.pythonhosted.org/packages/f8/72/a3084e9c81ff934c1aa3529ff7c45b6d10d3b5dc649223fb14d7fa1fd6ed/jiter-0.8.0-cp311-none-win_amd64.whl", hash = "sha256:30c2161c5493acf6b6c3c909973fb64ae863747def01cc7574f3954e0a15042c", size = 208198 },
|
|
306
|
-
{ url = "https://files.pythonhosted.org/packages/d1/63/93084c4079b30e7832e1fb907045f8eca146d5d9a67bc62d311332416ab8/jiter-0.8.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d91a52d8f49ada2672a4b808a0c5c25d28f320a2c9ca690e30ebd561eb5a1002", size = 304424 },
|
|
307
|
-
{ url = "https://files.pythonhosted.org/packages/d2/68/ae698958b4d7d27632056cbfeae70e9d7a89ca0954ac6d0ef486afe5d8da/jiter-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c38cf25cf7862f61410b7a49684d34eb3b5bcbd7ddaf4773eea40e0bd43de706", size = 309584 },
|
|
308
|
-
{ url = "https://files.pythonhosted.org/packages/05/b3/d04a1398644c5848339c201e81d1c0d5125097bfd84fd92ebebfe724659c/jiter-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6189beb5c4b3117624be6b2e84545cff7611f5855d02de2d06ff68e316182be", size = 333677 },
|
|
309
|
-
{ url = "https://files.pythonhosted.org/packages/41/cd/76869353a0f5a91cf544bef80a9529d090b7d4254835997507738220e133/jiter-0.8.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e13fa849c0e30643554add089983caa82f027d69fad8f50acadcb21c462244ab", size = 354157 },
|
|
310
|
-
{ url = "https://files.pythonhosted.org/packages/34/9e/64adbc6d578a80debf7a1e81871257266e2149eede59300de7641dcd1a5e/jiter-0.8.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7765ca159d0a58e8e0f8ca972cd6d26a33bc97b4480d0d2309856763807cd28", size = 380841 },
|
|
311
|
-
{ url = "https://files.pythonhosted.org/packages/9d/ef/4ae8f15859d4dae10bef6d1d4a7258fc450b1f9db635becd19403d906ba4/jiter-0.8.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1b0befe7c6e9fc867d5bed21bab0131dfe27d1fa5cd52ba2bced67da33730b7d", size = 388714 },
|
|
312
|
-
{ url = "https://files.pythonhosted.org/packages/3d/dd/3e7e3cdacda1990c1f09d9d2abdf2f37e80f8a9abd17804d61a74d8403fd/jiter-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7d6363d4c6f1052b1d8b494eb9a72667c3ef5f80ebacfe18712728e85327000", size = 341876 },
|
|
313
|
-
{ url = "https://files.pythonhosted.org/packages/44/5b/c9533eb01eee153fd6f936e76a35583f8e244d7a5db9c2b64b4451167368/jiter-0.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a873e57009863eeac3e3969e4653f07031d6270d037d6224415074ac17e5505c", size = 374683 },
|
|
314
|
-
{ url = "https://files.pythonhosted.org/packages/f8/2f/34696e31a79c1b0b30e430dfdcd7c6ee7b5fd0f5b0df4503c1b01ec9bcba/jiter-0.8.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2582912473c0d9940791479fe1bf2976a34f212eb8e0a82ee9e645ac275c5d16", size = 512132 },
|
|
315
|
-
{ url = "https://files.pythonhosted.org/packages/3b/b3/041d97047a30b529d5d99b3cc5d9d58fc71d9c73f106e827ba28a99058b9/jiter-0.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:646163201af42f55393ee6e8f6136b8df488253a6533f4230a64242ecbfe6048", size = 505039 },
|
|
316
|
-
{ url = "https://files.pythonhosted.org/packages/59/5b/630995b058aa26e8ba9b15731b121cec9fc0e105d5ae93d2ed754a0e44f5/jiter-0.8.0-cp312-none-win32.whl", hash = "sha256:96e75c9abfbf7387cba89a324d2356d86d8897ac58c956017d062ad510832dae", size = 205267 },
|
|
317
|
-
{ url = "https://files.pythonhosted.org/packages/1b/0e/1b79afa5616309d4e2e84980c62a3f73c4035e5b856ad7601aebbb5a7db0/jiter-0.8.0-cp312-none-win_amd64.whl", hash = "sha256:ed6074552b4a32e047b52dad5ab497223721efbd0e9efe68c67749f094a092f7", size = 206572 },
|
|
318
|
-
]
|
|
319
|
-
|
|
320
|
-
[[package]]
|
|
321
|
-
name = "joblib"
|
|
322
|
-
version = "1.4.2"
|
|
287
|
+
version = "0.8.2"
|
|
323
288
|
source = { registry = "https://pypi.org/simple" }
|
|
324
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
325
|
-
wheels = [
|
|
326
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
289
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f8/70/90bc7bd3932e651486861df5c8ffea4ca7c77d28e8532ddefe2abc561a53/jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d", size = 163007 }
|
|
290
|
+
wheels = [
|
|
291
|
+
{ url = "https://files.pythonhosted.org/packages/cb/b0/c1a7caa7f9dc5f1f6cfa08722867790fe2d3645d6e7170ca280e6e52d163/jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b", size = 303666 },
|
|
292
|
+
{ url = "https://files.pythonhosted.org/packages/f5/97/0468bc9eeae43079aaa5feb9267964e496bf13133d469cfdc135498f8dd0/jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15", size = 311934 },
|
|
293
|
+
{ url = "https://files.pythonhosted.org/packages/e5/69/64058e18263d9a5f1e10f90c436853616d5f047d997c37c7b2df11b085ec/jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0", size = 335506 },
|
|
294
|
+
{ url = "https://files.pythonhosted.org/packages/9d/14/b747f9a77b8c0542141d77ca1e2a7523e854754af2c339ac89a8b66527d6/jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f", size = 355849 },
|
|
295
|
+
{ url = "https://files.pythonhosted.org/packages/53/e2/98a08161db7cc9d0e39bc385415890928ff09709034982f48eccfca40733/jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099", size = 381700 },
|
|
296
|
+
{ url = "https://files.pythonhosted.org/packages/7a/38/1674672954d35bce3b1c9af99d5849f9256ac8f5b672e020ac7821581206/jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74", size = 389710 },
|
|
297
|
+
{ url = "https://files.pythonhosted.org/packages/f8/9b/92f9da9a9e107d019bcf883cd9125fa1690079f323f5a9d5c6986eeec3c0/jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586", size = 345553 },
|
|
298
|
+
{ url = "https://files.pythonhosted.org/packages/44/a6/6d030003394e9659cd0d7136bbeabd82e869849ceccddc34d40abbbbb269/jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc", size = 376388 },
|
|
299
|
+
{ url = "https://files.pythonhosted.org/packages/ad/8d/87b09e648e4aca5f9af89e3ab3cfb93db2d1e633b2f2931ede8dabd9b19a/jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88", size = 511226 },
|
|
300
|
+
{ url = "https://files.pythonhosted.org/packages/77/95/8008ebe4cdc82eac1c97864a8042ca7e383ed67e0ec17bfd03797045c727/jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6", size = 504134 },
|
|
301
|
+
{ url = "https://files.pythonhosted.org/packages/26/0d/3056a74de13e8b2562e4d526de6dac2f65d91ace63a8234deb9284a1d24d/jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44", size = 203103 },
|
|
302
|
+
{ url = "https://files.pythonhosted.org/packages/4e/1e/7f96b798f356e531ffc0f53dd2f37185fac60fae4d6c612bbbd4639b90aa/jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855", size = 206717 },
|
|
303
|
+
{ url = "https://files.pythonhosted.org/packages/a1/17/c8747af8ea4e045f57d6cfd6fc180752cab9bc3de0e8a0c9ca4e8af333b1/jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f", size = 302027 },
|
|
304
|
+
{ url = "https://files.pythonhosted.org/packages/3c/c1/6da849640cd35a41e91085723b76acc818d4b7d92b0b6e5111736ce1dd10/jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44", size = 310326 },
|
|
305
|
+
{ url = "https://files.pythonhosted.org/packages/06/99/a2bf660d8ccffee9ad7ed46b4f860d2108a148d0ea36043fd16f4dc37e94/jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f", size = 334242 },
|
|
306
|
+
{ url = "https://files.pythonhosted.org/packages/a7/5f/cea1c17864828731f11427b9d1ab7f24764dbd9aaf4648a7f851164d2718/jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60", size = 356654 },
|
|
307
|
+
{ url = "https://files.pythonhosted.org/packages/e9/13/62774b7e5e7f5d5043efe1d0f94ead66e6d0f894ae010adb56b3f788de71/jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57", size = 379967 },
|
|
308
|
+
{ url = "https://files.pythonhosted.org/packages/ec/fb/096b34c553bb0bd3f2289d5013dcad6074948b8d55212aa13a10d44c5326/jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e", size = 389252 },
|
|
309
|
+
{ url = "https://files.pythonhosted.org/packages/17/61/beea645c0bf398ced8b199e377b61eb999d8e46e053bb285c91c3d3eaab0/jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887", size = 345490 },
|
|
310
|
+
{ url = "https://files.pythonhosted.org/packages/d5/df/834aa17ad5dcc3cf0118821da0a0cf1589ea7db9832589278553640366bc/jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d", size = 376991 },
|
|
311
|
+
{ url = "https://files.pythonhosted.org/packages/67/80/87d140399d382fb4ea5b3d56e7ecaa4efdca17cd7411ff904c1517855314/jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152", size = 510822 },
|
|
312
|
+
{ url = "https://files.pythonhosted.org/packages/5c/37/3394bb47bac1ad2cb0465601f86828a0518d07828a650722e55268cdb7e6/jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29", size = 503730 },
|
|
313
|
+
{ url = "https://files.pythonhosted.org/packages/f9/e2/253fc1fa59103bb4e3aa0665d6ceb1818df1cd7bf3eb492c4dad229b1cd4/jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e", size = 203375 },
|
|
314
|
+
{ url = "https://files.pythonhosted.org/packages/41/69/6d4bbe66b3b3b4507e47aa1dd5d075919ad242b4b1115b3f80eecd443687/jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c", size = 204740 },
|
|
327
315
|
]
|
|
328
316
|
|
|
329
317
|
[[package]]
|
|
@@ -404,24 +392,9 @@ wheels = [
|
|
|
404
392
|
{ url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 },
|
|
405
393
|
]
|
|
406
394
|
|
|
407
|
-
[[package]]
|
|
408
|
-
name = "nltk"
|
|
409
|
-
version = "3.9.1"
|
|
410
|
-
source = { registry = "https://pypi.org/simple" }
|
|
411
|
-
dependencies = [
|
|
412
|
-
{ name = "click" },
|
|
413
|
-
{ name = "joblib" },
|
|
414
|
-
{ name = "regex" },
|
|
415
|
-
{ name = "tqdm" },
|
|
416
|
-
]
|
|
417
|
-
sdist = { url = "https://files.pythonhosted.org/packages/3c/87/db8be88ad32c2d042420b6fd9ffd4a149f9a0d7f0e86b3f543be2eeeedd2/nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868", size = 2904691 }
|
|
418
|
-
wheels = [
|
|
419
|
-
{ url = "https://files.pythonhosted.org/packages/4d/66/7d9e26593edda06e8cb531874633f7c2372279c3b0f46235539fe546df8b/nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1", size = 1505442 },
|
|
420
|
-
]
|
|
421
|
-
|
|
422
395
|
[[package]]
|
|
423
396
|
name = "openai"
|
|
424
|
-
version = "1.
|
|
397
|
+
version = "1.58.1"
|
|
425
398
|
source = { registry = "https://pypi.org/simple" }
|
|
426
399
|
dependencies = [
|
|
427
400
|
{ name = "anyio" },
|
|
@@ -433,9 +406,9 @@ dependencies = [
|
|
|
433
406
|
{ name = "tqdm" },
|
|
434
407
|
{ name = "typing-extensions" },
|
|
435
408
|
]
|
|
436
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
409
|
+
sdist = { url = "https://files.pythonhosted.org/packages/27/3c/b1ecce430ed56fa3ac1b0676966d3250aab9c70a408232b71e419ea62148/openai-1.58.1.tar.gz", hash = "sha256:f5a035fd01e141fc743f4b0e02c41ca49be8fab0866d3b67f5f29b4f4d3c0973", size = 343411 }
|
|
437
410
|
wheels = [
|
|
438
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
411
|
+
{ url = "https://files.pythonhosted.org/packages/8e/5a/d22cd07f1a99b9e8b3c92ee0c1959188db4318828a3d88c9daac120bdd69/openai-1.58.1-py3-none-any.whl", hash = "sha256:e2910b1170a6b7f88ef491ac3a42c387f08bd3db533411f7ee391d166571d63c", size = 454279 },
|
|
439
412
|
]
|
|
440
413
|
|
|
441
414
|
[[package]]
|
|
@@ -506,55 +479,55 @@ wheels = [
|
|
|
506
479
|
|
|
507
480
|
[[package]]
|
|
508
481
|
name = "pydantic"
|
|
509
|
-
version = "2.10.
|
|
482
|
+
version = "2.10.4"
|
|
510
483
|
source = { registry = "https://pypi.org/simple" }
|
|
511
484
|
dependencies = [
|
|
512
485
|
{ name = "annotated-types" },
|
|
513
486
|
{ name = "pydantic-core" },
|
|
514
487
|
{ name = "typing-extensions" },
|
|
515
488
|
]
|
|
516
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
489
|
+
sdist = { url = "https://files.pythonhosted.org/packages/70/7e/fb60e6fee04d0ef8f15e4e01ff187a196fa976eb0f0ab524af4599e5754c/pydantic-2.10.4.tar.gz", hash = "sha256:82f12e9723da6de4fe2ba888b5971157b3be7ad914267dea8f05f82b28254f06", size = 762094 }
|
|
517
490
|
wheels = [
|
|
518
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
491
|
+
{ url = "https://files.pythonhosted.org/packages/f3/26/3e1bbe954fde7ee22a6e7d31582c642aad9e84ffe4b5fb61e63b87cd326f/pydantic-2.10.4-py3-none-any.whl", hash = "sha256:597e135ea68be3a37552fb524bc7d0d66dcf93d395acd93a00682f1efcb8ee3d", size = 431765 },
|
|
519
492
|
]
|
|
520
493
|
|
|
521
494
|
[[package]]
|
|
522
495
|
name = "pydantic-core"
|
|
523
|
-
version = "2.27.
|
|
496
|
+
version = "2.27.2"
|
|
524
497
|
source = { registry = "https://pypi.org/simple" }
|
|
525
498
|
dependencies = [
|
|
526
499
|
{ name = "typing-extensions" },
|
|
527
500
|
]
|
|
528
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
529
|
-
wheels = [
|
|
530
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
531
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
532
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
533
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
534
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
535
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
536
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
537
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
538
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
539
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
540
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
541
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
542
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
543
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
544
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
545
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
546
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
547
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
548
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
549
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
550
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
551
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
552
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
553
|
-
{ url = "https://files.pythonhosted.org/packages/f2/
|
|
554
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
555
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
556
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
557
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
501
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 }
|
|
502
|
+
wheels = [
|
|
503
|
+
{ url = "https://files.pythonhosted.org/packages/c2/89/f3450af9d09d44eea1f2c369f49e8f181d742f28220f88cc4dfaae91ea6e/pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc", size = 1893421 },
|
|
504
|
+
{ url = "https://files.pythonhosted.org/packages/9e/e3/71fe85af2021f3f386da42d291412e5baf6ce7716bd7101ea49c810eda90/pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7", size = 1814998 },
|
|
505
|
+
{ url = "https://files.pythonhosted.org/packages/a6/3c/724039e0d848fd69dbf5806894e26479577316c6f0f112bacaf67aa889ac/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15", size = 1826167 },
|
|
506
|
+
{ url = "https://files.pythonhosted.org/packages/2b/5b/1b29e8c1fb5f3199a9a57c1452004ff39f494bbe9bdbe9a81e18172e40d3/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306", size = 1865071 },
|
|
507
|
+
{ url = "https://files.pythonhosted.org/packages/89/6c/3985203863d76bb7d7266e36970d7e3b6385148c18a68cc8915fd8c84d57/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99", size = 2036244 },
|
|
508
|
+
{ url = "https://files.pythonhosted.org/packages/0e/41/f15316858a246b5d723f7d7f599f79e37493b2e84bfc789e58d88c209f8a/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459", size = 2737470 },
|
|
509
|
+
{ url = "https://files.pythonhosted.org/packages/a8/7c/b860618c25678bbd6d1d99dbdfdf0510ccb50790099b963ff78a124b754f/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048", size = 1992291 },
|
|
510
|
+
{ url = "https://files.pythonhosted.org/packages/bf/73/42c3742a391eccbeab39f15213ecda3104ae8682ba3c0c28069fbcb8c10d/pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d", size = 1994613 },
|
|
511
|
+
{ url = "https://files.pythonhosted.org/packages/94/7a/941e89096d1175d56f59340f3a8ebaf20762fef222c298ea96d36a6328c5/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b", size = 2002355 },
|
|
512
|
+
{ url = "https://files.pythonhosted.org/packages/6e/95/2359937a73d49e336a5a19848713555605d4d8d6940c3ec6c6c0ca4dcf25/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474", size = 2126661 },
|
|
513
|
+
{ url = "https://files.pythonhosted.org/packages/2b/4c/ca02b7bdb6012a1adef21a50625b14f43ed4d11f1fc237f9d7490aa5078c/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6", size = 2153261 },
|
|
514
|
+
{ url = "https://files.pythonhosted.org/packages/72/9d/a241db83f973049a1092a079272ffe2e3e82e98561ef6214ab53fe53b1c7/pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c", size = 1812361 },
|
|
515
|
+
{ url = "https://files.pythonhosted.org/packages/e8/ef/013f07248041b74abd48a385e2110aa3a9bbfef0fbd97d4e6d07d2f5b89a/pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc", size = 1982484 },
|
|
516
|
+
{ url = "https://files.pythonhosted.org/packages/10/1c/16b3a3e3398fd29dca77cea0a1d998d6bde3902fa2706985191e2313cc76/pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4", size = 1867102 },
|
|
517
|
+
{ url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 },
|
|
518
|
+
{ url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 },
|
|
519
|
+
{ url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 },
|
|
520
|
+
{ url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 },
|
|
521
|
+
{ url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 },
|
|
522
|
+
{ url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 },
|
|
523
|
+
{ url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 },
|
|
524
|
+
{ url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 },
|
|
525
|
+
{ url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 },
|
|
526
|
+
{ url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 },
|
|
527
|
+
{ url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 },
|
|
528
|
+
{ url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 },
|
|
529
|
+
{ url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 },
|
|
530
|
+
{ url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 },
|
|
558
531
|
]
|
|
559
532
|
|
|
560
533
|
[[package]]
|
|
@@ -689,15 +662,6 @@ wheels = [
|
|
|
689
662
|
{ url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 },
|
|
690
663
|
]
|
|
691
664
|
|
|
692
|
-
[[package]]
|
|
693
|
-
name = "six"
|
|
694
|
-
version = "1.16.0"
|
|
695
|
-
source = { registry = "https://pypi.org/simple" }
|
|
696
|
-
sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041 }
|
|
697
|
-
wheels = [
|
|
698
|
-
{ url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053 },
|
|
699
|
-
]
|
|
700
|
-
|
|
701
665
|
[[package]]
|
|
702
666
|
name = "sniffio"
|
|
703
667
|
version = "1.3.1"
|
|
@@ -747,6 +711,39 @@ wheels = [
|
|
|
747
711
|
{ url = "https://files.pythonhosted.org/packages/96/00/2b325970b3060c7cecebab6d295afe763365822b1306a12eeab198f74323/starlette-0.41.3-py3-none-any.whl", hash = "sha256:44cedb2b7c77a9de33a8b74b2b90e9f50d11fcf25d8270ea525ad71a25374ff7", size = 73225 },
|
|
748
712
|
]
|
|
749
713
|
|
|
714
|
+
[[package]]
|
|
715
|
+
name = "syntax-checker"
|
|
716
|
+
version = "0.2.10"
|
|
717
|
+
source = { registry = "https://pypi.org/simple" }
|
|
718
|
+
wheels = [
|
|
719
|
+
{ url = "https://files.pythonhosted.org/packages/37/82/c0ff92cef366e52a7eb668d9486b5f5e3af57cd796777c02d22c65d6aa41/syntax_checker-0.2.10-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3e82257e18be896ef23e5768ec2c17e63ac20b59b3754601239dc2f9f80c4b0a", size = 2022761 },
|
|
720
|
+
{ url = "https://files.pythonhosted.org/packages/b7/bf/b461d5925ca714c9393ce032a47f5939eeed0df8e0cd6e741eb54b3783f3/syntax_checker-0.2.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e23e503712ded04439d999e6df4690c551e500e086e119116b7a09c050aeb6c7", size = 2141417 },
|
|
721
|
+
{ url = "https://files.pythonhosted.org/packages/4a/03/e681dc349fc79d4ee2662e7726ad266494e2f4056fe1869c07c72aa27bc3/syntax_checker-0.2.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:834b6dc99c9d2bc9f8d08361217c1a490fe33d15cdf21c9da79d7099ab34bde6", size = 2080081 },
|
|
722
|
+
{ url = "https://files.pythonhosted.org/packages/6a/e7/01c8d01bdee0e27004058870d90ecbd97fc113787e219790d4f9ecbedf14/syntax_checker-0.2.10-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a87968dd32c8f563ef6e5b5e1d6b1aa6f8b0b843b5c290d122e6f2af65300a14", size = 2078567 },
|
|
723
|
+
{ url = "https://files.pythonhosted.org/packages/4e/ec/175a138a2180d669f395ec48e88331e7342f12f71dba4203564cfa4ed65b/syntax_checker-0.2.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5f76f03abdf20fc1ff1ea57be4f4144d2bbc5213e6f7eabd29d21623d05f832f", size = 2254479 },
|
|
724
|
+
{ url = "https://files.pythonhosted.org/packages/f6/ef/7e78f97dfcd859fb8affa5b83b01b7be85f2e5039c7ffeb5e14b9a633fc1/syntax_checker-0.2.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52662b7499a741fceec488ab33e2134705494cc343c69898a627d211b80d1981", size = 2065800 },
|
|
725
|
+
{ url = "https://files.pythonhosted.org/packages/d0/93/77cbc93728c66274936cecfec3ee24588a882c9bf1a4b33410b799718c70/syntax_checker-0.2.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9666cbf7e258a613562d761fb6f91a8ed92f38dccad0ba06eb72010ca67dbb9d", size = 2116825 },
|
|
726
|
+
{ url = "https://files.pythonhosted.org/packages/74/d3/8045d4eeb539032eb845668e2664a2c680500cb556ebc5c99fda4725a479/syntax_checker-0.2.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a1ee099948c69b5f22e3a0c43b47cd5af574de05eb2686770a43ae93749a9381", size = 2229851 },
|
|
727
|
+
{ url = "https://files.pythonhosted.org/packages/93/ca/28259fcbb0ef39eed990664a69330e920a67eb99cffca0d1d4bb43424879/syntax_checker-0.2.10-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6d5894c178e68007b746016d5f714ecc000450daeb8a14c47bf9df51f75042c4", size = 2316381 },
|
|
728
|
+
{ url = "https://files.pythonhosted.org/packages/41/a1/254228c45c7fdeb66d95ab8757608870a4e28c220e9ff7283301221ae154/syntax_checker-0.2.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:901a13111a479cccbcc748f8f905883b4a7a5852541d5bb81d4658742395a9e1", size = 2301990 },
|
|
729
|
+
{ url = "https://files.pythonhosted.org/packages/87/b4/359a99f2954d7abcdb066808a2ab9b5c7bd183a8134069fd928f89b17845/syntax_checker-0.2.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7cd698e16ac638f8fb9181b45a67d6044873f8f93d0b5e5e403805e391c52edb", size = 2238231 },
|
|
730
|
+
{ url = "https://files.pythonhosted.org/packages/80/3d/3ea27c814522a9285aa468c796a8294a2045f016107eb3e37c0d1b28fa02/syntax_checker-0.2.10-cp311-cp311-win32.whl", hash = "sha256:2a747d969e04ef2959e49fe98261cd3ecbaa0dddb20520878a1ceff6079cf3f4", size = 1854525 },
|
|
731
|
+
{ url = "https://files.pythonhosted.org/packages/78/02/1eeff3a999491e4be78934f84a6c14bcd3b95d8faa85fbe4788747e99377/syntax_checker-0.2.10-cp311-cp311-win_amd64.whl", hash = "sha256:26d18dbef32e0872dc7d0a4982b460b81e66d9482d2548c8575c6dc1d1c25e51", size = 1865567 },
|
|
732
|
+
{ url = "https://files.pythonhosted.org/packages/9c/c3/d767644eba31703da24e91304ea4917ba266ae168145a3de09ce8f3ace64/syntax_checker-0.2.10-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b1b78a0493c1ae3fb72d1be0a5701583ea62fab3c63a63a4f7c3a901ace57a9b", size = 2022421 },
|
|
733
|
+
{ url = "https://files.pythonhosted.org/packages/67/f0/292b319e9650a6a156308b5032a746cb3d08230a847c633558292e87792e/syntax_checker-0.2.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c10e1fc27ce57ec45c373c5e9eb1f02c284c468c74aba5b2f108c31aeb51a43f", size = 2141223 },
|
|
734
|
+
{ url = "https://files.pythonhosted.org/packages/5d/11/4f6d58ff5afcecd81051008a55b2e017fc0efa389c24463d2372eb0eefac/syntax_checker-0.2.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4fea0ed981802464185a453d24d134cd2437f3303d28f7dc929ae458c01bc0e", size = 2079817 },
|
|
735
|
+
{ url = "https://files.pythonhosted.org/packages/7a/81/a5979e29270301c3170a41aa496729a9c9b2299a07ad04d5591bb3753ecc/syntax_checker-0.2.10-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c606a2624d4fb5ea38c6410f7ee018ae9a0b374c91cf52282731f67bce76d415", size = 2077704 },
|
|
736
|
+
{ url = "https://files.pythonhosted.org/packages/04/a0/61852005659010dbc1804c4134b82b588733a95a12c7e5ce8f7daae5f3b7/syntax_checker-0.2.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6ca9127873c5af93c32cce0de6c50c5733af6f53be7d454b8d42e6d188fdf8", size = 2239902 },
|
|
737
|
+
{ url = "https://files.pythonhosted.org/packages/88/dc/96f4f5d001ebed58599194f3cd46d8a2e6b64fa1e30fe906cd984835ebac/syntax_checker-0.2.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97d9e87e169da3018cbe597bd251244263497800931268c83daeca523fe1f706", size = 2066186 },
|
|
738
|
+
{ url = "https://files.pythonhosted.org/packages/ce/f4/ed1cd796a7679effaebcc6f86014d35602200d07c6ce9c490064a7e108c4/syntax_checker-0.2.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:814d5669889d065471d5d198734c29dedf4b635c4501ce48ec0be5ce7db78a13", size = 2116667 },
|
|
739
|
+
{ url = "https://files.pythonhosted.org/packages/76/f2/b21c9cb0b130a562a651b7b18b72473441f5de71feedc5bd953398869979/syntax_checker-0.2.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c6f2989d1c1a68ac88a17bdf89ced83e99714e4bb16119c8474f63b99c407b63", size = 2229328 },
|
|
740
|
+
{ url = "https://files.pythonhosted.org/packages/fd/9d/25b99649f062dd8269b30e2e32a669ce3b68e8d2b23b9b0d43e47df443bf/syntax_checker-0.2.10-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:840d0921bc52ba6a78608e1837badc15135c8ef5f2da218cf8f8713cbc320eb5", size = 2315460 },
|
|
741
|
+
{ url = "https://files.pythonhosted.org/packages/17/ae/1d03ad529e21bbd2420a0db284e250126e4f5f1ce10f5da383c9ded5bb9a/syntax_checker-0.2.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e6e290d23ea18d3bccd2685aedc19c2f6b7dd23869fb58f42a00589984c9fb29", size = 2301626 },
|
|
742
|
+
{ url = "https://files.pythonhosted.org/packages/84/01/3c955e8c36366517137628e5e650df20b429e1a06169fdd3a5343acf2e55/syntax_checker-0.2.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6fbbdbc3cb7cdd009dd74ae1b791cc5a88dcd6ef06fa187d0a9f4a5694069a52", size = 2238048 },
|
|
743
|
+
{ url = "https://files.pythonhosted.org/packages/3a/da/db90bde51b2f41e169212344176a3577070a4a85dc62073fd0a38becac76/syntax_checker-0.2.10-cp312-cp312-win32.whl", hash = "sha256:9363215330ab4b52349671b6c92bf455b287560ec896f6017c65ed459492eb94", size = 1854001 },
|
|
744
|
+
{ url = "https://files.pythonhosted.org/packages/b8/be/57ae5491d80241b97b23326c04deed35c104e79887c18a9157344ad961fb/syntax_checker-0.2.10-cp312-cp312-win_amd64.whl", hash = "sha256:545f0da5894aec5b8d1d0f967efc0541fa0a9463eb5b7b307d908868cc3605e9", size = 1866063 },
|
|
745
|
+
]
|
|
746
|
+
|
|
750
747
|
[[package]]
|
|
751
748
|
name = "tiktoken"
|
|
752
749
|
version = "0.7.0"
|
|
@@ -805,7 +802,7 @@ wheels = [
|
|
|
805
802
|
|
|
806
803
|
[[package]]
|
|
807
804
|
name = "typer"
|
|
808
|
-
version = "0.
|
|
805
|
+
version = "0.15.1"
|
|
809
806
|
source = { registry = "https://pypi.org/simple" }
|
|
810
807
|
dependencies = [
|
|
811
808
|
{ name = "click" },
|
|
@@ -813,18 +810,18 @@ dependencies = [
|
|
|
813
810
|
{ name = "shellingham" },
|
|
814
811
|
{ name = "typing-extensions" },
|
|
815
812
|
]
|
|
816
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
813
|
+
sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/dca7b219718afd37a0068f4f2530a727c2b74a8b6e8e0c0080a4c0de4fcd/typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a", size = 99789 }
|
|
817
814
|
wheels = [
|
|
818
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
815
|
+
{ url = "https://files.pythonhosted.org/packages/d0/cc/0a838ba5ca64dc832aa43f727bd586309846b0ffb2ce52422543e6075e8a/typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847", size = 44908 },
|
|
819
816
|
]
|
|
820
817
|
|
|
821
818
|
[[package]]
|
|
822
819
|
name = "types-pexpect"
|
|
823
|
-
version = "4.9.0.
|
|
820
|
+
version = "4.9.0.20241208"
|
|
824
821
|
source = { registry = "https://pypi.org/simple" }
|
|
825
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
822
|
+
sdist = { url = "https://files.pythonhosted.org/packages/35/8b/2ac0c1db88bdc441d21477f151a074b1789aa3a4deac571b079a097bd987/types_pexpect-4.9.0.20241208.tar.gz", hash = "sha256:bbca0d0819947a719989a5cfe83641d9212bef893e2f0a7a01e47926bc82401d", size = 13222 }
|
|
826
823
|
wheels = [
|
|
827
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
824
|
+
{ url = "https://files.pythonhosted.org/packages/37/c6/14c23e04bae6a83e051da86c1670684e59acadab333a8497384aa201defd/types_pexpect-4.9.0.20241208-py3-none-any.whl", hash = "sha256:1928f478528454f0fea3495c16cf1ee2e67fca5c9fe97d60b868ac48c1fd5633", size = 17085 },
|
|
828
825
|
]
|
|
829
826
|
|
|
830
827
|
[[package]]
|
|
@@ -856,27 +853,26 @@ wheels = [
|
|
|
856
853
|
|
|
857
854
|
[[package]]
|
|
858
855
|
name = "uvicorn"
|
|
859
|
-
version = "0.
|
|
856
|
+
version = "0.34.0"
|
|
860
857
|
source = { registry = "https://pypi.org/simple" }
|
|
861
858
|
dependencies = [
|
|
862
859
|
{ name = "click" },
|
|
863
860
|
{ name = "h11" },
|
|
864
861
|
]
|
|
865
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
862
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568 }
|
|
866
863
|
wheels = [
|
|
867
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
864
|
+
{ url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315 },
|
|
868
865
|
]
|
|
869
866
|
|
|
870
867
|
[[package]]
|
|
871
868
|
name = "wcgw"
|
|
872
|
-
version = "2.
|
|
869
|
+
version = "2.3.0"
|
|
873
870
|
source = { editable = "." }
|
|
874
871
|
dependencies = [
|
|
875
872
|
{ name = "anthropic" },
|
|
876
873
|
{ name = "fastapi" },
|
|
877
874
|
{ name = "humanize" },
|
|
878
875
|
{ name = "mcp" },
|
|
879
|
-
{ name = "nltk" },
|
|
880
876
|
{ name = "openai" },
|
|
881
877
|
{ name = "petname" },
|
|
882
878
|
{ name = "pexpect" },
|
|
@@ -886,6 +882,7 @@ dependencies = [
|
|
|
886
882
|
{ name = "rich" },
|
|
887
883
|
{ name = "semantic-version" },
|
|
888
884
|
{ name = "shell" },
|
|
885
|
+
{ name = "syntax-checker" },
|
|
889
886
|
{ name = "tiktoken" },
|
|
890
887
|
{ name = "toml" },
|
|
891
888
|
{ name = "typer" },
|
|
@@ -909,7 +906,6 @@ requires-dist = [
|
|
|
909
906
|
{ name = "fastapi", specifier = ">=0.115.0" },
|
|
910
907
|
{ name = "humanize", specifier = ">=4.11.0" },
|
|
911
908
|
{ name = "mcp", git = "https://github.com/rusiaaman/python-sdk?rev=53b69f397eae6ac81a51b84b34ff52b3119f11cb" },
|
|
912
|
-
{ name = "nltk", specifier = ">=3.9.1" },
|
|
913
909
|
{ name = "openai", specifier = ">=1.46.0" },
|
|
914
910
|
{ name = "petname", specifier = ">=2.6" },
|
|
915
911
|
{ name = "pexpect", specifier = ">=4.9.0" },
|
|
@@ -919,6 +915,7 @@ requires-dist = [
|
|
|
919
915
|
{ name = "rich", specifier = ">=13.8.1" },
|
|
920
916
|
{ name = "semantic-version", specifier = ">=2.10.0" },
|
|
921
917
|
{ name = "shell", specifier = ">=1.0.1" },
|
|
918
|
+
{ name = "syntax-checker", specifier = "==0.2.10" },
|
|
922
919
|
{ name = "tiktoken", specifier = "==0.7.0" },
|
|
923
920
|
{ name = "toml", specifier = ">=0.10.2" },
|
|
924
921
|
{ name = "typer", specifier = ">=0.12.5" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|