auto-coder 0.1.259__py3-none-any.whl → 0.1.260__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 auto-coder might be problematic. Click here for more details.
- {auto_coder-0.1.259.dist-info → auto_coder-0.1.260.dist-info}/METADATA +1 -1
- {auto_coder-0.1.259.dist-info → auto_coder-0.1.260.dist-info}/RECORD +25 -20
- autocoder/auto_coder.py +24 -1
- autocoder/chat_auto_coder.py +327 -399
- autocoder/chat_auto_coder_lang.py +2 -0
- autocoder/commands/__init__.py +0 -0
- autocoder/commands/auto_command.py +1145 -0
- autocoder/commands/tools.py +533 -0
- autocoder/common/auto_coder_lang.py +34 -6
- autocoder/common/auto_configure.py +304 -0
- autocoder/common/code_modification_ranker.py +8 -7
- autocoder/common/command_completer.py +566 -0
- autocoder/common/git_utils.py +82 -1
- autocoder/common/result_manager.py +115 -0
- autocoder/common/utils_code_auto_generate.py +2 -2
- autocoder/dispacher/actions/action.py +8 -4
- autocoder/dispacher/actions/plugins/action_regex_project.py +2 -1
- autocoder/index/filter/quick_filter.py +14 -2
- autocoder/utils/auto_coder_utils/chat_stream_out.py +13 -6
- autocoder/utils/thread_utils.py +4 -0
- autocoder/version.py +1 -1
- {auto_coder-0.1.259.dist-info → auto_coder-0.1.260.dist-info}/LICENSE +0 -0
- {auto_coder-0.1.259.dist-info → auto_coder-0.1.260.dist-info}/WHEEL +0 -0
- {auto_coder-0.1.259.dist-info → auto_coder-0.1.260.dist-info}/entry_points.txt +0 -0
- {auto_coder-0.1.259.dist-info → auto_coder-0.1.260.dist-info}/top_level.txt +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
autocoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
autocoder/auto_coder.py,sha256=
|
|
2
|
+
autocoder/auto_coder.py,sha256=VQ0a7AM0bAGcit45n8nrlVN7xyptbTWTP-Yt7RMy2Z0,64652
|
|
3
3
|
autocoder/auto_coder_lang.py,sha256=Rtupq6N3_HT7JRhDKdgCBcwRaiAnyCOR_Gsp4jUomrI,3229
|
|
4
4
|
autocoder/auto_coder_rag.py,sha256=nwgsXO2-scssWStjX3S910tDp-OZXZRddSYrpyC4Nq0,29021
|
|
5
5
|
autocoder/auto_coder_rag_client_mcp.py,sha256=QRxUbjc6A8UmDMQ8lXgZkjgqtq3lgKYeatJbDY6rSo0,6270
|
|
6
6
|
autocoder/auto_coder_rag_mcp.py,sha256=-RrjNwFaS2e5v8XDIrKR-zlUNUE8UBaeOtojffBrvJo,8521
|
|
7
7
|
autocoder/auto_coder_server.py,sha256=XU9b4SBH7zjPPXaTWWHV4_zJm-XYa6njuLQaplYJH_c,20290
|
|
8
8
|
autocoder/benchmark.py,sha256=Ypomkdzd1T3GE6dRICY3Hj547dZ6_inqJbBJIp5QMco,4423
|
|
9
|
-
autocoder/chat_auto_coder.py,sha256=
|
|
10
|
-
autocoder/chat_auto_coder_lang.py,sha256=
|
|
9
|
+
autocoder/chat_auto_coder.py,sha256=IfpcOU_ZOJDk4nqsqYaxqXRtwF4LWzP0uyW4aVOSE60,108584
|
|
10
|
+
autocoder/chat_auto_coder_lang.py,sha256=sfIa8fZ-zioCtUs1prRQzt_U9aLKHvKx3TbGJ2EQ6eY,18366
|
|
11
11
|
autocoder/command_args.py,sha256=9aYJ-AmPxP1sQh6ciw04FWHjSn31f2W9afXFwo8wgx4,30441
|
|
12
12
|
autocoder/lang.py,sha256=U6AjVV8Rs1uLyjFCZ8sT6WWuNUxMBqkXXIOs4S120uk,14511
|
|
13
13
|
autocoder/models.py,sha256=rG7ckiKlers-XoO1gWxNK-Y-IbqD82WS3qFMPHqvFsc,9072
|
|
14
|
-
autocoder/version.py,sha256=
|
|
14
|
+
autocoder/version.py,sha256=QvpfalUuVNrsAIvEk0uBtl3snKZObGKNSGeQi1u2V4s,23
|
|
15
15
|
autocoder/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
autocoder/agent/auto_demand_organizer.py,sha256=NWSAEsEk94vT3lGjfo25kKLMwYdPcpy9e-i21txPasQ,6942
|
|
17
17
|
autocoder/agent/auto_filegroup.py,sha256=CW7bqp0FW1GIEMnl-blyAc2UGT7O9Mom0q66ITz1ckM,6635
|
|
@@ -23,13 +23,17 @@ autocoder/agent/designer.py,sha256=EpRbzO58Xym3GrnppIT1Z8ZFAlnNfgzHbIzZ3PX-Yv8,2
|
|
|
23
23
|
autocoder/agent/planner.py,sha256=wvvuX9o6yhWlGm9t7fIT0wiChV5NkXBrYElxKiAjldU,9127
|
|
24
24
|
autocoder/agent/project_reader.py,sha256=tWLaPoLw1gI6kO_NzivQj28KbobU2ceOLuppHMbfGl8,18234
|
|
25
25
|
autocoder/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
autocoder/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
autocoder/commands/auto_command.py,sha256=ncdR0tXZixRcdvNKus3Z5Lqacb7gr3iyRg6HKE5zDWM,47231
|
|
28
|
+
autocoder/commands/tools.py,sha256=rgZWuTtmn-Ck7G2EkeBRMFh6_TjLzssW1mabQoCrzR0,20327
|
|
26
29
|
autocoder/common/JupyterClient.py,sha256=O-wi6pXeAEYhAY24kDa0BINrLYvKS6rKyWe98pDClS0,2816
|
|
27
30
|
autocoder/common/ShellClient.py,sha256=fM1q8t_XMSbLBl2zkCNC2J9xuyKN3eXzGm6hHhqL2WY,2286
|
|
28
31
|
autocoder/common/__init__.py,sha256=wJIAB6EOeCmo9UXCGC7E9u_GGWO5DjXW78wUi3hz1lI,12272
|
|
29
32
|
autocoder/common/anything2images.py,sha256=0ILBbWzY02M-CiWB-vzuomb_J1hVdxRcenAfIrAXq9M,25283
|
|
30
33
|
autocoder/common/anything2img.py,sha256=4TREa-sOA-iargieUy7MpyCYVUE-9Mmq0wJtwomPqnE,7662
|
|
31
34
|
autocoder/common/audio.py,sha256=Kn9nWKQddWnUrAz0a_ZUgjcu4VUU_IcZBigT7n3N3qc,7439
|
|
32
|
-
autocoder/common/auto_coder_lang.py,sha256=
|
|
35
|
+
autocoder/common/auto_coder_lang.py,sha256=xpZ2z8RfarhTE-srSFkNBlnpE2fQVg5E5-KUi-U_F5E,23269
|
|
36
|
+
autocoder/common/auto_configure.py,sha256=tdEwfycZUjomZAgps1GOCtocYEtfuUgRksYPFHBP_bs,12211
|
|
33
37
|
autocoder/common/buildin_tokenizer.py,sha256=L7d5t39ZFvUd6EoMPXUhYK1toD0FHlRH1jtjKRGokWU,1236
|
|
34
38
|
autocoder/common/chunk_validation.py,sha256=BrR_ZWavW8IANuueEE7hS8NFAwEvm8TX34WnPx_1hs8,3030
|
|
35
39
|
autocoder/common/cleaner.py,sha256=NU72i8C6o9m0vXExab7nao5bstBUsfJFcj11cXa9l4U,1089
|
|
@@ -42,13 +46,13 @@ autocoder/common/code_auto_merge.py,sha256=-ksBjj4ZVcbY_tVH4JLXAMSRtsgaSxrSZ5-MO
|
|
|
42
46
|
autocoder/common/code_auto_merge_diff.py,sha256=qpEuHJEgX6sWK7EDFEKqcYkyI28wOyM4pytyl8BLohY,15350
|
|
43
47
|
autocoder/common/code_auto_merge_editblock.py,sha256=sxgYMLMACRwJvw-bABkdDHezPelsDFrOCpGuhtT5Dzs,17504
|
|
44
48
|
autocoder/common/code_auto_merge_strict_diff.py,sha256=P0nKNkBrFMybTSZ7kOdA_JixoVmLCZIhAP5q7ILJ9j0,9538
|
|
45
|
-
autocoder/common/code_modification_ranker.py,sha256=
|
|
46
|
-
autocoder/common/command_completer.py,sha256=
|
|
49
|
+
autocoder/common/code_modification_ranker.py,sha256=3Ieo1-ADBinbnX8XoBIA2GOf0K56ITokPMoIhQjQaCU,8217
|
|
50
|
+
autocoder/common/command_completer.py,sha256=zIhc_l95nrBZWK0X3Wro52DcP69E-tI0VDYDIMbpm6M,35545
|
|
47
51
|
autocoder/common/command_generator.py,sha256=-hmbD_AnCa5HxL4BznuEfYAf_l8AxU5fAG5F0sM_fuE,2116
|
|
48
52
|
autocoder/common/command_templates.py,sha256=lAdr0-iyJKY2dOH2mZ0Tm3GlT_a1Oj8mgdKXmDiQN3A,8654
|
|
49
53
|
autocoder/common/const.py,sha256=eTjhjh4Aj4CUzviJ81jaf3Y5cwqsLATySn2wJxaS6RQ,2911
|
|
50
54
|
autocoder/common/files.py,sha256=CguxG9digkWBJpRaILErZmL_G5ryPRahPmPFWGB7X18,1973
|
|
51
|
-
autocoder/common/git_utils.py,sha256=
|
|
55
|
+
autocoder/common/git_utils.py,sha256=qeuF_IB3G3M72asHxWokROU3hINCuFA1nar-UtF9wIU,26022
|
|
52
56
|
autocoder/common/global_cancel.py,sha256=hT7J7J5ChThIhk2x11_v4v9ASIn4HtwyPD26t2s-fwc,418
|
|
53
57
|
autocoder/common/image_to_page.py,sha256=O0cNO_vHHUP-fP4GXiVojShmNqkPnZXeIyiY1MRLpKg,13936
|
|
54
58
|
autocoder/common/interpreter.py,sha256=62-dIakOunYB4yjmX8SHC0Gdy2h8NtxdgbpdqRZJ5vk,2833
|
|
@@ -60,6 +64,7 @@ autocoder/common/memory_manager.py,sha256=2ZjYG7BPyvbYalZBF6AM_G5e10Qkw_zrqtD4Zd
|
|
|
60
64
|
autocoder/common/model_speed_test.py,sha256=U48xUUpOnbwUal1cdij4YAn_H2PD2pNaqrMHaYtQRfI,15200
|
|
61
65
|
autocoder/common/printer.py,sha256=P1WU0QjlfnjqTP5uA55GkHZCpFzRPFkc34DMMandreg,2023
|
|
62
66
|
autocoder/common/recall_validation.py,sha256=Avt9Q9dX3kG6Pf2zsdlOHmsjd-OeSj7U1PFBDp_Cve0,1700
|
|
67
|
+
autocoder/common/result_manager.py,sha256=nBcFRj5reBC7vp13M91f4B8iPW8B8OehayHlUdeAt1g,3776
|
|
63
68
|
autocoder/common/screenshots.py,sha256=_gA-z1HxGjPShBrtgkdideq58MG6rqFB2qMUJKjrycs,3769
|
|
64
69
|
autocoder/common/search.py,sha256=245iPFgWhMldoUK3CqCP89ltaxZiNPK73evoG6Fp1h8,16518
|
|
65
70
|
autocoder/common/search_replace.py,sha256=GphFkc57Hb673CAwmbiocqTbw8vrV7TrZxtOhD0332g,22147
|
|
@@ -67,7 +72,7 @@ autocoder/common/shells.py,sha256=zOUkGNB0MLLH9FXZfkhyAEoO0h7ZPyY35vjKou5PXf0,69
|
|
|
67
72
|
autocoder/common/sys_prompt.py,sha256=JlexfjZt554faqbgkCmzOJqYUzDHfbnxly5ugFfHfEE,26403
|
|
68
73
|
autocoder/common/text.py,sha256=KGRQq314GHBmY4MWG8ossRoQi1_DTotvhxchpn78c-k,1003
|
|
69
74
|
autocoder/common/types.py,sha256=PXTETrsTvhLE49jqAeUKGySvxBN9pjeyCgRHLDYdd9U,664
|
|
70
|
-
autocoder/common/utils_code_auto_generate.py,sha256=
|
|
75
|
+
autocoder/common/utils_code_auto_generate.py,sha256=oiBjdCgdcQErfhMozFdHxkU84WmDo2euBA86yezha-g,3597
|
|
71
76
|
autocoder/common/mcp_servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
77
|
autocoder/common/mcp_servers/mcp_server_perplexity.py,sha256=IXTyMpd1CQcBLzVinA-_OIOHoNmbzvuW6pXIadaKHJE,5533
|
|
73
78
|
autocoder/data/byzerllm.md,sha256=SGCMpEaUQ0ysPxQsgzyyp5sgvEr8dZsxEGAfVcPBIq0,47741
|
|
@@ -76,10 +81,10 @@ autocoder/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
76
81
|
autocoder/db/store.py,sha256=tFT66bP2ZKIqZip-uhLkHRSLaaOAUUDZfozJwcqix3c,1908
|
|
77
82
|
autocoder/dispacher/__init__.py,sha256=YoA64dIxnx4jcE1pwSfg81sjkQtjDkhddkfac1-cMWo,1230
|
|
78
83
|
autocoder/dispacher/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
|
-
autocoder/dispacher/actions/action.py,sha256=
|
|
84
|
+
autocoder/dispacher/actions/action.py,sha256=Wnh6fZeYdyOXTHtRTb5Lm5uJpwjjBYiSOGHYO7OdEuo,23746
|
|
80
85
|
autocoder/dispacher/actions/copilot.py,sha256=iMh4ckj9hO5Q-iemF3CStXd7DatWai7Eci5zOlKxK9c,13072
|
|
81
86
|
autocoder/dispacher/actions/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
autocoder/dispacher/actions/plugins/action_regex_project.py,sha256=
|
|
87
|
+
autocoder/dispacher/actions/plugins/action_regex_project.py,sha256=mD5287a3b406WC6TF-HvxEQsOda9gqlK_1zvvijvAF8,6557
|
|
83
88
|
autocoder/dispacher/actions/plugins/action_translate.py,sha256=nVAtRSQpdGNmZxg1R_9zXG3AuTv3CHf2v7ODgj8u65c,7727
|
|
84
89
|
autocoder/index/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
90
|
autocoder/index/entry.py,sha256=iuvORjbmkNXBaN8p-njwETCVN2mWwu_DIgCJeM2rzKs,12799
|
|
@@ -89,7 +94,7 @@ autocoder/index/symbols_utils.py,sha256=CjcjUVajmJZB75Ty3a7kMv1BZphrm-tIBAdOJv6u
|
|
|
89
94
|
autocoder/index/types.py,sha256=a2s_KV5FJlq7jqA2ELSo9E1sjuLwDB-JJYMhSpzBAhU,596
|
|
90
95
|
autocoder/index/filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
96
|
autocoder/index/filter/normal_filter.py,sha256=APu34iSvWhtlLtWgkj8N3Vo4oW1TegtZQq2bwDX_cs4,8031
|
|
92
|
-
autocoder/index/filter/quick_filter.py,sha256=
|
|
97
|
+
autocoder/index/filter/quick_filter.py,sha256=0th3nkcPj6RRaNbgy_7pnfXf2DCEF9xj8E8UsKvDPAE,15805
|
|
93
98
|
autocoder/privacy/__init__.py,sha256=LnIVvGu_K66zCE-yhN_-dPO8R80pQyedCsXJ7wRqQaI,72
|
|
94
99
|
autocoder/privacy/model_filter.py,sha256=-N9ZvxxDKpxU7hkn-tKv-QHyXjvkCopUaKgvJwTOGQs,3369
|
|
95
100
|
autocoder/pyproject/__init__.py,sha256=bRuGxFV4QyE85xVjDzeMFmlLVqGbbcFs09FI15Uss4Q,14423
|
|
@@ -144,14 +149,14 @@ autocoder/utils/request_event_queue.py,sha256=r3lo5qGsB1dIjzVQ05dnr0z_9Z3zOkBdP1
|
|
|
144
149
|
autocoder/utils/request_queue.py,sha256=nwp6PMtgTCiuwJI24p8OLNZjUiprC-TsefQrhMI-yPE,3889
|
|
145
150
|
autocoder/utils/rest.py,sha256=hLBhr78y-WVnV0oQf9Rxc22EwqF78KINkScvYa1MuYA,6435
|
|
146
151
|
autocoder/utils/tests.py,sha256=BqphrwyycGAvs-5mhH8pKtMZdObwhFtJ5MC_ZAOiLq8,1340
|
|
147
|
-
autocoder/utils/thread_utils.py,sha256=
|
|
152
|
+
autocoder/utils/thread_utils.py,sha256=UndxENXXtRIqcl3msDhkImoA7KyYi5Hs6MZhOLQrKZ8,8334
|
|
148
153
|
autocoder/utils/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
154
|
autocoder/utils/auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
|
-
autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=
|
|
155
|
+
autocoder/utils/auto_coder_utils/chat_stream_out.py,sha256=lkJ_A-sYU36JMzjFWkk3pR6uos8oZHYt9GPsPe_CPAo,11766
|
|
151
156
|
autocoder/utils/chat_auto_coder_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
|
-
auto_coder-0.1.
|
|
153
|
-
auto_coder-0.1.
|
|
154
|
-
auto_coder-0.1.
|
|
155
|
-
auto_coder-0.1.
|
|
156
|
-
auto_coder-0.1.
|
|
157
|
-
auto_coder-0.1.
|
|
157
|
+
auto_coder-0.1.260.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
|
158
|
+
auto_coder-0.1.260.dist-info/METADATA,sha256=sXKvFWklT0RoVuKuL57l25BS3SIekLd7bYC4ZTBMrDU,2616
|
|
159
|
+
auto_coder-0.1.260.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
160
|
+
auto_coder-0.1.260.dist-info/entry_points.txt,sha256=0nzHtHH4pNcM7xq4EBA2toS28Qelrvcbrr59GqD_0Ak,350
|
|
161
|
+
auto_coder-0.1.260.dist-info/top_level.txt,sha256=Jqc0_uJSw2GwoFQAa9iJxYns-2mWla-9ok_Y3Gcznjk,10
|
|
162
|
+
auto_coder-0.1.260.dist-info/RECORD,,
|
autocoder/auto_coder.py
CHANGED
|
@@ -48,6 +48,7 @@ from autocoder.utils.auto_coder_utils.chat_stream_out import stream_out
|
|
|
48
48
|
from autocoder.common.printer import Printer
|
|
49
49
|
from autocoder.rag.token_counter import count_tokens
|
|
50
50
|
from autocoder.privacy.model_filter import ModelPathFilter
|
|
51
|
+
from autocoder.common.result_manager import ResultManager
|
|
51
52
|
|
|
52
53
|
console = Console()
|
|
53
54
|
|
|
@@ -1062,6 +1063,7 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1062
1063
|
os.makedirs(memory_dir, exist_ok=True)
|
|
1063
1064
|
memory_file = os.path.join(memory_dir, "chat_history.json")
|
|
1064
1065
|
console = Console()
|
|
1066
|
+
result_manager = ResultManager()
|
|
1065
1067
|
if args.new_session:
|
|
1066
1068
|
if os.path.exists(memory_file):
|
|
1067
1069
|
with open(memory_file, "r") as f:
|
|
@@ -1077,6 +1079,13 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1077
1079
|
"conversation_history": []}
|
|
1078
1080
|
with open(memory_file, "w") as f:
|
|
1079
1081
|
json.dump(chat_history, f, ensure_ascii=False)
|
|
1082
|
+
|
|
1083
|
+
result_manager.add_result(content=get_message("new_session_started"), meta={
|
|
1084
|
+
"action": "chat",
|
|
1085
|
+
"input": {
|
|
1086
|
+
"query": args.query
|
|
1087
|
+
}
|
|
1088
|
+
})
|
|
1080
1089
|
console.print(
|
|
1081
1090
|
Panel(
|
|
1082
1091
|
get_message("new_session_started"),
|
|
@@ -1268,6 +1277,12 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1268
1277
|
with open(args.target_file, "w") as f:
|
|
1269
1278
|
f.write(chat_content)
|
|
1270
1279
|
|
|
1280
|
+
result_manager = ResultManager()
|
|
1281
|
+
result_manager.append(content=result,
|
|
1282
|
+
meta={"action": "chat","input":{
|
|
1283
|
+
"query":args.query
|
|
1284
|
+
}})
|
|
1285
|
+
|
|
1271
1286
|
# Update chat history with user's response
|
|
1272
1287
|
chat_history["ask_conversation"].append(
|
|
1273
1288
|
{"role": "assistant", "content": result}
|
|
@@ -1342,7 +1357,15 @@ def main(input_args: Optional[List[str]] = None):
|
|
|
1342
1357
|
model_name=model_name,
|
|
1343
1358
|
args=args
|
|
1344
1359
|
)
|
|
1345
|
-
|
|
1360
|
+
|
|
1361
|
+
result_manager = ResultManager()
|
|
1362
|
+
result_manager.append(content=assistant_response, meta={
|
|
1363
|
+
"action": "chat",
|
|
1364
|
+
"input": {
|
|
1365
|
+
"query": args.query
|
|
1366
|
+
}
|
|
1367
|
+
})
|
|
1368
|
+
|
|
1346
1369
|
# 打印耗时和token统计
|
|
1347
1370
|
if last_meta:
|
|
1348
1371
|
elapsed_time = time.time() - start_time
|