mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-24 14:25:00 +00:00
![]() # Context: USER: make sure the call into `coder.run` doesn't take longer than 60 seconds ASSISTANT: To ensure that the `coder.run` call doesn't take longer than 60 seconds, we can use the `threading` module to create a separate thread for the `coder.run` call and use the `join` method with a timeout of 60 seconds. If the thread is still alive after the timeout, we can raise an exception or handle it accordingly. Here are the changes needed in the `scripts/benchmark.py` file: ```python scripts/benchmark.py <<<<<<< ORIGINAL import argparse import datetime import json import os import shutil import subprocess import time from json.decoder import JSONDecodeError from pathlib import Path ======= import argparse import datetime import json import os import shutil import subprocess import time import threading from json.decoder import JSONDecodeError from pathlib import Path >>>>>>> UPDATED ``` ```python scripts/benchmark.py <<<<<<< ORIGINAL start = time.time() coder.run(with_message=instructions) dur += time.time() - start ======= def run_coder(): coder.run(with_message=instructions) start = time.time() coder_thread = threading.Thread(target=run_coder) coder_thread.start() coder_thread.join(60) # 60 seconds timeout if coder_thread.is_alive(): # Handle the case when the coder.run call takes longer than 60 seconds # You can raise an exception or handle it accordingly raise Exception("coder.run took longer than 60 seconds") dur += time.time() - start >>>>>>> UPDATED ``` These changes import the `threading` module, create a separate thread for the `coder.run` call, and set a timeout of 60 seconds. If the thread is still alive after the timeout, an exception is raised. You can modify the exception handling as needed. |
||
---|---|---|
.. | ||
benchmark.py | ||
versionbump.py |