aient 1.1.4__py3-none-any.whl → 1.1.6__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.
- aient/plugins/excute_command.py +51 -3
- {aient-1.1.4.dist-info → aient-1.1.6.dist-info}/METADATA +1 -1
- {aient-1.1.4.dist-info → aient-1.1.6.dist-info}/RECORD +6 -6
- {aient-1.1.4.dist-info → aient-1.1.6.dist-info}/WHEEL +0 -0
- {aient-1.1.4.dist-info → aient-1.1.6.dist-info}/licenses/LICENSE +0 -0
- {aient-1.1.4.dist-info → aient-1.1.6.dist-info}/top_level.txt +0 -0
aient/plugins/excute_command.py
CHANGED
@@ -12,6 +12,31 @@ IS_UNIX = hasattr(os, 'fork')
|
|
12
12
|
if IS_UNIX:
|
13
13
|
import pty
|
14
14
|
|
15
|
+
import difflib
|
16
|
+
|
17
|
+
last_line = ""
|
18
|
+
def calculate_similarity(string1: str, string2: str) -> float:
|
19
|
+
"""Calculates the similarity ratio between two strings.
|
20
|
+
|
21
|
+
Args:
|
22
|
+
string1: The first string.
|
23
|
+
string2: The second string.
|
24
|
+
|
25
|
+
Returns:
|
26
|
+
A float between 0 and 1, where 1 means the strings are identical
|
27
|
+
and 0 means they are completely different.
|
28
|
+
"""
|
29
|
+
return difflib.SequenceMatcher(None, string1, string2).ratio()
|
30
|
+
|
31
|
+
def compare_line(line: str) -> bool:
|
32
|
+
global last_line
|
33
|
+
if last_line == "":
|
34
|
+
last_line = line
|
35
|
+
return False
|
36
|
+
similarity = calculate_similarity(line, last_line)
|
37
|
+
last_line = line
|
38
|
+
return similarity > 0.9
|
39
|
+
|
15
40
|
def unescape_html(input_string: str) -> str:
|
16
41
|
"""
|
17
42
|
将字符串中的 HTML 实体(例如 &)转换回其原始字符(例如 &)。
|
@@ -101,6 +126,12 @@ def excute_command(command):
|
|
101
126
|
data_str = repr(data_bytes) + " (decode error)\n"
|
102
127
|
|
103
128
|
print(data_str, end='', flush=True)
|
129
|
+
if "pip install" in command and '━━' in data_str:
|
130
|
+
continue
|
131
|
+
if "git clone" in command and ('Counting objects' in data_str or 'Resolving deltas' in data_str or 'Receiving objects' in data_str or 'Compressing objects' in data_str):
|
132
|
+
continue
|
133
|
+
if compare_line(data_str):
|
134
|
+
continue
|
104
135
|
output_lines.append(data_str)
|
105
136
|
# 检查进程是否已结束,避免在进程已退出后 select 仍然阻塞
|
106
137
|
if process.poll() is not None and not r:
|
@@ -127,6 +158,10 @@ def excute_command(command):
|
|
127
158
|
print(line, end='', flush=True)
|
128
159
|
if "pip install" in command and '━━' in line:
|
129
160
|
continue
|
161
|
+
if "git clone" in command and ('Counting objects' in line or 'Resolving deltas' in line or 'Receiving objects' in line or 'Compressing objects' in line):
|
162
|
+
continue
|
163
|
+
if compare_line(line):
|
164
|
+
continue
|
130
165
|
output_lines.append(line)
|
131
166
|
process.stdout.close()
|
132
167
|
# print(f"\n--- 命令实时输出结束 (PIPE) ---")
|
@@ -139,6 +174,7 @@ def excute_command(command):
|
|
139
174
|
stderr_output = process.stderr.read()
|
140
175
|
process.stderr.close()
|
141
176
|
|
177
|
+
output_lines.append(last_line)
|
142
178
|
final_output_log = "".join(output_lines)
|
143
179
|
|
144
180
|
if process.returncode == 0:
|
@@ -169,6 +205,18 @@ if __name__ == "__main__":
|
|
169
205
|
# print('\\n-------TQDM 任务完成.')
|
170
206
|
# """
|
171
207
|
|
208
|
+
tqdm_script = """
|
209
|
+
import time
|
210
|
+
print("Hello, World!1")
|
211
|
+
print("Hello, World!2")
|
212
|
+
for i in range(10):
|
213
|
+
print(f"TQDM 进度条测试: {i}")
|
214
|
+
time.sleep(1)
|
215
|
+
"""
|
216
|
+
processed_tqdm_script = tqdm_script.replace('"', '\\"')
|
217
|
+
tqdm_command = f"python -c \"{processed_tqdm_script}\""
|
218
|
+
# print(f"执行: {tqdm_command}")
|
219
|
+
print(excute_command(tqdm_command))
|
172
220
|
# tqdm_script = """
|
173
221
|
# import time
|
174
222
|
# from tqdm import tqdm
|
@@ -182,9 +230,9 @@ if __name__ == "__main__":
|
|
182
230
|
# print(excute_command(tqdm_command))
|
183
231
|
|
184
232
|
|
185
|
-
tqdm_command = f"pip install requests"
|
186
|
-
# print(f"执行: {tqdm_command}")
|
187
|
-
print(excute_command(tqdm_command))
|
233
|
+
# tqdm_command = f"pip install requests"
|
234
|
+
# # print(f"执行: {tqdm_command}")
|
235
|
+
# print(excute_command(tqdm_command))
|
188
236
|
|
189
237
|
|
190
238
|
# long_running_command_unix = "echo '开始长时间任务...' && for i in 1 2 3; do echo \"正在处理步骤 $i/3...\"; sleep 1; done && echo '长时间任务完成!'"
|
@@ -23,7 +23,7 @@ aient/models/vertex.py,sha256=qVD5l1Q538xXUPulxG4nmDjXE1VoV4yuAkTCpIeJVw0,16795
|
|
23
23
|
aient/plugins/__init__.py,sha256=p3KO6Aa3Lupos4i2SjzLQw1hzQTigOAfEHngsldrsyk,986
|
24
24
|
aient/plugins/arXiv.py,sha256=yHjb6PS3GUWazpOYRMKMzghKJlxnZ5TX8z9F6UtUVow,1461
|
25
25
|
aient/plugins/config.py,sha256=Vp6CG9ocdC_FAlCMEGtKj45xamir76DFxdJVvURNtog,6539
|
26
|
-
aient/plugins/excute_command.py,sha256=
|
26
|
+
aient/plugins/excute_command.py,sha256=w8KV_udnh9pmg9fK9ttMqvoWMkGVFpXhYem5Sxb7Kfw,9472
|
27
27
|
aient/plugins/get_time.py,sha256=Ih5XIW5SDAIhrZ9W4Qe5Hs1k4ieKPUc_LAd6ySNyqZk,654
|
28
28
|
aient/plugins/image.py,sha256=ZElCIaZznE06TN9xW3DrSukS7U3A5_cjk1Jge4NzPxw,2072
|
29
29
|
aient/plugins/list_directory.py,sha256=5ubm-mfrj-tanGSDp4M_Tmb6vQb3dx2-XVfQ2yL2G8A,1394
|
@@ -37,8 +37,8 @@ aient/prompt/agent.py,sha256=6f5ZB66Rb8y0iQScHMRhvXZ1qMM3YsKpCBPCTAAw2rg,24917
|
|
37
37
|
aient/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
38
|
aient/utils/prompt.py,sha256=UcSzKkFE4-h_1b6NofI6xgk3GoleqALRKY8VBaXLjmI,11311
|
39
39
|
aient/utils/scripts.py,sha256=NXmTxcZqHoRv3S13isLsv7kvqktXnA5ej7uMsxCJUe0,26656
|
40
|
-
aient-1.1.
|
41
|
-
aient-1.1.
|
42
|
-
aient-1.1.
|
43
|
-
aient-1.1.
|
44
|
-
aient-1.1.
|
40
|
+
aient-1.1.6.dist-info/licenses/LICENSE,sha256=XNdbcWldt0yaNXXWB_Bakoqnxb3OVhUft4MgMA_71ds,1051
|
41
|
+
aient-1.1.6.dist-info/METADATA,sha256=aMpvAuMoIMSzN7RcdmEMhTKbUE1iLa1HQYKgcbRmU34,4967
|
42
|
+
aient-1.1.6.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
43
|
+
aient-1.1.6.dist-info/top_level.txt,sha256=3oXzrP5sAVvyyqabpeq8A2_vfMtY554r4bVE-OHBrZk,6
|
44
|
+
aient-1.1.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|